diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cf8045560..4c09ed9b6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -327,7 +327,7 @@ jobs: - name: Submit Dependencies uses: scalacenter/sbt-dependency-submission@v2 with: - modules-ignore: rootjs_3 rootjs_2.12 rootjs_2.13 rootjvm_3 rootjvm_2.12 rootjvm_2.13 rootnative_3 rootnative_2.12 rootnative_2.13 scalacheck-bench_3 scalacheck-bench_2.12 scalacheck-bench_2.13 + modules-ignore: rootjs_3 rootjs_2.12 rootjs_2.13 docs_3 docs_2.12 docs_2.13 rootjvm_3 rootjvm_2.12 rootjvm_2.13 rootnative_3 rootnative_2.12 rootnative_2.13 scalacheck-bench_3 scalacheck-bench_2.12 scalacheck-bench_2.13 configs-ignore: test scala-tool scala-doc-tool test-internal examples: @@ -421,3 +421,56 @@ jobs: - name: Build benchmark suite run: 'sbt ''++ ${{ matrix.scala }}'' ''bench/jmh:run -p genSize=0 -p seedCount=0 -bs 1 -wi 0 -i 1 -f 0 -t 1 -r 0 org.scalacheck.bench.GenBench''' + + site: + name: Generate Site + strategy: + matrix: + os: [ubuntu-22.04] + java: [temurin@11] + runs-on: ${{ matrix.os }} + steps: + - name: Checkout current branch (full) + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Setup sbt + uses: sbt/setup-sbt@v1 + + - name: Setup Java (temurin@8) + id: setup-java-temurin-8 + if: matrix.java == 'temurin@8' + uses: actions/setup-java@v5 + with: + distribution: temurin + java-version: 8 + cache: sbt + + - name: sbt update + if: matrix.java == 'temurin@8' && steps.setup-java-temurin-8.outputs.cache-hit == 'false' + run: sbt +update + + - name: Setup Java (temurin@11) + id: setup-java-temurin-11 + if: matrix.java == 'temurin@11' + uses: actions/setup-java@v5 + with: + distribution: temurin + java-version: 11 + cache: sbt + + - name: sbt update + if: matrix.java == 'temurin@11' && steps.setup-java-temurin-11.outputs.cache-hit == 'false' + run: sbt +update + + - name: Generate site + run: sbt docs/tlSite + + - name: Publish site + if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main' + uses: peaceiris/actions-gh-pages@v4.0.0 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: site/target/docs/site + keep_files: true diff --git a/build.sbt b/build.sbt index 95cdaafc5..639b64185 100644 --- a/build.sbt +++ b/build.sbt @@ -69,6 +69,113 @@ ThisBuild / tlMimaPreviousVersions ++= Set( ) ThisBuild / tlVersionIntroduced := Map("3" -> "1.15.3") +// publish website from this branch +ThisBuild / tlSitePublishBranch := Some("main") + +import laika.ast.Image +import laika.ast.Path.Root +import laika.config.{LinkConfig, MessageFilters, SyntaxHighlighting, TargetDefinition} +import laika.format.Markdown +import laika.helium.Helium +import laika.helium.config.* +import laika.theme.config.Color + +lazy val docs = project.in(file("site")) + .enablePlugins(TypelevelSitePlugin) + .settings( + laikaExtensions ++= Seq( + Markdown.GitHubFlavor, + SyntaxHighlighting + ), + laikaTheme := + Helium.defaults + .site.landingPage( + logo = Some(Image.internal(Root / "images/logo_forall_transparent.png")), + title = Some("ScalaCheck"), + subtitle = Some("Property Based Testing for Scala"), + latestReleases = Seq( + Some(ReleaseInfo("Latest Stable Release", tlBaseVersion.value)), + tlLatestPreReleaseVersion.value.map(s => ReleaseInfo("Latest Milestone Release", s)) + ).flatten, + linkPanel = Some(LinkPanel( + "Documentation", + TextLink.internal(Root / "main.md", "Introduction"), + TextLink.internal(Root / "resources.md", "Resources"), + TextLink.internal(Root / "download.md", "Download"), + TextLink.internal(Root / "userguide.md", "User Guide"), + TextLink.internal(Root / "sources.md", "Sources"), + TextLink.internal(Root / "api.md", "API"), + TextLink.internal(Root / "old_releases.md", "Old Releases") + )), + projectLinks = Seq( + TextLink.external("https://github.com/typelevel/scalacheck", "Source on Github"), + TextLink.external( + "https://discord.com/channels/632277896739946517/841617753513263144", + "Discussions on Discord"), + TextLink.external("https://github.com/typelevel/scalacheck/discussions", "Discussions on GitHub"), + TextLink.external("https://github.com/typelevel/scalacheck/issues", "Issues on GitHub") + ), + license = Some("BSD-3-Clause"), + teasers = Seq( + Teaser( + "Thorough", + "Write a single property and let ScalaCheck execute it hundreds or thousands of times. Instead of a handful of examples, you explore a wide space of possible inputs automatically. This gives you confidence that your code behaves correctly beyond the obvious cases." + ), + Teaser( + "Generative", + "Stop hand-crafting test data and let ScalaCheck generate it for you. From simple values to complex domain objects, generators produce diverse scenarios effortlessly. Your tests evolve from examples into full explorations of behavior." + ), + Teaser( + "Exploratory", + "ScalaCheck helps you uncover edge cases you didn’t know existed. By exploring random and structured inputs, it reveals hidden assumptions in your code. Many bugs surface not because you expected them, but because ScalaCheck went looking." + ), + Teaser( + "Minimal", + "When a test fails, ScalaCheck doesn’t just stop, it shrinks the input. It searches for the smallest, simplest example that still reproduces the failure. Debugging becomes faster because you’re working with minimal, focused data." + ), + Teaser( + "Expressive", + "Tests read like laws or truths about your system. Instead of imperative scripts, you write clear statements of intent. This makes your test suite easier to understand and communicate." + ) + ) + ) + .site.themeColors( + primary = Color.hex("818589"), + primaryLight = Color.hex("FFF6CC"), + primaryMedium = Color.hex("8A7A3B"), + secondary = Color.hex("2B2B2B"), + text = Color.hex("818589"), + background = Color.hex("FFFDF5"), + bgGradient = (Color.hex("FFFDF5"), Color.hex("FFF3BF")) + ) + .site.favIcons( + Favicon.internal(Root / "images/favicon.ico", sizes = "32x32") + ) + .site.topNavigationBar( + homeLink = IconLink.internal(Root / "main.md", HeliumIcon.home) + ) + .site.footer(Image.internal(Root / "images/logo_forall_h30.png")) + .build, + + laikaConfig := { + val scalaCheckRepoUrl = scmInfo.value + .map(_.browseUrl.toString) + .getOrElse(sys.error("No SCM info found")) + LaikaConfig + .defaults + .withMessageFilters(MessageFilters.forVisualDebugging) + .withConfigValue( + LinkConfig.empty.addTargets( + TargetDefinition.external("ScalaCheck Repository", scalaCheckRepoUrl), + TargetDefinition.external("ScalaCheck Bug Reports", s"$scalaCheckRepoUrl/issues"), + TargetDefinition.external("ScalaCheck Discussions on GitHub", s"$scalaCheckRepoUrl/discussions"), + TargetDefinition.external("report an issue", s"$scalaCheckRepoUrl/issues"), + TargetDefinition.external("submit a pull request", s"$scalaCheckRepoUrl/pull") + ) + ) + } + ) + lazy val root = tlCrossRootProject.aggregate(core, bench) .settings( Compile / headerSources ++= Seq( diff --git a/docs/api.md b/docs/api.md new file mode 100644 index 000000000..c9be422cf --- /dev/null +++ b/docs/api.md @@ -0,0 +1,102 @@ +# API + +ScalaCheck API documentation is hosted on javadoc.io. + +## Latest API + +Use the artifact root links below to always land on the latest published docs for each artifact. + +| Platform | Scala Version | Online API | Download | +|----------|--------------|------------|----------| +| JVM | Scala 3 | [ScalaCheck JVM Scala 3 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_3) | [ScalaCheck JVM Scala 3 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_3/1.19.0/scalacheck_3-1.19.0-javadoc.jar) | +| JVM | Scala 2.13 | [ScalaCheck JVM Scala 2.13 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_2.13) | [ScalaCheck JVM Scala 2.13 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_2.13/1.19.0/scalacheck_2.13-1.19.0-javadoc.jar) | +| JVM | Scala 2.12 | [ScalaCheck JVM Scala 2.12 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_2.12) | [ScalaCheck JVM Scala 2.12 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_2.12/1.19.0/scalacheck_2.12-1.19.0-javadoc.jar) | +| Scala.js | Scala 3 | [ScalaCheck Scala.js Scala 3 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_sjs1_3) | [ScalaCheck Scala.js Scala 3 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_sjs1_3/1.19.0/scalacheck_sjs1_3-1.19.0-javadoc.jar) | +| Scala.js | Scala 2.13 | [ScalaCheck Scala.js Scala 2.13 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_sjs1_2.13) | [ScalaCheck Scala.js Scala 2.13 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_sjs1_2.13/1.19.0/scalacheck_sjs1_2.13-1.19.0-javadoc.jar) | +| Scala.js | Scala 2.12 | [ScalaCheck Scala.js Scala 2.12 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_sjs1_2.12) | [ScalaCheck Scala.js Scala 2.12 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_sjs1_2.12/1.19.0/scalacheck_sjs1_2.12-1.19.0-javadoc.jar) | +| Native 0.5 | Scala 3 | [ScalaCheck Native 0.5 Scala 3 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_native0.5_3) | [ScalaCheck Native 0.5 Scala 3 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_native0.5_3/1.19.0/scalacheck_native0.5_3-1.19.0-javadoc.jar) | +| Native 0.5 | Scala 2.13 | [ScalaCheck Native 0.5 Scala 2.13 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_native0.5_2.13) | [ScalaCheck Native 0.5 Scala 2.13 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_native0.5_2.13/1.19.0/scalacheck_native0.5_2.13-1.19.0-javadoc.jar) | +| Native 0.5 | Scala 2.12 | [ScalaCheck Native 0.5 Scala 2.12 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_native0.5_2.12) | [ScalaCheck Native 0.5 Scala 2.12 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_native0.5_2.12/1.19.0/scalacheck_native0.5_2.12-1.19.0-javadoc.jar) | + +## Historical API + +Historical links are shown only for the latest patch of each supported line. + +### 1.19.x (1.19.0) + +| Platform | Scala Version | Online API | Download | +|----------|--------------|------------|----------| +| JVM | Scala 3 | [ScalaCheck JVM Scala 3 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_3/1.19.0) | [ScalaCheck JVM Scala 3 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_3/1.19.0/scalacheck_3-1.19.0-javadoc.jar) | +| JVM | Scala 2.13 | [ScalaCheck JVM Scala 2.13 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_2.13/1.19.0) | [ScalaCheck JVM Scala 2.13 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_2.13/1.19.0/scalacheck_2.13-1.19.0-javadoc.jar) | +| JVM | Scala 2.12 | [ScalaCheck JVM Scala 2.12 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_2.12/1.19.0) | [ScalaCheck JVM Scala 2.12 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_2.12/1.19.0/scalacheck_2.12-1.19.0-javadoc.jar) | +| Scala.js | Scala 3 | [ScalaCheck Scala.js Scala 3 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_sjs1_3/1.19.0) | [ScalaCheck Scala.js Scala 3 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_sjs1_3/1.19.0/scalacheck_sjs1_3-1.19.0-javadoc.jar) | +| Scala.js | Scala 2.13 | [ScalaCheck Scala.js Scala 2.13 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_sjs1_2.13/1.19.0) | [ScalaCheck Scala.js Scala 2.13 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_sjs1_2.13/1.19.0/scalacheck_sjs1_2.13-1.19.0-javadoc.jar) | +| Scala.js | Scala 2.12 | [ScalaCheck Scala.js Scala 2.12 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_sjs1_2.12/1.19.0) | [ScalaCheck Scala.js Scala 2.12 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_sjs1_2.12/1.19.0/scalacheck_sjs1_2.12-1.19.0-javadoc.jar) | +| Native 0.5 | Scala 3 | [ScalaCheck Native 0.5 Scala 3 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_native0.5_3/1.19.0) | [ScalaCheck Native 0.5 Scala 3 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_native0.5_3/1.19.0/scalacheck_native0.5_3-1.19.0-javadoc.jar) | +| Native 0.5 | Scala 2.13 | [ScalaCheck Native 0.5 Scala 2.13 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_native0.5_2.13/1.19.0) | [ScalaCheck Native 0.5 Scala 2.13 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_native0.5_2.13/1.19.0/scalacheck_native0.5_2.13-1.19.0-javadoc.jar) | +| Native 0.5 | Scala 2.12 | [ScalaCheck Native 0.5 Scala 2.12 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_native0.5_2.12/1.19.0) | [ScalaCheck Native 0.5 Scala 2.12 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_native0.5_2.12/1.19.0/scalacheck_native0.5_2.12-1.19.0-javadoc.jar) | + +### 1.18.x (1.18.1) + +| Platform | Scala Version | Online API | Download | +|----------|--------------|------------|----------| +| JVM | Scala 3 | [ScalaCheck JVM Scala 3 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_3/1.18.1) | [ScalaCheck JVM Scala 3 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_3/1.18.1/scalacheck_3-1.18.1-javadoc.jar) | +| JVM | Scala 2.13 | [ScalaCheck JVM Scala 2.13 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_2.13/1.18.1) | [ScalaCheck JVM Scala 2.13 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_2.13/1.18.1/scalacheck_2.13-1.18.1-javadoc.jar) | +| JVM | Scala 2.12 | [ScalaCheck JVM Scala 2.12 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_2.12/1.18.1) | [ScalaCheck JVM Scala 2.12 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_2.12/1.18.1/scalacheck_2.12-1.18.1-javadoc.jar) | +| Scala.js | Scala 3 | [ScalaCheck Scala.js Scala 3 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_sjs1_3/1.18.1) | [ScalaCheck Scala.js Scala 3 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_sjs1_3/1.18.1/scalacheck_sjs1_3-1.18.1-javadoc.jar) | +| Scala.js | Scala 2.13 | [ScalaCheck Scala.js Scala 2.13 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_sjs1_2.13/1.18.1) | [ScalaCheck Scala.js Scala 2.13 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_sjs1_2.13/1.18.1/scalacheck_sjs1_2.13-1.18.1-javadoc.jar) | +| Scala.js | Scala 2.12 | [ScalaCheck Scala.js Scala 2.12 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_sjs1_2.12/1.18.1) | [ScalaCheck Scala.js Scala 2.12 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_sjs1_2.12/1.18.1/scalacheck_sjs1_2.12-1.18.1-javadoc.jar) | +| Native 0.5 | Scala 3 | [ScalaCheck Native 0.5 Scala 3 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_native0.5_3/1.18.1) | [ScalaCheck Native 0.5 Scala 3 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_native0.5_3/1.18.1/scalacheck_native0.5_3-1.18.1-javadoc.jar) | +| Native 0.5 | Scala 2.13 | [ScalaCheck Native 0.5 Scala 2.13 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_native0.5_2.13/1.18.1) | [ScalaCheck Native 0.5 Scala 2.13 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_native0.5_2.13/1.18.1/scalacheck_native0.5_2.13-1.18.1-javadoc.jar) | +| Native 0.5 | Scala 2.12 | [ScalaCheck Native 0.5 Scala 2.12 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_native0.5_2.12/1.18.1) | [ScalaCheck Native 0.5 Scala 2.12 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_native0.5_2.12/1.18.1/scalacheck_native0.5_2.12-1.18.1-javadoc.jar) | + +### 1.17.x (1.17.1) + +| Platform | Scala Version | Online API | Download | +|----------|--------------|------------|----------| +| JVM | Scala 3 | [ScalaCheck JVM Scala 3 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_3/1.17.1) | [ScalaCheck JVM Scala 3 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_3/1.17.1/scalacheck_3-1.17.1-javadoc.jar) | +| JVM | Scala 2.13 | [ScalaCheck JVM Scala 2.13 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_2.13/1.17.1) | [ScalaCheck JVM Scala 2.13 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_2.13/1.17.1/scalacheck_2.13-1.17.1-javadoc.jar) | +| JVM | Scala 2.12 | [ScalaCheck JVM Scala 2.12 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_2.12/1.17.1) | [ScalaCheck JVM Scala 2.12 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_2.12/1.17.1/scalacheck_2.12-1.17.1-javadoc.jar) | +| Scala.js | Scala 3 | [ScalaCheck Scala.js Scala 3 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_sjs1_3/1.17.1) | [ScalaCheck Scala.js Scala 3 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_sjs1_3/1.17.1/scalacheck_sjs1_3-1.17.1-javadoc.jar) | +| Scala.js | Scala 2.13 | [ScalaCheck Scala.js Scala 2.13 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_sjs1_2.13/1.17.1) | [ScalaCheck Scala.js Scala 2.13 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_sjs1_2.13/1.17.1/scalacheck_sjs1_2.13-1.17.1-javadoc.jar) | +| Scala.js | Scala 2.12 | [ScalaCheck Scala.js Scala 2.12 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_sjs1_2.12/1.17.1) | [ScalaCheck Scala.js Scala 2.12 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_sjs1_2.12/1.17.1/scalacheck_sjs1_2.12-1.17.1-javadoc.jar) | +| Native 0.4 | Scala 3 | [ScalaCheck Native 0.4 Scala 3 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_native0.4_3/1.17.1) | [ScalaCheck Native 0.4 Scala 3 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_native0.4_3/1.17.1/scalacheck_native0.4_3-1.17.1-javadoc.jar) | +| Native 0.4 | Scala 2.13 | [ScalaCheck Native 0.4 Scala 2.13 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_native0.4_2.13/1.17.1) | [ScalaCheck Native 0.4 Scala 2.13 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_native0.4_2.13/1.17.1/scalacheck_native0.4_2.13-1.17.1-javadoc.jar) | +| Native 0.4 | Scala 2.12 | [ScalaCheck Native 0.4 Scala 2.12 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_native0.4_2.12/1.17.1) | [ScalaCheck Native 0.4 Scala 2.12 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_native0.4_2.12/1.17.1/scalacheck_native0.4_2.12-1.17.1-javadoc.jar) | + +### 1.16.x (1.16.0) + +| Platform | Scala Version | Online API | Download | +|----------|--------------|------------|----------| +| JVM | Scala 3 | [ScalaCheck JVM Scala 3 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_3/1.16.0) | [ScalaCheck JVM Scala 3 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_3/1.16.0/scalacheck_3-1.16.0-javadoc.jar) | +| JVM | Scala 2.13 | [ScalaCheck JVM Scala 2.13 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_2.13/1.16.0) | [ScalaCheck JVM Scala 2.13 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_2.13/1.16.0/scalacheck_2.13-1.16.0-javadoc.jar) | +| JVM | Scala 2.12 | [ScalaCheck JVM Scala 2.12 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_2.12/1.16.0) | [ScalaCheck JVM Scala 2.12 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_2.12/1.16.0/scalacheck_2.12-1.16.0-javadoc.jar) | +| Scala.js | Scala 3 | [ScalaCheck Scala.js Scala 3 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_sjs1_3/1.16.0) | [ScalaCheck Scala.js Scala 3 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_sjs1_3/1.16.0/scalacheck_sjs1_3-1.16.0-javadoc.jar) | +| Scala.js | Scala 2.13 | [ScalaCheck Scala.js Scala 2.13 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_sjs1_2.13/1.16.0) | [ScalaCheck Scala.js Scala 2.13 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_sjs1_2.13/1.16.0/scalacheck_sjs1_2.13-1.16.0-javadoc.jar) | +| Scala.js | Scala 2.12 | [ScalaCheck Scala.js Scala 2.12 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_sjs1_2.12/1.16.0) | [ScalaCheck Scala.js Scala 2.12 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_sjs1_2.12/1.16.0/scalacheck_sjs1_2.12-1.16.0-javadoc.jar) | +| Native 0.4 | Scala 3 | [ScalaCheck Native 0.4 Scala 3 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_native0.4_3/1.16.0) | [ScalaCheck Native 0.4 Scala 3 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_native0.4_3/1.16.0/scalacheck_native0.4_3-1.16.0-javadoc.jar) | +| Native 0.4 | Scala 2.13 | [ScalaCheck Native 0.4 Scala 2.13 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_native0.4_2.13/1.16.0) | [ScalaCheck Native 0.4 Scala 2.13 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_native0.4_2.13/1.16.0/scalacheck_native0.4_2.13-1.16.0-javadoc.jar) | +| Native 0.4 | Scala 2.12 | [ScalaCheck Native 0.4 Scala 2.12 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_native0.4_2.12/1.16.0) | [ScalaCheck Native 0.4 Scala 2.12 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_native0.4_2.12/1.16.0/scalacheck_native0.4_2.12-1.16.0-javadoc.jar) | + +### 1.15.x (1.15.4) + +| Platform | Scala Version | Online API | Download | +|----------|--------------|------------|----------| +| JVM | Scala 3 | [ScalaCheck JVM Scala 3 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_3/1.15.4) | [ScalaCheck JVM Scala 3 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_3/1.15.4/scalacheck_3-1.15.4-javadoc.jar) | +| JVM | Scala 2.13 | [ScalaCheck JVM Scala 2.13 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_2.13/1.15.4) | [ScalaCheck JVM Scala 2.13 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_2.13/1.15.4/scalacheck_2.13-1.15.4-javadoc.jar) | +| JVM | Scala 2.12 | [ScalaCheck JVM Scala 2.12 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_2.12/1.15.4) | [ScalaCheck JVM Scala 2.12 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_2.12/1.15.4/scalacheck_2.12-1.15.4-javadoc.jar) | +| Scala.js | Scala 3 | [ScalaCheck Scala.js Scala 3 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_sjs1_3/1.15.4) | [ScalaCheck Scala.js Scala 3 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_sjs1_3/1.15.4/scalacheck_sjs1_3-1.15.4-javadoc.jar) | +| Scala.js | Scala 2.13 | [ScalaCheck Scala.js Scala 2.13 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_sjs1_2.13/1.15.4) | [ScalaCheck Scala.js Scala 2.13 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_sjs1_2.13/1.15.4/scalacheck_sjs1_2.13-1.15.4-javadoc.jar) | +| Scala.js | Scala 2.12 | [ScalaCheck Scala.js Scala 2.12 Online](https://javadoc.io/doc/org.scalacheck/scalacheck_sjs1_2.12/1.15.4) | [ScalaCheck Scala.js Scala 2.12 Download](https://javadoc.io/jar/org.scalacheck/scalacheck_sjs1_2.12/1.15.4/scalacheck_sjs1_2.12-1.15.4-javadoc.jar) | + +## Notes + +- API docs are hosted on javadoc.io. +- The artifact-root links under “Latest API” always resolve to the latest published docs for that artifact. +- Historical links are shown only for the latest patch of each supported line. +- Javadoc JARs can be downloaded for offline browsing. + +## Related pages + +- [Download](download.md) +- [Sources](sources.md) diff --git a/docs/directory.conf b/docs/directory.conf new file mode 100644 index 000000000..b066195c0 --- /dev/null +++ b/docs/directory.conf @@ -0,0 +1,10 @@ +laika.versioned = false +laika.navigationOrder = [ + main.md + resources.md + userguide.md + download.md + sources.md + api.md + old_releases.md +] diff --git a/docs/download.md b/docs/download.md new file mode 100644 index 000000000..f04166ff5 --- /dev/null +++ b/docs/download.md @@ -0,0 +1,64 @@ +# Download + +ScalaCheck is available for the JVM, Scala.js, and Scala Native. + +## Latest stable + +Use the latest stable release unless you need to stay on an older line for compatibility reasons. + +### sbt + +#### JVM + +```scala +libraryDependencies += "org.scalacheck" %% "scalacheck" % "@VERSION@" % Test +``` + +#### Scala.js / Scala Native + +``` +libraryDependencies += "org.scalacheck" %%% "scalacheck" % "@VERSION@" % Test +``` + +### Scala CLI + +```scala``` +//> using dep "org.scalacheck::scalacheck:@VERSION@" +``` + +### Mill + +```scala +ivy"org.scalacheck::scalacheck:@VERSION@" +``` + +## Release lines + +| Line | Representative Release | Date | Scala | Scala.js | Scala Native | Notes | +|--------|------------------------|------------|----------------------|----------|--------------|--------------------------------| +| 1.19.x | 1.19.0 | 2025-09-06 | 2.12, 2.13, 3.x | 1.x | 0.5 | Latest stable | +| 1.18.x | 1.18.1 | 2024-09-15 | 2.12, 2.13, 3.x | 1.x | 0.5 | Maintenance release | +| 1.17.x | 1.17.1 | 2024-04-16 | 2.12, 2.13, 3.x | 1.x | 0.4 | Stable historical line | +| 1.16.x | 1.16.0 | 2022-04-07 | 2.12, 2.13, 3.x | 1.x | 0.4 | Adds support for java.time | +| 1.15.x | 1.15.4 | 2021-05-03 | 2.12, 2.13, 3.x* | 1.x | 0.4 | Bug-fix release | + +* Scala 3 artifacts for ScalaCheck 1.15.4 and 1.15.3 were published on 2021-05-14. + +### Use the representative release version + +If you want something other than the latest stable release, select the representative release version of your choice. For example, for version `1.17.1`, apply the following in your build tool: + +```scala +libraryDependencies += "org.scalacheck" %% "scalacheck" % "1.17.1" % Test +``` + +## Notes + +- The JVM dependency uses `%%` to fill in the Scala version. +- Scala.js and Scala Native use `%%%` to fill in the Scala version. +- ScalaCheck is normally added with the `Test` scope. + +## Related pages + +- [API](api.md) +- [Sources](sources.md) diff --git a/docs/images/bookcover_h300.png b/docs/images/bookcover_h300.png new file mode 100644 index 000000000..3995b14ce Binary files /dev/null and b/docs/images/bookcover_h300.png differ diff --git a/docs/images/favicon.ico b/docs/images/favicon.ico new file mode 100644 index 000000000..9aed3c246 Binary files /dev/null and b/docs/images/favicon.ico differ diff --git a/docs/images/logo_forall_h30.png b/docs/images/logo_forall_h30.png new file mode 100644 index 000000000..87dd03f41 Binary files /dev/null and b/docs/images/logo_forall_h30.png differ diff --git a/docs/images/logo_forall_h61.png b/docs/images/logo_forall_h61.png new file mode 100644 index 000000000..43e833ddd Binary files /dev/null and b/docs/images/logo_forall_h61.png differ diff --git a/docs/images/logo_forall_transparent.png b/docs/images/logo_forall_transparent.png new file mode 100644 index 000000000..9a9fb6870 Binary files /dev/null and b/docs/images/logo_forall_transparent.png differ diff --git a/docs/main.md b/docs/main.md new file mode 100644 index 000000000..600132c5e --- /dev/null +++ b/docs/main.md @@ -0,0 +1,168 @@ +# Introduction + +## ScalaCheck: Property-based testing for Scala + +ScalaCheck is a library written in [Scala](https://www.scala-lang.org/) and +used for automated property-based testing of Scala or Java programs. +ScalaCheck was originally inspired by the Haskell library +[QuickCheck](https://hackage.haskell.org/package/QuickCheck), but has also +ventured into its own. + +ScalaCheck has no external dependencies other than the Scala runtime, and +[works](download.md) great with [sbt](https://www.scala-sbt.org/), the +Scala build tool. It is also fully integrated in the test frameworks +[ScalaTest](https://www.scalatest.org/), +[specs2](https://etorreborre.github.io/specs2/) and +[LambdaTest](https://github.com/47deg/LambdaTest). You can also use ScalaCheck +completely standalone, with its built-in test runner. + +ScalaCheck is used by several prominent Scala projects, for example, the [Scala +compiler](https://www.scala-lang.org/) and the [Akka](https://akka.io/) +concurrency framework. + +[ScalaCheck 1.19.0]: https://github.com/typelevel/scalacheck/releases/tag/v1.19.0 +[ScalaCheck 1.18.1]: https://github.com/typelevel/scalacheck/releases/tag/v1.18.1 +[ScalaCheck 1.18.0]: https://github.com/typelevel/scalacheck/releases/tag/v1.18.0 +[ScalaCheck 1.17.1]: https://github.com/typelevel/scalacheck/releases/tag/v1.17.1 +[ScalaCheck 1.17.0]: https://github.com/typelevel/scalacheck/releases/tag/v1.17.0 +[ScalaCheck 1.16.0]: https://github.com/typelevel/scalacheck/releases/tag/v1.16.0 +[ScalaCheck 1.15.4]: https://github.com/typelevel/scalacheck/releases/tag/1.15.4 +[ScalaCheck 1.15.3]: https://github.com/typelevel/scalacheck/releases/tag/1.15.3 +[ScalaCheck 1.15.2]: https://github.com/typelevel/scalacheck/releases/tag/1.15.2 +[ScalaCheck 1.15.1]: https://github.com/typelevel/scalacheck/releases/tag/1.15.1 +[ScalaCheck 1.15.0]: https://github.com/typelevel/scalacheck/releases/tag/1.15.0 +[ScalaCheck 1.14.3]: https://github.com/typelevel/scalacheck/releases/tag/1.14.3 +[ScalaCheck 1.14.2]: https://github.com/typelevel/scalacheck/releases/tag/1.14.2 +[ScalaCheck 1.14.1]: https://github.com/typelevel/scalacheck/releases/tag/1.14.1 +[ScalaCheck 1.14.0]: https://github.com/typelevel/scalacheck/releases/tag/1.14.0 +[ScalaCheck 1.13.5]: https://github.com/typelevel/scalacheck/releases/tag/1.13.5 +[ScalaCheck 1.13.4]: https://github.com/typelevel/scalacheck/releases/tag/1.13.4 +[ScalaCheck 1.13.3]: https://github.com/typelevel/scalacheck/releases/tag/1.13.3 +[ScalaCheck 1.13.2]: https://github.com/typelevel/scalacheck/releases/tag/1.13.2 +[ScalaCheck 1.13.1]: https://github.com/typelevel/scalacheck/releases/tag/1.13.1 +[ScalaCheck 1.13.0]: https://github.com/typelevel/scalacheck/releases/tag/1.13.0 +[ScalaCheck 1.12.6]: https://github.com/typelevel/scalacheck/releases/tag/1.12.16 + +## News + +* 2025-09-06: [ScalaCheck 1.19.0] is released. + New `Gen.zipWith` combinator. Bug fixes for `Gen.pick` and `ScalaCheckFramework`. + +* 2024-09-15: [ScalaCheck 1.18.1] is released. + Maintenance release. + +* 2024-04-17: [ScalaCheck 1.18.0] is released. + Support for Scala Native v0.5. + +* 2024-04-16: [ScalaCheck 1.17.1] is released. + Several bug fixes. New `Gen.nonEmptyStringOf` combinator. + +* 2022-09-15: [ScalaCheck 1.17.0] is released. + Several bug fixes and improvements. + +* 2022-04-07: [ScalaCheck 1.16.0] is released. + Support for `java.time` types. Several bug fixes. + +* 2021-05-14: Scala 3.0 artifacts were published for [ScalaCheck 1.15.4] + and [ScalaCheck 1.15.3] + +* 2021-05-03: [ScalaCheck 1.15.4] is released with a few small bug fixes + +* 2021-02-16: [ScalaCheck 1.15.3] adds support for Scala Native 0.4.0 + +* 2020-12-17: [ScalaCheck 1.15.2] fixes some uninentional API breakage of + methods `someOf`, `atLeastOne` and `pick` in `Gen`. + +* 2020-11-03: [ScalaCheck 1.15.1] + is released. Fixes some uninentional API breakage of methods `someOf`, + `atLeastOne` and `pick` in `Gen`. + +* 2020-10-30: [ScalaCheck 1.15.0] + introduces a few enhancements and some performance improvements to string + and character generation. + +* 2019-12-13: [ScalaCheck 1.14.3] fixed a defect with number generators. This + also produces artifacts for Scala.js 1.0.0-RC2 and 0.6.31. + +* 2019-09-25: [ScalaCheck 1.14.2] fixed a major defect with Scala.js but no + other changes from 1.14.1. + +* 2019-09-18: [ScalaCheck 1.14.1] released! This is the first release since the + ScalaCheck repository was moved to the [Typelevel](https://typelevel.org/) + organisation. + +* 2018-04-22: [ScalaCheck 1.14.0]! This release + introduces support for deterministic testing. See the release and change notes + for more details. + +* 2016-11-01: [ScalaCheck 1.13.4] and + [ScalaCheck 1.12.6] released! These releases + fix a [deadlock problem](https://github.com/rickynils/scalacheck/issues/290) + with Scala 2.12.0. Also, as a problem was discovered with the + previously released ScalaCheck 1.12.5 build, it is recommended that you + upgrade to 1.12.6 or 1.13.4 even if you're not using Scala 2.12. + +* 2016-10-19: [ScalaCheck 1.13.3] released! See the release and change notes + for more details. + +* 2016-07-11: [ScalaCheck 1.13.2] released! See the release and change notes + for more details. + +* 2016-04-14: [ScalaCheck 1.13.1] released! See the release and change notes + for more details. + +* 2016-02-03: [ScalaCheck 1.13.0] released! See the release and change notes + for more details. + +* 2015-09-10: Snapshot builds are no longer published on this site. + Instead, [Travis](https://travis-ci.org/rickynils/scalacheck) + automatically publishes all successful builds of the `main` branch. + +## Quick start + +Specify some methods of `java.lang.String` like this: + +```scala +import org.scalacheck.Properties +import org.scalacheck.Prop.forAll + +object StringSpecification extends Properties("String") { + + property("startsWith") = forAll { (a: String, b: String) => + (a+b).startsWith(a) + } + + property("concatenate") = forAll { (a: String, b: String) => + (a+b).length > a.length && (a+b).length > b.length + } + + property("substring") = forAll { (a: String, b: String, c: String) => + (a+b+c).substring(a.length, a.length+b.length) == b + } + +} +``` + +If you use [sbt](https://www.scala-sbt.org/) add the following dependency to +your build file: + +```scala +libraryDependencies += "org.scalacheck" %% "scalacheck" % "$currentVer$" % "test" +``` + +Put your ScalaCheck properties in `src/test/scala`, then use the `test` task to +check them: + +``` +$$ sbt test ++ String.startsWith: OK, passed 100 tests. +! String.concat: Falsified after 0 passed tests. +> ARG_0: "" +> ARG_1: "" ++ String.substring: OK, passed 100 tests. +``` + +As you can see, the second property was not quite right. ScalaCheck discovers +this and presents the arguments that make the property fail, two empty strings. +The other two properties both pass 100 test rounds, each with a randomized set +of input parameters. diff --git a/docs/old_releases.md b/docs/old_releases.md new file mode 100644 index 000000000..42e4e3a7a --- /dev/null +++ b/docs/old_releases.md @@ -0,0 +1,260 @@ +# Old Releases + +These are the legacy ScalaCheck releases. + +## ScalaCheck 1.14.x + +### ScalaCheck 1.14.3 + +- [ScalaCheck 1.14.3 for Scala 2.12](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.12/1.14.3/scalacheck_2.12-1.14.3.jar) +- [ScalaCheck 1.14.3 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.14.3/scalacheck_2.11-1.14.3.jar) +- [ScalaCheck 1.14.3 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.14.3/scalacheck_2.10-1.14.3.jar) + +- [Browse ScalaCheck 1.14.3 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.14.3) +- [Browse ScalaCheck 1.14.3 Sources](https://github.com/typelevel/scalacheck/tree/1.14.3) + +### ScalaCheck 1.14.2 + +- [ScalaCheck 1.14.2 for Scala 2.12](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.12/1.14.2/scalacheck_2.12-1.14.2.jar) +- [ScalaCheck 1.14.2 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.14.2/scalacheck_2.11-1.14.2.jar) +- [ScalaCheck 1.14.2 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.14.2/scalacheck_2.10-1.14.2.jar) + +- [Browse ScalaCheck 1.14.2 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.14.2) +- [Browse ScalaCheck 1.14.2 Sources](https://github.com/typelevel/scalacheck/tree/1.14.2) + +### ScalaCheck 1.14.1 + +- [ScalaCheck 1.14.1 for Scala 2.12](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.12/1.14.1/scalacheck_2.12-1.14.1.jar) +- [ScalaCheck 1.14.1 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.14.1/scalacheck_2.11-1.14.1.jar) +- [ScalaCheck 1.14.1 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.14.1/scalacheck_2.10-1.14.1.jar) + +- [Browse ScalaCheck 1.14.1 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.14.1) +- [Browse ScalaCheck 1.14.1 Sources](https://github.com/typelevel/scalacheck/tree/1.14.1) + +### ScalaCheck 1.14.0 + +- [ScalaCheck 1.14.0 for Scala 2.12](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.12/1.14.0/scalacheck_2.12-1.14.0.jar) +- [ScalaCheck 1.14.0 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.14.0/scalacheck_2.11-1.14.0.jar) +- [ScalaCheck 1.14.0 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.14.0/scalacheck_2.10-1.14.0.jar) + +- [Browse ScalaCheck 1.14.0 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.14.0) +- [Browse ScalaCheck 1.14.0 Sources](https://github.com/typelevel/scalacheck/tree/1.14.0) + +## ScalaCheck 1.13.x + +### ScalaCheck 1.13.5 + +- [ScalaCheck 1.13.5 for Scala 2.12](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.12/1.13.5/scalacheck_2.12-1.13.5.jar) +- [ScalaCheck 1.13.5 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.13.5/scalacheck_2.11-1.13.5.jar) +- [ScalaCheck 1.13.5 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.13.5/scalacheck_2.10-1.13.5.jar) + +- [Browse ScalaCheck 1.13.5 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.13.5) +- [Browse ScalaCheck 1.13.5 Sources](https://github.com/typelevel/scalacheck/tree/1.13.5) + +### ScalaCheck 1.13.4 + +- [ScalaCheck 1.13.4 for Scala 2.12](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.12/1.13.4/scalacheck_2.12-1.13.4.jar) +- [ScalaCheck 1.13.4 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.13.4/scalacheck_2.11-1.13.4.jar) +- [ScalaCheck 1.13.4 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.13.4/scalacheck_2.10-1.13.4.jar) + +- [Browse ScalaCheck 1.13.4 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.13.4) +- [Browse ScalaCheck 1.13.4 Sources](https://github.com/typelevel/scalacheck/tree/1.13.4) + +### ScalaCheck 1.13.3 + +- [ScalaCheck 1.13.3 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.13.3/scalacheck_2.11-1.13.3.jar) +- [ScalaCheck 1.13.3 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.13.3/scalacheck_2.10-1.13.3.jar) + +- [Browse ScalaCheck 1.13.3 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.13.3) +- [Browse ScalaCheck 1.13.3 Sources](https://github.com/typelevel/scalacheck/tree/1.13.3) + +### ScalaCheck 1.13.2 + +- [ScalaCheck 1.13.2 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.13.2/scalacheck_2.11-1.13.2.jar) +- [ScalaCheck 1.13.2 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.13.2/scalacheck_2.10-1.13.2.jar) + +- [Browse ScalaCheck 1.13.2 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.13.2) +- [Browse ScalaCheck 1.13.2 Sources](https://github.com/typelevel/scalacheck/tree/1.13.2) + +### ScalaCheck 1.13.1 + +- [ScalaCheck 1.13.1 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.13.1/scalacheck_2.11-1.13.1.jar) +- [ScalaCheck 1.13.1 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.13.1/scalacheck_2.10-1.13.1.jar) + +- [Browse ScalaCheck 1.13.1 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.13.1) +- [Browse ScalaCheck 1.13.1 Sources](https://github.com/typelevel/scalacheck/tree/1.13.1) + +### ScalaCheck 1.13.0 + +- [ScalaCheck 1.13.0 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.13.0/scalacheck_2.11-1.13.0.jar) +- [ScalaCheck 1.13.0 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.13.0/scalacheck_2.10-1.13.0.jar) + +- [Browse ScalaCheck 1.13.0 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.13.0) +- [Browse ScalaCheck 1.13.0 Sources](https://github.com/typelevel/scalacheck/tree/1.13.0) + +## ScalaCheck 1.12.x + +### ScalaCheck 1.12.6 + +- [ScalaCheck 1.12.6 for Scala 2.12](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.12/1.12.6/scalacheck_2.12-1.12.6.jar) +- [ScalaCheck 1.12.6 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.12.6/scalacheck_2.11-1.12.6.jar) +- [ScalaCheck 1.12.6 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.12.6/scalacheck_2.10-1.12.6.jar) + +- [Browse ScalaCheck 1.12.6 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.12.6) +- [Browse ScalaCheck 1.12.6 Sources](https://github.com/typelevel/scalacheck/tree/1.12.6) + +### ScalaCheck 1.12.4 + +- [ScalaCheck 1.12.4 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.12.4/scalacheck_2.11-1.12.4.jar) +- [ScalaCheck 1.12.4 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.12.4/scalacheck_2.10-1.12.4.jar) + +- [Browse ScalaCheck 1.12.4 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.12.4) +- [Browse ScalaCheck 1.12.4 Sources](https://github.com/typelevel/scalacheck/tree/1.12.4) + +### ScalaCheck 1.12.2 + +- [ScalaCheck 1.12.2 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.12.2/scalacheck_2.11-1.12.2.jar) +- [ScalaCheck 1.12.2 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.12.2/scalacheck_2.10-1.12.2.jar) + +- [Browse ScalaCheck 1.12.2 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.12.2) +- [Browse ScalaCheck 1.12.2 Sources](https://github.com/typelevel/scalacheck/tree/1.12.2) + +### ScalaCheck 1.12.1 + +- [ScalaCheck 1.12.1 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.12.1/scalacheck_2.11-1.12.1.jar) +- [ScalaCheck 1.12.1 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.12.1/scalacheck_2.10-1.12.1.jar) + +- [Browse ScalaCheck 1.12.1 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.12.1) +- [Browse ScalaCheck 1.12.1 Sources](https://github.com/typelevel/scalacheck/tree/1.12.1) + +### ScalaCheck 1.12.0 + +- [ScalaCheck 1.12.0 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.12.0/scalacheck_2.11-1.12.0.jar) +- [ScalaCheck 1.12.0 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.12.0/scalacheck_2.10-1.12.0.jar) + +- [Browse ScalaCheck 1.12.0 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.12.0) +- [Browse ScalaCheck 1.12.0 Sources](https://github.com/typelevel/scalacheck/tree/1.12.0) + +## ScalaCheck 1.11.x + +### ScalaCheck 1.11.6 + +- [ScalaCheck 1.11.6 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.11.6/scalacheck_2.11-1.11.6.jar) +- [ScalaCheck 1.11.6 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.11.6/scalacheck_2.10-1.11.6.jar) +- [ScalaCheck 1.11.6 for Scala 2.9.3](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.3/1.11.6/scalacheck_2.9.3-1.11.6.jar) + +- [Browse ScalaCheck 1.11.6 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.11.6) +- [Browse ScalaCheck 1.11.6 Sources](https://github.com/typelevel/scalacheck/tree/1.11.6) + +### ScalaCheck 1.11.5 + +- [ScalaCheck 1.11.5 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.11.5/scalacheck_2.11-1.11.5.jar) +- [ScalaCheck 1.11.5 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.11.5/scalacheck_2.10-1.11.5.jar) +- [ScalaCheck 1.11.5 for Scala 2.9.3](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.3/1.11.5/scalacheck_2.9.3-1.11.5.jar) + +- [Browse ScalaCheck 1.11.5 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.11.5) +- [Browse ScalaCheck 1.11.5 Sources](https://github.com/typelevel/scalacheck/tree/1.11.5) + +### ScalaCheck 1.11.4 + +- [ScalaCheck 1.11.4 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.11.4/scalacheck_2.11-1.11.4.jar) +- [ScalaCheck 1.11.4 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.11.4/scalacheck_2.10-1.11.4.jar) +- [ScalaCheck 1.11.4 for Scala 2.9.3](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.3/1.11.4/scalacheck_2.9.3-1.11.4.jar) + +- [Browse ScalaCheck 1.11.4 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.11.4) +- [Browse ScalaCheck 1.11.4 Sources](https://github.com/typelevel/scalacheck/tree/1.11.4) + +### ScalaCheck 1.11.3 + +- [ScalaCheck 1.11.3 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.11.3/scalacheck_2.11-1.11.3.jar) +- [ScalaCheck 1.11.3 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.11.3/scalacheck_2.10-1.11.3.jar) +- [ScalaCheck 1.11.3 for Scala 2.9.3](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.3/1.11.3/scalacheck_2.9.3-1.11.3.jar) + +- [Browse ScalaCheck 1.11.3 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.11.3) +- [Browse ScalaCheck 1.11.3 Sources](https://github.com/typelevel/scalacheck/tree/1.11.3) + +### ScalaCheck 1.11.1 + +- [ScalaCheck 1.11.1 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.11.1/scalacheck_2.11-1.11.1.jar) +- [ScalaCheck 1.11.1 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.11.1/scalacheck_2.10-1.11.1.jar) +- [ScalaCheck 1.11.1 for Scala 2.9.3](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.3/1.11.1/scalacheck_2.9.3-1.11.1.jar) + +- [Browse ScalaCheck 1.11.1 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.11.1) +- [Browse ScalaCheck 1.11.1 Sources](https://github.com/typelevel/scalacheck/tree/1.11.1) + +### ScalaCheck 1.11.0 + +- [ScalaCheck 1.11.0 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.11.0/scalacheck_2.11-1.11.0.jar) +- [ScalaCheck 1.11.0 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.11.0/scalacheck_2.10-1.11.0.jar) +- [ScalaCheck 1.11.0 for Scala 2.9.3](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.3/1.11.0/scalacheck_2.9.3-1.11.0.jar) + +- [Browse ScalaCheck 1.11.0 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.11.0) +- [Browse ScalaCheck 1.11.0 Sources](https://github.com/typelevel/scalacheck/tree/1.11.0) + +## ScalaCheck 1.10.x + +### ScalaCheck 1.10.1 + +- [ScalaCheck 1.10.1 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.10.1/scalacheck_2.11-1.10.1.jar) +- [ScalaCheck 1.10.1 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.10.1/scalacheck_2.10-1.10.1.jar) +- [ScalaCheck 1.10.1 for Scala 2.9.3](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.3/1.10.1/scalacheck_2.9.3-1.10.1.jar) +- [ScalaCheck 1.10.1 for Scala 2.9.2](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.2/1.10.1/scalacheck_2.9.2-1.10.1.jar) +- [ScalaCheck 1.10.1 for Scala 2.9.1-1](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.1-1/1.10.1/scalacheck_2.9.1-1-1.10.1.jar) +- [ScalaCheck 1.10.1 for Scala 2.9.1](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.1/1.10.1/scalacheck_2.9.1-1.10.1.jar) +- [ScalaCheck 1.10.1 for Scala 2.9.0-1](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.0-1/1.10.1/scalacheck_2.9.0-1-1.10.1.jar) +- [ScalaCheck 1.10.1 for Scala 2.9.0](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.0/1.10.1/scalacheck_2.9.0-1.10.1.jar) + +- [Browse ScalaCheck 1.10.1 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.10.1) +- [Browse ScalaCheck 1.10.1 Sources](https://github.com/typelevel/scalacheck/tree/1.10.1) + +### ScalaCheck 1.10.0 + +- [ScalaCheck 1.10.0 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.10.0/scalacheck_2.11-1.10.0.jar) +- [ScalaCheck 1.10.0 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.10.0/scalacheck_2.10-1.10.0.jar) +- [ScalaCheck 1.10.0 for Scala 2.9.3](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.3/1.10.0/scalacheck_2.9.3-1.10.0.jar) +- [ScalaCheck 1.10.0 for Scala 2.9.2](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.2/1.10.0/scalacheck_2.9.2-1.10.0.jar) +- [ScalaCheck 1.10.0 for Scala 2.9.1-1](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.1-1/1.10.0/scalacheck_2.9.1-1-1.10.0.jar) +- [ScalaCheck 1.10.0 for Scala 2.9.1](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.1/1.10.0/scalacheck_2.9.1-1.10.0.jar) +- [ScalaCheck 1.10.0 for Scala 2.9.0-1](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.0-1/1.10.0/scalacheck_2.9.0-1-1.10.0.jar) +- [ScalaCheck 1.10.0 for Scala 2.9.0](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.0/1.10.0/scalacheck_2.9.0-1.10.0.jar) + +- [Browse ScalaCheck 1.10.0 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.10.0) +- [Browse ScalaCheck 1.10.0 Sources](https://github.com/typelevel/scalacheck/tree/1.10.0) + +## ScalaCheck 1.9 + +### ScalaCheck 1.9 + +- [ScalaCheck 1.9 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.9/scalacheck_2.11-1.9.jar) +- [ScalaCheck 1.9 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.9/scalacheck_2.10-1.9.jar) +- [ScalaCheck 1.9 for Scala 2.9.3](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.3/1.9/scalacheck_2.9.3-1.9.jar) +- [ScalaCheck 1.9 for Scala 2.9.2](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.2/1.9/scalacheck_2.9.2-1.9.jar) +- [ScalaCheck 1.9 for Scala 2.9.1-1](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.1-1/1.9/scalacheck_2.9.1-1-1.9.jar) +- [ScalaCheck 1.9 for Scala 2.9.1](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.1/1.9/scalacheck_2.9.1-1.9.jar) +- [ScalaCheck 1.9 for Scala 2.9.0-1](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.0-1/1.9/scalacheck_2.9.0-1-1.9.jar) +- [ScalaCheck 1.9 for Scala 2.9.0](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.0/1.9/scalacheck_2.9.0-1.9.jar) + +- [Browse ScalaCheck 1.9 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.9) +- [Browse ScalaCheck 1.9 Sources](https://github.com/typelevel/scalacheck/tree/1.9) + +## ScalaCheck 1.8 + +### ScalaCheck 1.8 + +- [ScalaCheck 1.8 for Scala 2.11](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.11/1.8/scalacheck_2.11-1.8.jar) +- [ScalaCheck 1.8 for Scala 2.10](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.10/1.8/scalacheck_2.10-1.8.jar) +- [ScalaCheck 1.8 for Scala 2.9.3](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.3/1.8/scalacheck_2.9.3-1.8.jar) +- [ScalaCheck 1.8 for Scala 2.9.2](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.2/1.8/scalacheck_2.9.2-1.8.jar) +- [ScalaCheck 1.8 for Scala 2.9.1-1](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.1-1/1.8/scalacheck_2.9.1-1-1.8.jar) +- [ScalaCheck 1.8 for Scala 2.9.1](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.1/1.8/scalacheck_2.9.1-1.8.jar) +- [ScalaCheck 1.8 for Scala 2.9.0-1](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.0-1/1.8/scalacheck_2.9.0-1-1.8.jar) +- [ScalaCheck 1.8 for Scala 2.9.0](https://repo1.maven.org/maven2/org/scalacheck/scalacheck_2.9.0/1.8/scalacheck_2.9.0-1.8.jar) + +- [Browse ScalaCheck 1.8 API](https://javadoc.io/doc/org.scalacheck/scalacheck_2.11/1.8) +- [Browse ScalaCheck 1.8 Sources](https://github.com/typelevel/scalacheck/tree/1.8) + +## Notes + +- Older releases are archived here for historical reference. +- Maven Central is the preferred source for published binaries. +- javadoc.io is the preferred source for API browsing. diff --git a/docs/resources.md b/docs/resources.md new file mode 100644 index 000000000..a8548659e --- /dev/null +++ b/docs/resources.md @@ -0,0 +1,39 @@ +# Resources + +## User Guide +The ScalaCheck [User Guide](userguide.md) is +developed continuously and should reflect the latest release of ScalaCheck +reasonably well. If you find any inconsistencies or missing parts, please +[report an issue] it (or [submit a pull request]). + +## API Reference +The API documentation for the latest ScalaCheck release is available [here](api.md). + +## Presentations + +* [Property-Based Testing for Better Code](https://www.youtube.com/watch?v=shngiiBfD80) - Jessica Kerr at Midwest.io 2014. + +* [I Dream of Gen'ning: ScalaCheck Beyond the Basics](https://www.youtube.com/watch?v=lgyGFG6hBa0) - Kelsey Gilmore-Innis at Scala By The Bay 2014. + +* [Testing the Hard Stuff and Staying Sane](http://www.infoq.com/presentations/testing-techniques-case-study) - John Hughes on property-based testing using Quviq QuickCheck. + +* [Testing Stateful Systems with ScalaCheck](http://parleys.com/play/53a7d2d0e4b0543940d9e566) - Rickard Nilsson at ScalaDays 2014 (slides available [here](https://scalacheck.org/files/scaladays2014/index.html#1)). + + +## Other resources + +* [ScalaCheck Discussion on Discord](https://discord.com/channels/632277896739946517/841617753513263144) +* [ScalaCheck Discussions on GitHub] +* [ScalaCheck on StackOverflow](http://stackoverflow.com/questions/tagged/scalacheck) +* [ScalaCheck Bug Reports] + +## ScalaCheck: The Definitive Guide + +![](/images/bookcover_h300.png) + +[ScalaCheck: The Definitive Guide](http://www.artima.com/shop/scalacheck) is +written by Rickard Nilsson, the creator of ScalaCheck. The book is a complete +guide to ScalaCheck, as well as a thorough introduction to the concept of +property-based testing. There is a [resource +page](http://booksites.artima.com/scalacheck) available for the book, where you +can browse code examples and view/submit errata. diff --git a/docs/sources.md b/docs/sources.md new file mode 100644 index 000000000..cdf8c1a18 --- /dev/null +++ b/docs/sources.md @@ -0,0 +1,51 @@ +# Sources + +ScalaCheck source archives are available for each release line. + +## Latest Version (1.19.0) + +| Format | Download | +|--------|----------| +| zip | [ScalaCheck 1.19.0 Source zip](https://github.com/typelevel/scalacheck/archive/refs/tags/1.19.0.zip) | +| tar.gz | [ScalaCheck 1.19.0 Source tar.gz](https://github.com/typelevel/scalacheck/archive/refs/tags/1.19.0.tar.gz) | + +## Previous Stable Lines + +### 1.18.x (1.18.1) + +| Format | Download | +|--------|----------| +| zip | [ScalaCheck 1.18.1 Source zip](https://github.com/typelevel/scalacheck/archive/refs/tags/1.18.1.zip) | +| tar.gz | [ScalaCheck 1.18.1 Source tar.gz](https://github.com/typelevel/scalacheck/archive/refs/tags/1.18.1.tar.gz) | + +### 1.17.x (1.17.1) + +| Format | Download | +|--------|----------| +| zip | [ScalaCheck 1.17.1 Source zip](https://github.com/typelevel/scalacheck/archive/refs/tags/1.17.1.zip) | +| tar.gz | [ScalaCheck 1.17.1 Source tar.gz](https://github.com/typelevel/scalacheck/archive/refs/tags/1.17.1.tar.gz) | + +### 1.16.x (1.16.0) + +| Format | Download | +|--------|----------| +| zip | [ScalaCheck 1.16.0 Source zip](https://github.com/typelevel/scalacheck/archive/refs/tags/1.16.0.zip) | +| tar.gz | [ScalaCheck 1.16.0 Source tar.gz](https://github.com/typelevel/scalacheck/archive/refs/tags/1.16.0.tar.gz) | + +### 1.15.x (1.15.4) + +| Format | Download | +|--------|----------| +| zip | [ScalaCheck 1.15.4 Source zip](https://github.com/typelevel/scalacheck/archive/refs/tags/1.15.4.zip) | +| tar.gz | [ScalaCheck 1.15.4 Source tar.gz](https://github.com/typelevel/scalacheck/archive/refs/tags/1.15.4.tar.gz) | + +## Notes + +- Source archives are hosted on GitHub. +- Each archive corresponds to a tagged release. +- zip and tar.gz formats contain identical source content. + +## Related pages + +- [Download](download.md) +- [API](api.md) diff --git a/doc/UserGuide.md b/docs/userguide.md similarity index 99% rename from doc/UserGuide.md rename to docs/userguide.md index 40a399d0d..f4ddb8fe7 100644 --- a/doc/UserGuide.md +++ b/docs/userguide.md @@ -1,4 +1,4 @@ -# ScalaCheck User Guide +# User Guide ## What is ScalaCheck? @@ -489,7 +489,7 @@ val genMap = Gen.buildableOf[Map[String, Int], (String, In By default, ScalaCheck supports generation of `List`, `Stream` (Scala 2.10 - 2.12, deprecated in 2.13), `LazyList` (Scala 2.13), `Set`, `Array` and `Map`. -Additionally, ScalaCheck can generate `java.util.ArrayList` and `java.util.HashMap` when an implicit +Additionally, ScalaCheck can generate `java.util.ArrayList` and `java.util.HashMap` when an implicit `Traversable` conversion evidence is in scope. You can add support for additional containers by adding implicit `Buildable` instances. diff --git a/project/plugin.sbt b/project/plugin.sbt index 32418b657..c944e4f91 100644 --- a/project/plugin.sbt +++ b/project/plugin.sbt @@ -2,3 +2,5 @@ addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.21.0") addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.12") addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.8") addSbtPlugin("org.typelevel" % "sbt-typelevel" % "0.8.6") +addSbtPlugin("org.typelevel" % "sbt-typelevel-site" % "0.8.6") +addSbtPlugin("org.typelevel" % "sbt-typelevel-github-actions" % "0.8.6")