Skip to content

Commit 82e4ff2

Browse files
xerialclaude
andauthored
internal: Remove temporary sbt-airframe CI/release bootstrap (#4188)
## Why `sbt-airframe 2026.2.2` and its `airframe-*` dependencies are now published on Maven Central, so the root build's metabuild resolves the plugin normally. The temporary `bootstrap-sbt-airframe` composite action (added to break the first-release deadlock) is no longer needed. ## What - Delete `.github/actions/bootstrap-sbt-airframe/`. - Remove its `- uses:` steps from `test.yml` (11), `sbt-integration.yml`, and the four release workflows. - `SBT_AIRFRAME_VERSION` stays pinned to the released `2026.2.2`; a comment now warns against bumping it to the in-development version (that would reintroduce the release-time metabuild deadlock) — same discipline as `AIRSPEC_VERSION`. ## Verified Cleared the locally-published `2026.2.2` artifacts and confirmed the root build resolves `sbt-airframe 2026.2.2` **from Central** (no local publish, no bootstrap): `integrationTest/airframeHttpClients` resolves correctly. CI on this PR is the real end-to-end check that Central resolution works without the bootstrap. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 86f7965 commit 82e4ff2

8 files changed

Lines changed: 4 additions & 41 deletions

File tree

.github/actions/bootstrap-sbt-airframe/action.yml

Lines changed: 0 additions & 12 deletions
This file was deleted.

.github/workflows/release-js.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ jobs:
2727
env:
2828
PGP_SECRET: ${{ secrets.PGP_SECRET }}
2929
run: echo $PGP_SECRET | base64 --decode | gpg --import --batch --yes
30-
# The root build's metabuild needs the (not-yet-released) sbt-airframe plugin to load.
31-
- uses: ./.github/actions/bootstrap-sbt-airframe
3230
- name: Build for Scala.js
3331
env:
3432
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}

.github/workflows/release-native.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,6 @@ jobs:
2929
env:
3030
PGP_SECRET: ${{ secrets.PGP_SECRET }}
3131
run: echo $PGP_SECRET | base64 --decode | gpg --import --batch --yes
32-
# The root build's metabuild needs the (not-yet-released) sbt-airframe plugin to load.
33-
- uses: ./.github/actions/bootstrap-sbt-airframe
3432
- name: Build for Scala Native
3533
env:
3634
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}

.github/workflows/release-sbt-plugin.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,6 @@ jobs:
2828
env:
2929
PGP_SECRET: ${{ secrets.PGP_SECRET }}
3030
run: echo $PGP_SECRET | base64 --decode | gpg --import --batch --yes
31-
# Break the release-time circular dependency: the root build's metabuild needs the
32-
# sbt-airframe plugin to load, but sbt-airframe is what we're releasing. Publish it locally
33-
# FIRST, before AIRFRAME_VERSION is set, so its own deps resolve from the last released
34-
# airframe on Maven Central rather than the (not-yet-built) release version.
35-
- uses: ./.github/actions/bootstrap-sbt-airframe
3631
- name: Get Airframe version
3732
run: echo "AIRFRAME_VERSION=$(./scripts/dynver.sh)" >> $GITHUB_ENV
3833
- name: Check Airframe version

.github/workflows/release.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ jobs:
2727
env:
2828
PGP_SECRET: ${{ secrets.PGP_SECRET }}
2929
run: echo $PGP_SECRET | base64 --decode | gpg --import --batch --yes
30-
# The root build's metabuild needs the (not-yet-released) sbt-airframe plugin to load.
31-
- uses: ./.github/actions/bootstrap-sbt-airframe
3230
- name: Build bundle
3331
env:
3432
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}

.github/workflows/sbt-integration.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,6 @@ jobs:
4444
with:
4545
distribution: 'zulu'
4646
java-version: '21'
47-
# The root build's metabuild needs the (not-yet-released) sbt-airframe plugin to load.
48-
- uses: ./.github/actions/bootstrap-sbt-airframe
4947
- name: Get Airframe version
5048
run: echo "AIRFRAME_VERSION=$(./scripts/dynver.sh)" >> $GITHUB_ENV
5149
- name: Check Airframe version

