From e77656dafc87fcff342373c9ff026563df3d7528 Mon Sep 17 00:00:00 2001 From: Arman Bilge Date: Thu, 20 Jan 2022 16:59:38 +0000 Subject: [PATCH 1/3] Migrate to sbt-typelevel --- .github/workflows/ci.yml | 143 ++++++----- build.sbt | 236 ++---------------- .../scala/org/typelevel/monoids/All.scala | 0 .../scala/org/typelevel/monoids/Any.scala | 0 .../scala/org/typelevel/monoids/Dual.scala | 0 .../scala/org/typelevel/monoids/First.scala | 0 .../scala/org/typelevel/monoids/Last.scala | 0 .../scala/org/typelevel/monoids/Product.scala | 0 .../scala/org/typelevel/monoids/Sum.scala | 0 .../scala/org/typelevel/monoids/Xor.scala | 0 .../scala/org/typelevel/semigroups/Dual.scala | 0 .../org/typelevel/semigroups/First.scala | 0 .../org/typelevel/semigroups/Intersect.scala | 0 .../scala/org/typelevel/semigroups/Last.scala | 0 .../scala/org/typelevel/semigroups/Max.scala | 0 .../scala/org/typelevel/semigroups/Min.scala | 0 .../scala/org/typelevel/monoids/All.scala | 0 .../scala/org/typelevel/monoids/Any.scala | 0 .../scala/org/typelevel/monoids/Dual.scala | 0 .../scala/org/typelevel/monoids/First.scala | 0 .../scala/org/typelevel/monoids/Last.scala | 0 .../scala/org/typelevel/monoids/Product.scala | 0 .../scala/org/typelevel/monoids/Sum.scala | 0 .../scala/org/typelevel/monoids/Xor.scala | 0 .../scala/org/typelevel/semigroups/Dual.scala | 0 .../org/typelevel/semigroups/First.scala | 0 .../org/typelevel/semigroups/Intersect.scala | 0 .../scala/org/typelevel/semigroups/Last.scala | 0 .../scala/org/typelevel/semigroups/Max.scala | 0 .../scala/org/typelevel/semigroups/Min.scala | 0 project/plugins.sbt | 15 +- 31 files changed, 101 insertions(+), 293 deletions(-) rename core/src/main/{scala-2.x => scala-2}/src/main/scala/org/typelevel/monoids/All.scala (100%) rename core/src/main/{scala-2.x => scala-2}/src/main/scala/org/typelevel/monoids/Any.scala (100%) rename core/src/main/{scala-2.x => scala-2}/src/main/scala/org/typelevel/monoids/Dual.scala (100%) rename core/src/main/{scala-2.x => scala-2}/src/main/scala/org/typelevel/monoids/First.scala (100%) rename core/src/main/{scala-2.x => scala-2}/src/main/scala/org/typelevel/monoids/Last.scala (100%) rename core/src/main/{scala-2.x => scala-2}/src/main/scala/org/typelevel/monoids/Product.scala (100%) rename core/src/main/{scala-2.x => scala-2}/src/main/scala/org/typelevel/monoids/Sum.scala (100%) rename core/src/main/{scala-2.x => scala-2}/src/main/scala/org/typelevel/monoids/Xor.scala (100%) rename core/src/main/{scala-2.x => scala-2}/src/main/scala/org/typelevel/semigroups/Dual.scala (100%) rename core/src/main/{scala-2.x => scala-2}/src/main/scala/org/typelevel/semigroups/First.scala (100%) rename core/src/main/{scala-2.x => scala-2}/src/main/scala/org/typelevel/semigroups/Intersect.scala (100%) rename core/src/main/{scala-2.x => scala-2}/src/main/scala/org/typelevel/semigroups/Last.scala (100%) rename core/src/main/{scala-2.x => scala-2}/src/main/scala/org/typelevel/semigroups/Max.scala (100%) rename core/src/main/{scala-2.x => scala-2}/src/main/scala/org/typelevel/semigroups/Min.scala (100%) rename core/src/main/{scala-3.x => scala-3}/src/main/scala/org/typelevel/monoids/All.scala (100%) rename core/src/main/{scala-3.x => scala-3}/src/main/scala/org/typelevel/monoids/Any.scala (100%) rename core/src/main/{scala-3.x => scala-3}/src/main/scala/org/typelevel/monoids/Dual.scala (100%) rename core/src/main/{scala-3.x => scala-3}/src/main/scala/org/typelevel/monoids/First.scala (100%) rename core/src/main/{scala-3.x => scala-3}/src/main/scala/org/typelevel/monoids/Last.scala (100%) rename core/src/main/{scala-3.x => scala-3}/src/main/scala/org/typelevel/monoids/Product.scala (100%) rename core/src/main/{scala-3.x => scala-3}/src/main/scala/org/typelevel/monoids/Sum.scala (100%) rename core/src/main/{scala-3.x => scala-3}/src/main/scala/org/typelevel/monoids/Xor.scala (100%) rename core/src/main/{scala-3.x => scala-3}/src/main/scala/org/typelevel/semigroups/Dual.scala (100%) rename core/src/main/{scala-3.x => scala-3}/src/main/scala/org/typelevel/semigroups/First.scala (100%) rename core/src/main/{scala-3.x => scala-3}/src/main/scala/org/typelevel/semigroups/Intersect.scala (100%) rename core/src/main/{scala-3.x => scala-3}/src/main/scala/org/typelevel/semigroups/Last.scala (100%) rename core/src/main/{scala-3.x => scala-3}/src/main/scala/org/typelevel/semigroups/Max.scala (100%) rename core/src/main/{scala-3.x => scala-3}/src/main/scala/org/typelevel/semigroups/Min.scala (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6573b29..5f5e5c2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,13 +12,14 @@ on: branches: ['**'] push: branches: ['**'] - tags: [v*, v*] + tags: [v*] env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} + PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} + SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} PGP_SECRET: ${{ secrets.PGP_SECRET }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} jobs: build: @@ -26,8 +27,9 @@ jobs: strategy: matrix: os: [ubuntu-latest] - scala: [2.12.15, 2.13.8, 3.1.0] - java: [temurin@8, temurin@17] + scala: [2.12.15, 3.1.0, 2.13.8] + java: [temurin@8] + project: [rootJS, rootJVM] runs-on: ${{ matrix.os }} steps: - name: Checkout current branch (full) @@ -42,13 +44,6 @@ jobs: distribution: temurin java-version: 8 - - name: Setup Java (temurin@17) - if: matrix.java == 'temurin@17' - uses: actions/setup-java@v2 - with: - distribution: temurin - java-version: 17 - - name: Cache sbt uses: actions/cache@v2 with: @@ -61,42 +56,30 @@ jobs: ~/Library/Caches/Coursier/v1 key: ${{ runner.os }}-sbt-cache-v2-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }} - - name: Setup Ruby - if: matrix.scala == '2.12.15' - uses: ruby/setup-ruby@v1 - with: - ruby-version: 2.6.0 - - - name: Install microsite dependencies - if: matrix.scala == '2.12.15' - run: | - gem install saas - gem install jekyll -v 4.2.0 - - name: Check that workflows are up to date - run: sbt ++${{ matrix.scala }} githubWorkflowCheck + run: sbt 'project ${{ matrix.project }}' '++${{ matrix.scala }}' 'project /' githubWorkflowCheck - - name: Check formatting - run: sbt ++${{ matrix.scala }} scalafmtCheckAll scalafmtSbtCheck + - name: Check headers and formatting + run: sbt 'project ${{ matrix.project }}' '++${{ matrix.scala }}' headerCheckAll scalafmtCheckAll 'project /' scalafmtSbtCheck - - name: Check binary issues - run: sbt ++${{ matrix.scala }} mimaReportBinaryIssues + - name: fastOptJS + if: matrix.project == 'rootJS' + run: sbt 'project ${{ matrix.project }}' '++${{ matrix.scala }}' Test/fastOptJS - - name: Compile - run: sbt ++${{ matrix.scala }} Test/compile + - name: Test + run: sbt 'project ${{ matrix.project }}' '++${{ matrix.scala }}' test - - name: Run tests - run: sbt ++${{ matrix.scala }} test + - name: Check binary compatibility + run: sbt 'project ${{ matrix.project }}' '++${{ matrix.scala }}' mimaReportBinaryIssues - - name: Build the Scaladoc - run: sbt ++${{ matrix.scala }} doc + - name: Generate API documentation + run: sbt 'project ${{ matrix.project }}' '++${{ matrix.scala }}' doc - - name: Build the Microsite - if: matrix.scala == '2.12.15' - run: sbt ++${{ matrix.scala }} docs/makeMicrosite + - name: Make target directories + run: mkdir -p target .js/target site/target core/.js/target core/.jvm/target .jvm/target .native/target project/target - name: Compress target directories - run: tar cf targets.tar target core/.js/target core/.jvm/target project/target + run: tar cf targets.tar target .js/target site/target core/.js/target core/.jvm/target .jvm/target .native/target project/target - name: Upload target directories uses: actions/upload-artifact@v2 @@ -107,7 +90,7 @@ jobs: publish: name: Publish Artifacts needs: [build] - if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v')) + if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main') strategy: matrix: os: [ubuntu-latest] @@ -127,13 +110,6 @@ jobs: distribution: temurin java-version: 8 - - name: Setup Java (temurin@17) - if: matrix.java == 'temurin@17' - uses: actions/setup-java@v2 - with: - distribution: temurin - java-version: 17 - - name: Cache sbt uses: actions/cache@v2 with: @@ -156,41 +132,80 @@ jobs: tar xf targets.tar rm targets.tar - - name: Download target directories (2.13.8) + - name: Download target directories (3.1.0) uses: actions/download-artifact@v2 with: - name: target-${{ matrix.os }}-2.13.8-${{ matrix.java }} + name: target-${{ matrix.os }}-3.1.0-${{ matrix.java }} - - name: Inflate target directories (2.13.8) + - name: Inflate target directories (3.1.0) run: | tar xf targets.tar rm targets.tar - - name: Download target directories (3.1.0) + - name: Download target directories (2.13.8) uses: actions/download-artifact@v2 with: - name: target-${{ matrix.os }}-3.1.0-${{ matrix.java }} + name: target-${{ matrix.os }}-2.13.8-${{ matrix.java }} - - name: Inflate target directories (3.1.0) + - name: Inflate target directories (2.13.8) run: | tar xf targets.tar rm targets.tar - name: Import signing key + if: env.PGP_SECRET != '' && env.PGP_PASSPHRASE == '' run: echo $PGP_SECRET | base64 -d | gpg --import - - name: Setup Ruby - uses: ruby/setup-ruby@v1 + - name: Import signing key and strip passphrase + if: env.PGP_SECRET != '' && env.PGP_PASSPHRASE != '' + run: | + echo "$PGP_SECRET" | base64 -d > /tmp/signing-key.gpg + echo "$PGP_PASSPHRASE" | gpg --pinentry-mode loopback --passphrase-fd 0 --import /tmp/signing-key.gpg + (echo "$PGP_PASSPHRASE"; echo; echo) | gpg --command-fd 0 --pinentry-mode loopback --change-passphrase $(gpg --list-secret-keys --with-colons 2> /dev/null | grep '^sec:' | cut --delimiter ':' --fields 5 | tail -n 1) + + - name: Publish + run: sbt '++${{ matrix.scala }}' tlRelease + + site: + name: Generate Site + strategy: + matrix: + os: [ubuntu-latest] + scala: [2.13.8] + java: [temurin@8] + runs-on: ${{ matrix.os }} + steps: + - name: Checkout current branch (full) + uses: actions/checkout@v2 with: - ruby-version: 2.6.0 + fetch-depth: 0 - - name: Install microsite dependencies - run: | - gem install saas - gem install jekyll -v 4.2.0 + - name: Setup Java (temurin@8) + if: matrix.java == 'temurin@8' + uses: actions/setup-java@v2 + with: + distribution: temurin + java-version: 8 - - name: Release - run: sbt ++${{ matrix.scala }} release + - name: Cache sbt + uses: actions/cache@v2 + with: + path: | + ~/.sbt + ~/.ivy2/cache + ~/.coursier/cache/v1 + ~/.cache/coursier/v1 + ~/AppData/Local/Coursier/Cache/v1 + ~/Library/Caches/Coursier/v1 + key: ${{ runner.os }}-sbt-cache-v2-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }} + + - name: Generate site + run: sbt '++${{ matrix.scala }}' tlSite - - name: Publish microsite - run: sbt ++${{ matrix.scala }} ++2.12.15 docs/publishMicrosite + - name: Publish site + if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main' + uses: peaceiris/actions-gh-pages@v3.8.0 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: site/target/docs/site + publish_branch: gh-pages diff --git a/build.sbt b/build.sbt index b7d5ee8..69fc259 100644 --- a/build.sbt +++ b/build.sbt @@ -1,83 +1,25 @@ -import sbtcrossproject.CrossPlugin.autoImport.{crossProject, CrossType} - Global / onChangedBuildSource := ReloadOnSourceChanges val Scala212 = "2.12.15" val Scala213 = "2.13.8" val Scala3 = "3.1.0" -val Scala212Cond = s"matrix.scala == '$Scala212'" +ThisBuild / tlBaseVersion := "0.2" +ThisBuild / licenses := List("MIT" -> url("https://opensource.org/licenses/MIT")) +ThisBuild / startYear := Some(2021) ThisBuild / scalaVersion := Scala213 -ThisBuild / crossScalaVersions := Seq(Scala212, Scala213, Scala3) - -def rubySetupSteps(cond: Option[String]) = Seq( - WorkflowStep.Use( - UseRef.Public("ruby", "setup-ruby", "v1"), - name = Some("Setup Ruby"), - params = Map("ruby-version" -> "2.6.0"), - cond = cond - ), - WorkflowStep.Run( - List("gem install saas", "gem install jekyll -v 4.2.0"), - name = Some("Install microsite dependencies"), - cond = cond - ) -) +ThisBuild / crossScalaVersions := Seq(Scala212, Scala3, Scala213) val PrimaryJava = JavaSpec.temurin("8") val LTSJava = JavaSpec.temurin("17") -ThisBuild / githubWorkflowPublishTargetBranches := Seq() -ThisBuild / githubWorkflowJavaVersions := Seq(PrimaryJava, LTSJava) -ThisBuild / githubWorkflowBuild := Seq( - WorkflowStep - .Sbt( - List("scalafmtCheckAll", "scalafmtSbtCheck"), - name = Some("Check formatting") - ), - WorkflowStep.Sbt(List("mimaReportBinaryIssues"), name = Some("Check binary issues")), - WorkflowStep.Sbt(List("Test/compile"), name = Some("Compile")), - WorkflowStep.Sbt(List("test"), name = Some("Run tests")), - WorkflowStep.Sbt(List("doc"), name = Some("Build the Scaladoc")), - WorkflowStep.Sbt( - List("docs/makeMicrosite"), - name = Some("Build the Microsite"), - cond = Some(Scala212Cond) - ) -) - -ThisBuild / githubWorkflowBuildPreamble ++= - rubySetupSteps(Some(Scala212Cond)) - -ThisBuild / githubWorkflowTargetTags ++= Seq("v*") - -// currently only publishing tags -ThisBuild / githubWorkflowPublishTargetBranches := - Seq(RefPredicate.StartsWith(Ref.Tag("v"))) - -ThisBuild / githubWorkflowPublishPreamble ++= - rubySetupSteps(None) - -ThisBuild / githubWorkflowPublish := Seq( - WorkflowStep.Sbt(List("release"), name = Some("Release")), - WorkflowStep.Sbt( - List(s"++${Scala212}", "docs/publishMicrosite"), - name = Some(s"Publish microsite") - ) -) - -lazy val monoids = project - .in(file(".")) - .settings(commonSettings, skipOnPublishSettings) - .aggregate(core.jvm, core.js) - .enablePlugins(NoPublishPlugin) +lazy val root = tlCrossRootProject.aggregate(core) lazy val core = crossProject(JSPlatform, JVMPlatform) .crossType(CrossType.Pure) .in(file("core")) - .enablePlugins(SonatypeCiReleasePlugin) - .settings(commonSettings, mimaSettings) + .settings(commonSettings) .settings( name := "monoids" ) @@ -86,57 +28,28 @@ lazy val core = crossProject(JSPlatform, JVMPlatform) ) lazy val docs = project - .in(file("docs")) + .in(file("site")) .settings( - commonSettings, - skipOnPublishSettings, - micrositeSettings, - publish / skip := true, - githubWorkflowArtifactUpload := false + commonSettings ) .dependsOn(core.jvm) - .enablePlugins(MicrositesPlugin) - .enablePlugins(MdocPlugin) - .enablePlugins(NoPublishPlugin) - .settings(mdocIn := sourceDirectory.value / "main" / "mdoc") + .enablePlugins(TypelevelSitePlugin) val catsV = "2.7.0" val kindProjectorV = "0.13.2" val betterMonadicForV = "0.3.1" -lazy val contributors = Seq( - "ChristopherDavenport" -> "Christopher Davenport" +ThisBuild / developers ++= List( + tlGitHubDev("rossabaker", "Ross A. Baker"), + tlGitHubDev("ChristopherDavenport", "Christopher Davenport") ) -def scalaVersionSpecificFolders(srcName: String, srcBaseDir: java.io.File, scalaVersion: String) = { - def extraDirs(suffix: String) = - List(CrossType.Pure, CrossType.Full) - .flatMap(_.sharedSrcDir(srcBaseDir, srcName).toList.map(f => file(f.getPath + suffix))) - - CrossVersion.partialVersion(scalaVersion) match { - case Some((2, _)) => extraDirs("-2.x") - case Some((0 | 3, _)) => extraDirs("-3.x") - case _ => Nil - } -} - // General Settings lazy val commonSettings = Seq( - organization := "org.typelevel", - Compile / unmanagedSourceDirectories ++= scalaVersionSpecificFolders( - "main", - baseDirectory.value, - scalaVersion.value - ), - Test / unmanagedSourceDirectories ++= scalaVersionSpecificFolders( - "test", - baseDirectory.value, - scalaVersion.value - ), scalacOptions := scalacOptions.value.filterNot(_ == "-source:3.0-migration"), scalacOptions --= ( - if (ScalaArtifacts.isScala3(scalaVersion.value)) + if (tlIsScala3.value) Seq( "-deprecation", "-encoding", @@ -148,128 +61,13 @@ lazy val commonSettings = Seq( else Nil ), scalacOptions ++= ( - if (ScalaArtifacts.isScala3(scalaVersion.value)) Nil + if (tlIsScala3.value) Nil else Seq("-Yrangepos", "-language:higherKinds") ), - libraryDependencies ++= ( - if (ScalaArtifacts.isScala3(scalaVersion.value)) Nil - else - Seq( - compilerPlugin( - ("org.typelevel" %% "kind-projector" % kindProjectorV).cross(CrossVersion.full) - ), - compilerPlugin("com.olegpy" %% "better-monadic-for" % betterMonadicForV) - ) - ), libraryDependencies ++= Seq( "org.typelevel" %%% "cats-core" % catsV, - "org.typelevel" %%% "cats-testkit" % catsV % Test, - "org.typelevel" %%% "discipline-munit" % "1.0.9" % Test - ), - testFrameworks += new TestFramework("munit.Framework") -) - -inThisBuild( - List( - organization := "org.typelevel", - organizationName := "Typelevel", - baseVersion := "0.2.0", - publishGithubUser := "rossabaker", - publishFullName := "Ross A. Baker", - homepage := Some(url("https://github.com/typelevel/monoids")), - scmInfo := Some(ScmInfo( - url("https://github.com/typelevel/monoids"), - "git@github.com:typelevel/monoids.git" - )), - licenses := List("MIT" -> url("https://opensource.org/licenses/MIT")), - developers := { - (for ((username, name) <- contributors) - yield Developer(username, name, "", url(s"https://github.com/$username"))).toList - } + "org.typelevel" %%% "cats-testkit" % catsV % Test, + "org.scalameta" %%% "munit" % "0.7.29" % Test, + "org.typelevel" %%% "discipline-munit" % "1.0.9" % Test ) ) - -// Not Used Currently -lazy val mimaSettings = { - def mimaVersion(version: String) = { - VersionNumber(version) match { - case VersionNumber(Seq(major, minor, patch, _*), _, _) if patch.toInt > 0 => - Some(s"$major.$minor.${patch.toInt - 1}") - case _ => - None - } - } - - Seq( - mimaFailOnProblem := mimaVersion(version.value).isDefined, - ThisBuild / mimaFailOnNoPrevious := false, - mimaPreviousArtifacts := (mimaVersion(version.value) map { - organization.value % s"${moduleName.value}_${scalaBinaryVersion.value}" % _ - }).toSet, - mimaBinaryIssueFilters ++= { - import com.typesafe.tools.mima.core._ - import com.typesafe.tools.mima.core.ProblemFilters._ - Seq() - } - ) -} - -lazy val micrositeSettings = { - import microsites._ - Seq( - micrositeName := "monoids", - micrositeDescription := "Generic Monoids for Scala", - micrositeAuthor := "Christopher Davenport", - micrositeGithubOwner := "typelevel", - micrositeGithubRepo := "monoids", - micrositeBaseUrl := "/monoids", - micrositeDocumentationUrl := "https://typelevel.org/monoids", - micrositeFooterText := None, - micrositeHighlightTheme := "atom-one-light", - micrositePalette := Map( - "brand-primary" -> "#3e5b95", - "brand-secondary" -> "#294066", - "brand-tertiary" -> "#2d5799", - "gray-dark" -> "#49494B", - "gray" -> "#7B7B7E", - "gray-light" -> "#E5E5E6", - "gray-lighter" -> "#F4F3F4", - "white-color" -> "#FFFFFF" - ), - micrositePushSiteWith := GitHub4s, - micrositeGithubToken := sys.env.get("GITHUB_TOKEN"), - micrositeExtraMdFiles := Map( - file("CHANGELOG.md") -> ExtraMdFileConfig( - "changelog.md", - "page", - Map( - "title" -> "changelog", - "section" -> "changelog", - "position" -> "100" - ) - ), - file("CODE_OF_CONDUCT.md") -> ExtraMdFileConfig( - "code-of-conduct.md", - "page", - Map( - "title" -> "code of conduct", - "section" -> "code of conduct", - "position" -> "101" - ) - ), - file("LICENSE") -> ExtraMdFileConfig( - "license.md", - "page", - Map("title" -> "license", "section" -> "license", "position" -> "102") - ) - ) - ) -} - -lazy val skipOnPublishSettings = Seq( - publish / skip := true, - publish := (()), - publishLocal := (()), - publishArtifact := false, - publishTo := None -) diff --git a/core/src/main/scala-2.x/src/main/scala/org/typelevel/monoids/All.scala b/core/src/main/scala-2/src/main/scala/org/typelevel/monoids/All.scala similarity index 100% rename from core/src/main/scala-2.x/src/main/scala/org/typelevel/monoids/All.scala rename to core/src/main/scala-2/src/main/scala/org/typelevel/monoids/All.scala diff --git a/core/src/main/scala-2.x/src/main/scala/org/typelevel/monoids/Any.scala b/core/src/main/scala-2/src/main/scala/org/typelevel/monoids/Any.scala similarity index 100% rename from core/src/main/scala-2.x/src/main/scala/org/typelevel/monoids/Any.scala rename to core/src/main/scala-2/src/main/scala/org/typelevel/monoids/Any.scala diff --git a/core/src/main/scala-2.x/src/main/scala/org/typelevel/monoids/Dual.scala b/core/src/main/scala-2/src/main/scala/org/typelevel/monoids/Dual.scala similarity index 100% rename from core/src/main/scala-2.x/src/main/scala/org/typelevel/monoids/Dual.scala rename to core/src/main/scala-2/src/main/scala/org/typelevel/monoids/Dual.scala diff --git a/core/src/main/scala-2.x/src/main/scala/org/typelevel/monoids/First.scala b/core/src/main/scala-2/src/main/scala/org/typelevel/monoids/First.scala similarity index 100% rename from core/src/main/scala-2.x/src/main/scala/org/typelevel/monoids/First.scala rename to core/src/main/scala-2/src/main/scala/org/typelevel/monoids/First.scala diff --git a/core/src/main/scala-2.x/src/main/scala/org/typelevel/monoids/Last.scala b/core/src/main/scala-2/src/main/scala/org/typelevel/monoids/Last.scala similarity index 100% rename from core/src/main/scala-2.x/src/main/scala/org/typelevel/monoids/Last.scala rename to core/src/main/scala-2/src/main/scala/org/typelevel/monoids/Last.scala diff --git a/core/src/main/scala-2.x/src/main/scala/org/typelevel/monoids/Product.scala b/core/src/main/scala-2/src/main/scala/org/typelevel/monoids/Product.scala similarity index 100% rename from core/src/main/scala-2.x/src/main/scala/org/typelevel/monoids/Product.scala rename to core/src/main/scala-2/src/main/scala/org/typelevel/monoids/Product.scala diff --git a/core/src/main/scala-2.x/src/main/scala/org/typelevel/monoids/Sum.scala b/core/src/main/scala-2/src/main/scala/org/typelevel/monoids/Sum.scala similarity index 100% rename from core/src/main/scala-2.x/src/main/scala/org/typelevel/monoids/Sum.scala rename to core/src/main/scala-2/src/main/scala/org/typelevel/monoids/Sum.scala diff --git a/core/src/main/scala-2.x/src/main/scala/org/typelevel/monoids/Xor.scala b/core/src/main/scala-2/src/main/scala/org/typelevel/monoids/Xor.scala similarity index 100% rename from core/src/main/scala-2.x/src/main/scala/org/typelevel/monoids/Xor.scala rename to core/src/main/scala-2/src/main/scala/org/typelevel/monoids/Xor.scala diff --git a/core/src/main/scala-2.x/src/main/scala/org/typelevel/semigroups/Dual.scala b/core/src/main/scala-2/src/main/scala/org/typelevel/semigroups/Dual.scala similarity index 100% rename from core/src/main/scala-2.x/src/main/scala/org/typelevel/semigroups/Dual.scala rename to core/src/main/scala-2/src/main/scala/org/typelevel/semigroups/Dual.scala diff --git a/core/src/main/scala-2.x/src/main/scala/org/typelevel/semigroups/First.scala b/core/src/main/scala-2/src/main/scala/org/typelevel/semigroups/First.scala similarity index 100% rename from core/src/main/scala-2.x/src/main/scala/org/typelevel/semigroups/First.scala rename to core/src/main/scala-2/src/main/scala/org/typelevel/semigroups/First.scala diff --git a/core/src/main/scala-2.x/src/main/scala/org/typelevel/semigroups/Intersect.scala b/core/src/main/scala-2/src/main/scala/org/typelevel/semigroups/Intersect.scala similarity index 100% rename from core/src/main/scala-2.x/src/main/scala/org/typelevel/semigroups/Intersect.scala rename to core/src/main/scala-2/src/main/scala/org/typelevel/semigroups/Intersect.scala diff --git a/core/src/main/scala-2.x/src/main/scala/org/typelevel/semigroups/Last.scala b/core/src/main/scala-2/src/main/scala/org/typelevel/semigroups/Last.scala similarity index 100% rename from core/src/main/scala-2.x/src/main/scala/org/typelevel/semigroups/Last.scala rename to core/src/main/scala-2/src/main/scala/org/typelevel/semigroups/Last.scala diff --git a/core/src/main/scala-2.x/src/main/scala/org/typelevel/semigroups/Max.scala b/core/src/main/scala-2/src/main/scala/org/typelevel/semigroups/Max.scala similarity index 100% rename from core/src/main/scala-2.x/src/main/scala/org/typelevel/semigroups/Max.scala rename to core/src/main/scala-2/src/main/scala/org/typelevel/semigroups/Max.scala diff --git a/core/src/main/scala-2.x/src/main/scala/org/typelevel/semigroups/Min.scala b/core/src/main/scala-2/src/main/scala/org/typelevel/semigroups/Min.scala similarity index 100% rename from core/src/main/scala-2.x/src/main/scala/org/typelevel/semigroups/Min.scala rename to core/src/main/scala-2/src/main/scala/org/typelevel/semigroups/Min.scala diff --git a/core/src/main/scala-3.x/src/main/scala/org/typelevel/monoids/All.scala b/core/src/main/scala-3/src/main/scala/org/typelevel/monoids/All.scala similarity index 100% rename from core/src/main/scala-3.x/src/main/scala/org/typelevel/monoids/All.scala rename to core/src/main/scala-3/src/main/scala/org/typelevel/monoids/All.scala diff --git a/core/src/main/scala-3.x/src/main/scala/org/typelevel/monoids/Any.scala b/core/src/main/scala-3/src/main/scala/org/typelevel/monoids/Any.scala similarity index 100% rename from core/src/main/scala-3.x/src/main/scala/org/typelevel/monoids/Any.scala rename to core/src/main/scala-3/src/main/scala/org/typelevel/monoids/Any.scala diff --git a/core/src/main/scala-3.x/src/main/scala/org/typelevel/monoids/Dual.scala b/core/src/main/scala-3/src/main/scala/org/typelevel/monoids/Dual.scala similarity index 100% rename from core/src/main/scala-3.x/src/main/scala/org/typelevel/monoids/Dual.scala rename to core/src/main/scala-3/src/main/scala/org/typelevel/monoids/Dual.scala diff --git a/core/src/main/scala-3.x/src/main/scala/org/typelevel/monoids/First.scala b/core/src/main/scala-3/src/main/scala/org/typelevel/monoids/First.scala similarity index 100% rename from core/src/main/scala-3.x/src/main/scala/org/typelevel/monoids/First.scala rename to core/src/main/scala-3/src/main/scala/org/typelevel/monoids/First.scala diff --git a/core/src/main/scala-3.x/src/main/scala/org/typelevel/monoids/Last.scala b/core/src/main/scala-3/src/main/scala/org/typelevel/monoids/Last.scala similarity index 100% rename from core/src/main/scala-3.x/src/main/scala/org/typelevel/monoids/Last.scala rename to core/src/main/scala-3/src/main/scala/org/typelevel/monoids/Last.scala diff --git a/core/src/main/scala-3.x/src/main/scala/org/typelevel/monoids/Product.scala b/core/src/main/scala-3/src/main/scala/org/typelevel/monoids/Product.scala similarity index 100% rename from core/src/main/scala-3.x/src/main/scala/org/typelevel/monoids/Product.scala rename to core/src/main/scala-3/src/main/scala/org/typelevel/monoids/Product.scala diff --git a/core/src/main/scala-3.x/src/main/scala/org/typelevel/monoids/Sum.scala b/core/src/main/scala-3/src/main/scala/org/typelevel/monoids/Sum.scala similarity index 100% rename from core/src/main/scala-3.x/src/main/scala/org/typelevel/monoids/Sum.scala rename to core/src/main/scala-3/src/main/scala/org/typelevel/monoids/Sum.scala diff --git a/core/src/main/scala-3.x/src/main/scala/org/typelevel/monoids/Xor.scala b/core/src/main/scala-3/src/main/scala/org/typelevel/monoids/Xor.scala similarity index 100% rename from core/src/main/scala-3.x/src/main/scala/org/typelevel/monoids/Xor.scala rename to core/src/main/scala-3/src/main/scala/org/typelevel/monoids/Xor.scala diff --git a/core/src/main/scala-3.x/src/main/scala/org/typelevel/semigroups/Dual.scala b/core/src/main/scala-3/src/main/scala/org/typelevel/semigroups/Dual.scala similarity index 100% rename from core/src/main/scala-3.x/src/main/scala/org/typelevel/semigroups/Dual.scala rename to core/src/main/scala-3/src/main/scala/org/typelevel/semigroups/Dual.scala diff --git a/core/src/main/scala-3.x/src/main/scala/org/typelevel/semigroups/First.scala b/core/src/main/scala-3/src/main/scala/org/typelevel/semigroups/First.scala similarity index 100% rename from core/src/main/scala-3.x/src/main/scala/org/typelevel/semigroups/First.scala rename to core/src/main/scala-3/src/main/scala/org/typelevel/semigroups/First.scala diff --git a/core/src/main/scala-3.x/src/main/scala/org/typelevel/semigroups/Intersect.scala b/core/src/main/scala-3/src/main/scala/org/typelevel/semigroups/Intersect.scala similarity index 100% rename from core/src/main/scala-3.x/src/main/scala/org/typelevel/semigroups/Intersect.scala rename to core/src/main/scala-3/src/main/scala/org/typelevel/semigroups/Intersect.scala diff --git a/core/src/main/scala-3.x/src/main/scala/org/typelevel/semigroups/Last.scala b/core/src/main/scala-3/src/main/scala/org/typelevel/semigroups/Last.scala similarity index 100% rename from core/src/main/scala-3.x/src/main/scala/org/typelevel/semigroups/Last.scala rename to core/src/main/scala-3/src/main/scala/org/typelevel/semigroups/Last.scala diff --git a/core/src/main/scala-3.x/src/main/scala/org/typelevel/semigroups/Max.scala b/core/src/main/scala-3/src/main/scala/org/typelevel/semigroups/Max.scala similarity index 100% rename from core/src/main/scala-3.x/src/main/scala/org/typelevel/semigroups/Max.scala rename to core/src/main/scala-3/src/main/scala/org/typelevel/semigroups/Max.scala diff --git a/core/src/main/scala-3.x/src/main/scala/org/typelevel/semigroups/Min.scala b/core/src/main/scala-3/src/main/scala/org/typelevel/semigroups/Min.scala similarity index 100% rename from core/src/main/scala-3.x/src/main/scala/org/typelevel/semigroups/Min.scala rename to core/src/main/scala-3/src/main/scala/org/typelevel/semigroups/Min.scala diff --git a/project/plugins.sbt b/project/plugins.sbt index 0080b11..301d60c 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,10 +1,5 @@ -addSbtPlugin("io.github.davidgregory084" % "sbt-tpolecat" % "0.1.20") -addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.0.1") -addSbtPlugin("com.47deg" % "sbt-microsites" % "1.3.4") -addSbtPlugin("com.typesafe.sbt" % "sbt-ghpages" % "0.6.3") -addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.3") -addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.1.0") -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.8.0") -addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.6") -addSbtPlugin("com.codecommit" % "sbt-github-actions" % "0.14.2") -addSbtPlugin("com.codecommit" % "sbt-spiewak-sonatype" % "0.23.0") +addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.3") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.8.0") +val sbtTypelevelVersion = "0.4.0" +addSbtPlugin("org.typelevel" % "sbt-typelevel" % sbtTypelevelVersion) +addSbtPlugin("org.typelevel" % "sbt-typelevel-site" % sbtTypelevelVersion) From 2ba82ea3c762923b0c9f1daa6bde9d359f4695a0 Mon Sep 17 00:00:00 2001 From: Arman Bilge Date: Thu, 20 Jan 2022 17:02:14 +0000 Subject: [PATCH 2/3] Fix scalafmt conf --- .scalafmt.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.scalafmt.conf b/.scalafmt.conf index 9e5e806..c3bd27d 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -31,7 +31,7 @@ rewrite { runner.dialect = "scala213source3" fileOverride { - "glob:**/scala-3.x/src/main/scala/**" { + "glob:**/scala-3/**" { runner.dialect = scala3 } } From 6fb30a56b8d151efe73e5b8191b745d5ef19ef89 Mon Sep 17 00:00:00 2001 From: Arman Bilge Date: Fri, 21 Jan 2022 13:11:34 +0000 Subject: [PATCH 3/3] Restore Java 17 --- .github/workflows/ci.yml | 30 +++++++++++++++++++++++++++++- build.sbt | 1 + 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5f5e5c2..89b56b9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,8 +28,15 @@ jobs: matrix: os: [ubuntu-latest] scala: [2.12.15, 3.1.0, 2.13.8] - java: [temurin@8] + java: [temurin@8, temurin@17] project: [rootJS, rootJVM] + exclude: + - scala: 2.12.15 + java: temurin@17 + - scala: 3.1.0 + java: temurin@17 + - project: rootJS + java: temurin@17 runs-on: ${{ matrix.os }} steps: - name: Checkout current branch (full) @@ -44,6 +51,13 @@ jobs: distribution: temurin java-version: 8 + - name: Setup Java (temurin@17) + if: matrix.java == 'temurin@17' + uses: actions/setup-java@v2 + with: + distribution: temurin + java-version: 17 + - name: Cache sbt uses: actions/cache@v2 with: @@ -110,6 +124,13 @@ jobs: distribution: temurin java-version: 8 + - name: Setup Java (temurin@17) + if: matrix.java == 'temurin@17' + uses: actions/setup-java@v2 + with: + distribution: temurin + java-version: 17 + - name: Cache sbt uses: actions/cache@v2 with: @@ -187,6 +208,13 @@ jobs: distribution: temurin java-version: 8 + - name: Setup Java (temurin@17) + if: matrix.java == 'temurin@17' + uses: actions/setup-java@v2 + with: + distribution: temurin + java-version: 17 + - name: Cache sbt uses: actions/cache@v2 with: diff --git a/build.sbt b/build.sbt index 69fc259..a0e409f 100644 --- a/build.sbt +++ b/build.sbt @@ -13,6 +13,7 @@ ThisBuild / crossScalaVersions := Seq(Scala212, Scala3, Scala213) val PrimaryJava = JavaSpec.temurin("8") val LTSJava = JavaSpec.temurin("17") +ThisBuild / githubWorkflowJavaVersions := Seq(PrimaryJava, LTSJava) lazy val root = tlCrossRootProject.aggregate(core)