From a540954b499374a0d7bba6aa8afdd7e7ac9f653c Mon Sep 17 00:00:00 2001 From: Nabil Abdel-Hafeez <7283535+987Nabil@users.noreply.github.com> Date: Mon, 12 Aug 2024 13:09:25 +0200 Subject: [PATCH] Update dependencies; Remove Scala 2.11 --- .github/workflows/ci.yml | 225 +++++++++++++++++++++++++-------------- README.md | 6 +- build.sbt | 16 ++- project/build.properties | 2 +- project/plugins.sbt | 10 +- 5 files changed, 163 insertions(+), 96 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bee9187..e25f9c5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,11 +1,9 @@ -# This file was autogenerated using `zio-sbt-ci` plugin via `sbt generateGithubWorkflow` +# This file was autogenerated using `zio-sbt-ci` plugin via `sbt ciGenerateGithubWorkflow` # task and should be included in the git repository. Please do not edit it manually. name: CI env: - JDK_JAVA_OPTIONS: -XX:+PrintCommandLineFlags -Xmx6G -Xss4M -XX:+UseG1GC - JVM_OPTS: -XX:+PrintCommandLineFlags -Xmx6G -Xss4M -XX:+UseG1GC - NODE_OPTIONS: --max_old_space_size=6144 + JDK_JAVA_OPTIONS: -XX:+PrintCommandLineFlags 'on': workflow_dispatch: {} release: @@ -14,7 +12,12 @@ env: push: branches: - series/2.x - pull_request: {} + pull_request: + branches-ignore: + - gh-pages +concurrency: + group: ${{ github.workflow }}-${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) && github.run_id || github.ref }} + cancel-in-progress: true jobs: build: name: Build @@ -22,36 +25,46 @@ jobs: continue-on-error: true steps: - name: Git Checkout - uses: actions/checkout@v3.3.0 + uses: actions/checkout@v4 with: fetch-depth: '0' + - name: Install libuv + run: sudo apt-get update && sudo apt-get install -y libuv1-dev - name: Setup Scala - uses: actions/setup-java@v3.10.0 + uses: actions/setup-java@v4 with: - distribution: temurin + distribution: corretto java-version: '17' check-latest: true - - name: Check if the site workflow is up to date - run: sbt checkGithubWorkflow + - name: Cache Dependencies + uses: coursier/cache-action@v6 + - name: Check all code compiles + run: sbt +Test/compile - name: Check artifacts build process - run: sbt +publishLocal + run: sbt +publishLocal - name: Check website build process - run: sbt docs/clean; sbt docs/buildWebsite + run: sbt docs/clean; sbt docs/buildWebsite lint: name: Lint runs-on: ubuntu-latest continue-on-error: false steps: - name: Git Checkout - uses: actions/checkout@v3.3.0 + uses: actions/checkout@v4 with: fetch-depth: '0' + - name: Install libuv + run: sudo apt-get update && sudo apt-get install -y libuv1-dev - name: Setup Scala - uses: actions/setup-java@v3.10.0 + uses: actions/setup-java@v4 with: - distribution: temurin + distribution: corretto java-version: '17' check-latest: true + - name: Cache Dependencies + uses: coursier/cache-action@v6 + - name: Check if the site workflow is up to date + run: sbt ciCheckGithubWorkflow - name: Lint run: sbt lint test: @@ -62,54 +75,120 @@ jobs: fail-fast: false matrix: java: - - '8' - '11' - '17' - scala-project: - - ++2.11.12 zioOpticsJVM - - ++2.12.17 zioOpticsJVM - - ++2.13.10 zioOpticsJVM - - ++3.2.2 zioOpticsJVM - - ++2.11.12 zioOpticsNative - - ++2.12.17 zioOpticsNative - - ++2.13.10 zioOpticsNative - - ++3.2.2 zioOpticsNative - - ++2.11.12 zioOpticsJS - - ++2.12.17 zioOpticsJS - - ++2.13.10 zioOpticsJS + - '21' steps: + - name: Install libuv + run: sudo apt-get update && sudo apt-get install -y libuv1-dev - name: Setup Scala - uses: actions/setup-java@v3.10.0 + uses: actions/setup-java@v4 with: - distribution: temurin + distribution: corretto java-version: ${{ matrix.java }} check-latest: true + - name: Cache Dependencies + uses: coursier/cache-action@v6 - name: Git Checkout - uses: actions/checkout@v3.3.0 + uses: actions/checkout@v4 with: fetch-depth: '0' - name: Test - run: sbt ${{ matrix.scala-project }}/test - release: - name: Release + run: sbt +test + update-readme: + name: Update README + runs-on: ubuntu-latest + continue-on-error: false + if: ${{ github.event_name == 'push' }} + steps: + - name: Git Checkout + uses: actions/checkout@v4 + with: + fetch-depth: '0' + - name: Install libuv + run: sudo apt-get update && sudo apt-get install -y libuv1-dev + - name: Setup Scala + uses: actions/setup-java@v4 + with: + distribution: corretto + java-version: '17' + check-latest: true + - name: Cache Dependencies + uses: coursier/cache-action@v6 + - name: Generate Readme + run: sbt docs/generateReadme + - name: Commit Changes + run: | + git config --local user.email "zio-assistant[bot]@users.noreply.github.com" + git config --local user.name "ZIO Assistant" + git add README.md + git commit -m "Update README.md" || echo "No changes to commit" + - name: Generate Token + id: generate-token + uses: zio/generate-github-app-token@v1.0.0 + with: + app_id: ${{ secrets.APP_ID }} + app_private_key: ${{ secrets.APP_PRIVATE_KEY }} + - name: Create Pull Request + id: cpr + uses: peter-evans/create-pull-request@v6 + with: + body: |- + Autogenerated changes after running the `sbt docs/generateReadme` command of the [zio-sbt-website](https://zio.dev/zio-sbt) plugin. + + I will automatically update the README.md file whenever there is new change for README.md, e.g. + - After each release, I will update the version in the installation section. + - After any changes to the "docs/index.md" file, I will update the README.md file accordingly. + branch: zio-sbt-website/update-readme + commit-message: Update README.md + token: ${{ steps.generate-token.outputs.token }} + delete-branch: true + title: Update README.md + - name: Approve PR + if: ${{ steps.cpr.outputs.pull-request-number }} + run: gh pr review "$PR_URL" --approve + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + PR_URL: ${{ steps.cpr.outputs.pull-request-url }} + - name: Enable Auto-Merge + if: ${{ steps.cpr.outputs.pull-request-number }} + run: gh pr merge --auto --squash "$PR_URL" || gh pr merge --squash "$PR_URL" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + PR_URL: ${{ steps.cpr.outputs.pull-request-url }} + ci: + name: ci runs-on: ubuntu-latest continue-on-error: false needs: - - build - lint - test + - build + steps: + - name: Report Successful CI + run: echo "ci passed" + release: + name: Release + runs-on: ubuntu-latest + continue-on-error: false + needs: + - ci if: ${{ github.event_name != 'pull_request' }} steps: - name: Git Checkout - uses: actions/checkout@v3.3.0 + uses: actions/checkout@v4 with: fetch-depth: '0' + - name: Install libuv + run: sudo apt-get update && sudo apt-get install -y libuv1-dev - name: Setup Scala - uses: actions/setup-java@v3.10.0 + uses: actions/setup-java@v4 with: - distribution: temurin + distribution: corretto java-version: '17' check-latest: true + - name: Cache Dependencies + uses: coursier/cache-action@v6 - name: Release run: sbt ci-release env: @@ -117,8 +196,8 @@ jobs: PGP_SECRET: ${{ secrets.PGP_SECRET }} SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} - publish-docs: - name: Publish Docs + release-docs: + name: Release Docs runs-on: ubuntu-latest continue-on-error: false needs: @@ -126,61 +205,53 @@ jobs: if: ${{ ((github.event_name == 'release') && (github.event.action == 'published')) || (github.event_name == 'workflow_dispatch') }} steps: - name: Git Checkout - uses: actions/checkout@v3.3.0 + uses: actions/checkout@v4 with: fetch-depth: '0' + - name: Install libuv + run: sudo apt-get update && sudo apt-get install -y libuv1-dev - name: Setup Scala - uses: actions/setup-java@v3.10.0 + uses: actions/setup-java@v4 with: - distribution: temurin + distribution: corretto java-version: '17' check-latest: true + - name: Cache Dependencies + uses: coursier/cache-action@v6 - name: Setup NodeJs - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 16.x registry-url: https://registry.npmjs.org - name: Publish Docs to NPM Registry - run: sbt docs/publishToNpm + run: sbt docs/publishToNpm env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - generate-readme: - name: Generate README + notify-docs-release: + name: Notify Docs Release runs-on: ubuntu-latest continue-on-error: false needs: - - release - if: ${{ (github.event_name == 'push') || ((github.event_name == 'release') && (github.event.action == 'published')) }} + - release-docs + if: ${{ (github.event_name == 'release') && (github.event.action == 'published') }} steps: - name: Git Checkout - uses: actions/checkout@v3.3.0 + uses: actions/checkout@v4 with: - ref: ${{ github.head_ref }} fetch-depth: '0' - - name: Setup Scala - uses: actions/setup-java@v3.10.0 - with: - distribution: temurin - java-version: '17' - check-latest: true - - name: Generate Readme - run: sbt docs/generateReadme - - name: Commit Changes + - name: notify the main repo about the new release of docs package run: | - git config --local user.email "github-actions[bot]@users.noreply.github.com" - git config --local user.name "github-actions[bot]" - git add README.md - git commit -m "Update README.md" || echo "No changes to commit" - - name: Create Pull Request - uses: peter-evans/create-pull-request@v4.2.3 - with: - body: |- - Autogenerated changes after running the `sbt docs/generateReadme` command of the [zio-sbt-website](https://zio.dev/zio-sbt) plugin. - - I will automatically update the README.md file whenever there is new change for README.md, e.g. - - After each release, I will update the version in the installation section. - - After any changes to the "docs/index.md" file, I will update the README.md file accordingly. - branch: zio-sbt-website/update-readme - commit-message: Update README.md - delete-branch: true - title: Update README.md + PACKAGE_NAME=$(cat docs/package.json | grep '"name"' | awk -F'"' '{print $4}') + PACKAGE_VERSION=$(npm view $PACKAGE_NAME version) + curl -L \ + -X POST \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: token ${{ secrets.PAT_TOKEN }}"\ + https://api.github.com/repos/zio/zio/dispatches \ + -d '{ + "event_type":"update-docs", + "client_payload":{ + "package_name":"'"${PACKAGE_NAME}"'", + "package_version": "'"${PACKAGE_VERSION}"'" + } + }' diff --git a/README.md b/README.md index c1241fa..27d07f6 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ ZIO Optics makes it easy to compose more complex optics from simpler ones, to de In order to use this library, we need to add the following line in our `build.sbt` file: ```scala -libraryDependencies += "dev.zio" %% "zio-optics" % "0.2.0" +libraryDependencies += "dev.zio" %% "zio-optics" % "0.2.1" ``` ## Example @@ -120,11 +120,11 @@ Learn more on the [ZIO Optics homepage](https://zio.dev/zio-optics)! ## Contributing -For the general guidelines, see ZIO [contributor's guide](https://zio.dev/about/contributing). +For the general guidelines, see ZIO [contributor's guide](https://zio.dev/contributor-guidelines). ## Code of Conduct -See the [Code of Conduct](https://zio.dev/about/code-of-conduct) +See the [Code of Conduct](https://zio.dev/code-of-conduct) ## Support diff --git a/build.sbt b/build.sbt index 26bd78a..b3162e7 100644 --- a/build.sbt +++ b/build.sbt @@ -20,12 +20,7 @@ inThisBuild( url("https://github.com/adamgfraser") ) ), - supportedScalaVersions := - Map( - (zioOptics.jvm / thisProject).value.id -> (zioOptics.jvm / crossScalaVersions).value, - (zioOptics.native / thisProject).value.id -> (zioOptics.native / crossScalaVersions).value, - (zioOptics.js / thisProject).value.id -> (zioOptics.js / crossScalaVersions).value.filterNot(_ == scala3.value) - ) + scala213 := "2.13.14" ) ) @@ -46,7 +41,7 @@ addCommandAlias( ";zioOpticsNative/test:compile" ) -val zioVersion = "2.0.10" +val zioVersion = "2.1.7" lazy val root = project .in(file(".")) @@ -63,10 +58,12 @@ lazy val root = project lazy val zioOptics = crossProject(JSPlatform, JVMPlatform, NativePlatform) .in(file("zio-optics")) - .settings(stdSettings(name = "zio-optics", packageName = Some("zio.optics"), enableCrossProject = true)) + .settings(stdSettings(name = Some("zio-optics"), packageName = Some("zio.optics"), enableCrossProject = true)) .settings(enableZIO()) .settings( - libraryDependencies += "dev.zio" %%% "zio-test-sbt" % zioVersion % Test + libraryDependencies += "dev.zio" %%% "zio" % zioVersion, + libraryDependencies += "dev.zio" %%% "zio-test-sbt" % zioVersion % Test, + libraryDependencies += "dev.zio" %%% "zio-test" % zioVersion % Test ) .jvmSettings(scala3Settings) .jvmSettings(scalaReflectTestSettings) @@ -89,7 +86,6 @@ lazy val docs = project moduleName := "zio-optics-docs", scalacOptions -= "-Yno-imports", scalacOptions -= "-Xfatal-warnings", - crossScalaVersions -= scala211.value, projectName := (ThisBuild / name).value, mainModuleName := (zioOptics.jvm / moduleName).value, projectStage := ProjectStage.Development, diff --git a/project/build.properties b/project/build.properties index e2142ad..136f452 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version = 1.8.2 \ No newline at end of file +sbt.version = 1.10.1 diff --git a/project/plugins.sbt b/project/plugins.sbt index 65f57f3..bc5b1df 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,4 +1,4 @@ -val zioSbtVersion = "0.3.10+43-080b598b-SNAPSHOT" +val zioSbtVersion = "0.4.0-alpha.28" addSbtPlugin( "dev.zio" % "zio-sbt-ecosystem" % zioSbtVersion exclude ("org.scala-js", "sbt-scalajs") exclude ("org.scala-native", "sbt-scala-native") @@ -10,16 +10,16 @@ addSbtPlugin( "dev.zio" % "zio-sbt-ci" % zioSbtVersion exclude ("org.scala-js", "sbt-scalajs") exclude ("org.scala-native", "sbt-scala-native") ) addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.1.1") -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.12.0") // Still supports 2.11 -addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.9") // Still supports 2.11 +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.16.0") +addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.4") resolvers ++= Resolver.sonatypeOssRepos("public") import sbt.internal.librarymanagement.mavenint.PomExtraDependencyAttributes ThisBuild / dependencyOverrides ++= List( - "org.scala-js" % "sbt-scalajs" % "1.12.0", - "org.scala-native" % "sbt-scala-native" % "0.4.9" + "org.scala-js" % "sbt-scalajs" % "1.16.0", + "org.scala-native" % "sbt-scala-native" % "0.5.4" ).map( _.extra( PomExtraDependencyAttributes.SbtVersionKey -> (update / scalaBinaryVersion).value,