diff --git a/.github/actions/bootstrap-sbt-airframe/action.yml b/.github/actions/bootstrap-sbt-airframe/action.yml deleted file mode 100644 index f1a9d8c71..000000000 --- a/.github/actions/bootstrap-sbt-airframe/action.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: Bootstrap sbt-airframe -description: > - Publish the in-repo sbt-airframe plugin to the local Ivy repo so the main build's - metabuild can resolve it. Temporary: remove once sbt-airframe 2026.2.2 is published - to Maven Central (the main build then resolves it normally via SBT_AIRFRAME_VERSION). -runs: - using: composite - steps: - - name: Publish sbt-airframe locally - shell: bash - # Pin the version to the SBT_AIRFRAME_VERSION default in project/plugin.sbt. - run: cd sbt-airframe && ../sbt 'set every version := "2026.2.2"' publishLocal diff --git a/.github/workflows/release-js.yml b/.github/workflows/release-js.yml index 7ce36963a..a8c6f807e 100644 --- a/.github/workflows/release-js.yml +++ b/.github/workflows/release-js.yml @@ -27,8 +27,6 @@ jobs: env: PGP_SECRET: ${{ secrets.PGP_SECRET }} run: echo $PGP_SECRET | base64 --decode | gpg --import --batch --yes - # The root build's metabuild needs the (not-yet-released) sbt-airframe plugin to load. - - uses: ./.github/actions/bootstrap-sbt-airframe - name: Build for Scala.js env: PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} diff --git a/.github/workflows/release-native.yml b/.github/workflows/release-native.yml index 4637a503f..e35f00bc7 100644 --- a/.github/workflows/release-native.yml +++ b/.github/workflows/release-native.yml @@ -29,8 +29,6 @@ jobs: env: PGP_SECRET: ${{ secrets.PGP_SECRET }} run: echo $PGP_SECRET | base64 --decode | gpg --import --batch --yes - # The root build's metabuild needs the (not-yet-released) sbt-airframe plugin to load. - - uses: ./.github/actions/bootstrap-sbt-airframe - name: Build for Scala Native env: PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} diff --git a/.github/workflows/release-sbt-plugin.yml b/.github/workflows/release-sbt-plugin.yml index 9b376127f..72a3aaff0 100644 --- a/.github/workflows/release-sbt-plugin.yml +++ b/.github/workflows/release-sbt-plugin.yml @@ -28,11 +28,6 @@ jobs: env: PGP_SECRET: ${{ secrets.PGP_SECRET }} run: echo $PGP_SECRET | base64 --decode | gpg --import --batch --yes - # Break the release-time circular dependency: the root build's metabuild needs the - # sbt-airframe plugin to load, but sbt-airframe is what we're releasing. Publish it locally - # FIRST, before AIRFRAME_VERSION is set, so its own deps resolve from the last released - # airframe on Maven Central rather than the (not-yet-built) release version. - - uses: ./.github/actions/bootstrap-sbt-airframe - name: Get Airframe version run: echo "AIRFRAME_VERSION=$(./scripts/dynver.sh)" >> $GITHUB_ENV - name: Check Airframe version diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fae8e10f8..a2afb4ecb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,8 +27,6 @@ jobs: env: PGP_SECRET: ${{ secrets.PGP_SECRET }} run: echo $PGP_SECRET | base64 --decode | gpg --import --batch --yes - # The root build's metabuild needs the (not-yet-released) sbt-airframe plugin to load. - - uses: ./.github/actions/bootstrap-sbt-airframe - name: Build bundle env: PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} diff --git a/.github/workflows/sbt-integration.yml b/.github/workflows/sbt-integration.yml index e6330477a..b98a1062f 100644 --- a/.github/workflows/sbt-integration.yml +++ b/.github/workflows/sbt-integration.yml @@ -44,8 +44,6 @@ jobs: with: distribution: 'zulu' java-version: '21' - # The root build's metabuild needs the (not-yet-released) sbt-airframe plugin to load. - - uses: ./.github/actions/bootstrap-sbt-airframe - name: Get Airframe version run: echo "AIRFRAME_VERSION=$(./scripts/dynver.sh)" >> $GITHUB_ENV - name: Check Airframe version diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8d26c6644..9e30fff0b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -42,7 +42,6 @@ jobs: if: needs.changes.outputs.tests == 'true' steps: - uses: actions/checkout@v6 - - uses: ./.github/actions/bootstrap-sbt-airframe - name: scalafmt in Scala 2.x run: ./sbt "++ 2.13; scalafmtCheckAll" - name: scalafmt in Scala 3 @@ -64,7 +63,6 @@ jobs: with: distribution: 'zulu' java-version: '21' - - uses: ./.github/actions/bootstrap-sbt-airframe - name: Scala 2.12 test run: ./sbt "++2.12; projectJVM/test" - name: Publish Test Report @@ -86,7 +84,6 @@ jobs: with: distribution: 'zulu' java-version: '21' - - uses: ./.github/actions/bootstrap-sbt-airframe - name: Scala 2.13 test run: ./sbt "++2.13; projectJVM/test" - name: Publish Test Report @@ -108,7 +105,6 @@ jobs: with: distribution: 'zulu' java-version: '21' - - uses: ./.github/actions/bootstrap-sbt-airframe - name: Scala 3.x test # Test only Scala 3 supported projects run: ./sbt "++ 3; projectDotty/test; dottyTest/run" @@ -131,7 +127,6 @@ jobs: with: distribution: 'zulu' java-version: '21' - - uses: ./.github/actions/bootstrap-sbt-airframe - name: Scala 3.7.x test # Test only Scala 3 supported projects run: SCALA_VERSION=3.7.1 ./sbt "projectDotty/test; dottyTest/run" @@ -154,7 +149,6 @@ jobs: with: distribution: 'zulu' java-version: '25' - - uses: ./.github/actions/bootstrap-sbt-airframe - name: Scala 3 test # Test only Scala 3 supported projects run: ./sbt "++ 3; projectDotty/test; dottyTest/run" @@ -186,7 +180,6 @@ jobs: cache: 'pnpm' - name: Node.js setup run: ./scripts/setup-scalajs.sh - - uses: ./.github/actions/bootstrap-sbt-airframe - name: Integration Test run: ./sbt "++ 3; projectIt/test" - name: Publish Test Report @@ -217,7 +210,6 @@ jobs: cache: 'pnpm' - name: Node.js setup run: ./scripts/setup-scalajs.sh - - uses: ./.github/actions/bootstrap-sbt-airframe - name: Scala.js test run: JVM_OPTS=-Xmx4g ./sbt "++ 2.12; projectJS/test" - name: Publish Test Report @@ -248,7 +240,6 @@ jobs: cache: 'pnpm' - name: Node.js setup run: ./scripts/setup-scalajs.sh - - uses: ./.github/actions/bootstrap-sbt-airframe - name: Scala.js test run: JVM_OPTS=-Xmx4g ./sbt "++ 2.13; projectJS/test" - name: Publish Test Report @@ -279,7 +270,6 @@ jobs: cache: 'pnpm' - name: Node.js setup run: ./scripts/setup-scalajs.sh - - uses: ./.github/actions/bootstrap-sbt-airframe - name: Scala.js test run: JVM_OPTS=-Xmx4g ./sbt "++ 3; projectJS/test" - name: Publish Test Report @@ -303,7 +293,6 @@ jobs: java-version: '21' - name: Install native dependencies run: sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev - - uses: ./.github/actions/bootstrap-sbt-airframe - name: Scala Native test run: JVM_OPTS=-Xmx4g ./sbt "++ 3; projectNative/test" - name: Publish Test Report diff --git a/project/plugin.sbt b/project/plugin.sbt index 60354b747..01e8ab2df 100755 --- a/project/plugin.sbt +++ b/project/plugin.sbt @@ -40,11 +40,10 @@ addSbtPlugin("org.xerial.sbt" % "sbt-pack" % "1.0.0") // as sbt-antlr4 has no sbt 2.x build libraryDependencies += "org.antlr" % "antlr4" % "4.13.2" -// For integration testing. -// Defaults to the next sbt-airframe release. Until that is published to Maven Central, -// build sbt-airframe locally and point this at the snapshot: -// (cd sbt-airframe && ../sbt publishLocal) -// export SBT_AIRFRAME_VERSION=$(./scripts/dynver.sh) +// For integration testing (the integrationTest project uses AirframeHttpPlugin). +// Keep this pinned to a RELEASED sbt-airframe on Maven Central (like AIRSPEC_VERSION) — do NOT +// bump it to the in-development version, or the metabuild can't load while that version is being +// built (a release-time deadlock). Building sbt-airframe from this repo's source is not required. val SBT_AIRFRAME_VERSION = sys.env.getOrElse("SBT_AIRFRAME_VERSION", "2026.2.2") addSbtPlugin("org.wvlet.airframe" % "sbt-airframe" % SBT_AIRFRAME_VERSION)