.github/workflows/test.yml

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ jobs:
4242
if: needs.changes.outputs.tests == 'true'
4343
steps:
4444
- uses: actions/checkout@v6
45-
- uses: ./.github/actions/bootstrap-sbt-airframe
4645
- name: scalafmt in Scala 2.x
4746
run: ./sbt "++ 2.13; scalafmtCheckAll"
4847
- name: scalafmt in Scala 3
@@ -64,7 +63,6 @@ jobs:
6463
with:
6564
distribution: 'zulu'
6665
java-version: '21'
67-
- uses: ./.github/actions/bootstrap-sbt-airframe
6866
- name: Scala 2.12 test
6967
run: ./sbt "++2.12; projectJVM/test"
7068
- name: Publish Test Report
@@ -86,7 +84,6 @@ jobs:
8684
with:
8785
distribution: 'zulu'
8886
java-version: '21'
89-
- uses: ./.github/actions/bootstrap-sbt-airframe
9087
- name: Scala 2.13 test
9188
run: ./sbt "++2.13; projectJVM/test"
9289
- name: Publish Test Report
@@ -108,7 +105,6 @@ jobs:
108105
with:
109106
distribution: 'zulu'
110107
java-version: '21'
111-
- uses: ./.github/actions/bootstrap-sbt-airframe
112108
- name: Scala 3.x test
113109
# Test only Scala 3 supported projects
114110
run: ./sbt "++ 3; projectDotty/test; dottyTest/run"
@@ -131,7 +127,6 @@ jobs:
131127
with:
132128
distribution: 'zulu'
133129
java-version: '21'
134-
- uses: ./.github/actions/bootstrap-sbt-airframe
135130
- name: Scala 3.7.x test
136131
# Test only Scala 3 supported projects
137132
run: SCALA_VERSION=3.7.1 ./sbt "projectDotty/test; dottyTest/run"
@@ -154,7 +149,6 @@ jobs:
154149
with:
155150
distribution: 'zulu'
156151
java-version: '25'
157-
- uses: ./.github/actions/bootstrap-sbt-airframe
158152
- name: Scala 3 test
159153
# Test only Scala 3 supported projects
160154
run: ./sbt "++ 3; projectDotty/test; dottyTest/run"
@@ -186,7 +180,6 @@ jobs:
186180
cache: 'pnpm'
187181
- name: Node.js setup
188182
run: ./scripts/setup-scalajs.sh
189-
- uses: ./.github/actions/bootstrap-sbt-airframe
190183
- name: Integration Test
191184
run: ./sbt "++ 3; projectIt/test"
192185
- name: Publish Test Report
@@ -217,7 +210,6 @@ jobs:
217210
cache: 'pnpm'
218211
- name: Node.js setup
219212
run: ./scripts/setup-scalajs.sh
220-
- uses: ./.github/actions/bootstrap-sbt-airframe
221213
- name: Scala.js test
222214
run: JVM_OPTS=-Xmx4g ./sbt "++ 2.12; projectJS/test"
223215
- name: Publish Test Report
@@ -248,7 +240,6 @@ jobs:
248240
cache: 'pnpm'
249241
- name: Node.js setup
250242
run: ./scripts/setup-scalajs.sh
251-
- uses: ./.github/actions/bootstrap-sbt-airframe
252243
- name: Scala.js test
253244
run: JVM_OPTS=-Xmx4g ./sbt "++ 2.13; projectJS/test"
254245
- name: Publish Test Report
@@ -279,7 +270,6 @@ jobs:
279270
cache: 'pnpm'
280271
- name: Node.js setup
281272
run: ./scripts/setup-scalajs.sh
282-
- uses: ./.github/actions/bootstrap-sbt-airframe
283273
- name: Scala.js test
284274
run: JVM_OPTS=-Xmx4g ./sbt "++ 3; projectJS/test"
285275
- name: Publish Test Report
@@ -303,7 +293,6 @@ jobs:
303293
java-version: '21'
304294
- name: Install native dependencies
305295
run: sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev
306-
- uses: ./.github/actions/bootstrap-sbt-airframe
307296
- name: Scala Native test
308297
run: JVM_OPTS=-Xmx4g ./sbt "++ 3; projectNative/test"
309298
- name: Publish Test Report

project/plugin.sbt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,10 @@ addSbtPlugin("org.xerial.sbt" % "sbt-pack" % "1.0.0")
4040
// as sbt-antlr4 has no sbt 2.x build
4141
libraryDependencies += "org.antlr" % "antlr4" % "4.13.2"
4242

43-
// For integration testing.
44-
// Defaults to the next sbt-airframe release. Until that is published to Maven Central,
45-
// build sbt-airframe locally and point this at the snapshot:
46-
// (cd sbt-airframe && ../sbt publishLocal)
47-
// export SBT_AIRFRAME_VERSION=$(./scripts/dynver.sh)
43+
// For integration testing (the integrationTest project uses AirframeHttpPlugin).
44+
// Keep this pinned to a RELEASED sbt-airframe on Maven Central (like AIRSPEC_VERSION) — do NOT
45+
// bump it to the in-development version, or the metabuild can't load while that version is being
46+
// built (a release-time deadlock). Building sbt-airframe from this repo's source is not required.
4847
val SBT_AIRFRAME_VERSION = sys.env.getOrElse("SBT_AIRFRAME_VERSION", "2026.2.2")
4948
addSbtPlugin("org.wvlet.airframe" % "sbt-airframe" % SBT_AIRFRAME_VERSION)
5049

0 commit comments

Comments
 (0)