Skip to content

[pull] forks/amsterdam from ethereum:forks/amsterdam#155

Merged
pull[bot] merged 4 commits intoLuckQuack:forks/amsterdamfrom
ethereum:forks/amsterdam
Apr 3, 2026
Merged

[pull] forks/amsterdam from ethereum:forks/amsterdam#155
pull[bot] merged 4 commits intoLuckQuack:forks/amsterdamfrom
ethereum:forks/amsterdam

Conversation

@pull
Copy link
Copy Markdown

@pull pull bot commented Apr 3, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

danceratopz and others added 4 commits April 3, 2026 10:26
…p; stable becomes mainnet (#2592)

* chore(ci): add shared fork-ranges to feature.yaml and update stable/develop

Add a top-level fork-ranges list for splitting multi-fork releases
across parallel runners. Bump stable to --until=Osaka (latest mainnet
fork) and develop to --until=Amsterdam (current fork in development).

* chore(ci): split release fixture builds across multiple fork-range runners

Split multi-fork fixture releases (stable, develop) across parallel
runners using the shared fork-ranges in feature.yaml. Each runner
fills its fork range to a directory, then a combine job merges the
results into a single release tarball.

Features without --until (e.g., benchmark with --fork) continue to
build on a single runner with unchanged behavior.

Also adds integration tests for the new scripts and a single-fork-range
parameter set to the fill output directory tests.

* fix(ci): mark benchmark as feature_only in release config

Benchmark fixtures have never been included in full releases (verified
against v5.3.0 and v5.4.0 release assets). Mark the feature as
feature_only so it is only built via feature release tags
(tests-benchmark@v*), matching actual release practice.

* fix(ci): add setup-uv to setup and combine jobs in release workflows

The setup and combine jobs use uv run but were missing the setup-uv
step, causing "uv: command not found" on ubuntu-latest runners.

* fix(ci): clean up job names in release workflows

Use explicit name fields so GitHub Actions shows concise labels like
"build (pre-cancun)" instead of dumping all matrix values.

* fix(ci): add fill-args override for BPO fork range

BPO forks cannot be specified directly via --from/--until because
explicit BPO forks collect too many tests, and transition fork classes
don't filter correctly. Work around this by using fill-args to specify
--from OsakaToBPO1AtTime15k --until Amsterdam -k "not fork_Amsterdam".

Add fill_args support to fork-range entries and the build-fixtures
action. Also remove BPO3-BPO5 from fork ordering (actual path is
Osaka->BPO1->BPO2->Amsterdam).

* fix(ci): suppress broken pipe error from find | head in combine step

The pipefail shell option causes find's SIGPIPE (from head closing the
pipe after 30 lines) to fail the step. Append || true since this is
just debug output.

* fix(ci): exclude split artifacts from release download

The `fixtures_*` pattern matched both final tarballs (`fixtures_stable`)
and intermediate split artifacts (`fixtures__cancun`). Use
`fixtures_[!_]*` to skip double-underscore names.

* test(ci): temporarily restrict fill to chainid tests for flow testing

Limit stable and develop to tests/istanbul/eip1344_chainid/ to quickly
validate the multi-runner release pipeline end-to-end. Revert before
merge.

* fix(ci): handle empty fork ranges in fill and combine steps

Allow exit code 5 (NO_TESTS_COLLECTED) from fill so fork ranges with
no applicable tests don't fail the build. Skip artifact upload when no
fixtures are generated. Handle missing artifacts gracefully in the
combine step.

* fix(ci): download and upload only tarballs in release step

The \`gh run download -p "fixtures_[!_]*"\` pattern doesn't work
with the \`gh\` CLI's glob implementation. Download all \`fixtures_*\`
artifacts then \`rm -rf ./artifacts/fixtures__*/\` to remove split
artifacts. Also restrict release upload glob to \`*.tar.gz\` files.

* refactor(ci): remove BPO fill-args workaround

The transition fork fix in #2607 makes --from=BPO1 --until=BPO2 work
correctly. Remove the fill-args/fill-k override plumbing that was
needed to work around the transition fork boundary bug.

* Revert "test(ci): temporarily restrict fill to chainid tests for flow testing"

This reverts commit 1fc9ee8.

* refactor(ci): collapse release workflows into single feature-based flow

Full releases previously built two tarballs (stable + develop) via a
dedicated workflow. Since develop is already covered by the `bal`
feature-only release for devnets, the full release reduces to a single
mainnet tarball -- making it just another feature release.

Changes:
- Remove `develop` feature and rename `stable` to `mainnet`.
- Unify evm-type: both `mainnet` and `bal` now use `evm-type: eels`
  directly, replacing the `stable`/`develop` indirection in evm.yaml.
- Delete `release_fixture_full.yaml`; mainnet releases now use the
  feature workflow via `tests-mainnet@v*` tags.
- Enable `fail-fast: true` on the build matrix so expensive runners
  are cancelled when one fork range fails.

* test(ci): restrict mainnet testset for testing

* refactor(ci): remove combine matrix in favor of direct outputs

Each release builds exactly one feature, so the combine step never
iterates over multiple features. Replace \`combine_matrix\` with
\`feature_name\` and \`combine_labels\` outputs. Also remove the
\`--all\` mode and \`get_releasable_features()\` (dead code since the
full release workflow was deleted).

* fix(ci): only mark non-mainnet fixture releases as pre-releases

Mainnet fixture releases are stable and should not be marked as
pre-releases. Other features (bal, benchmark) keep \`--prerelease\`.

* Revert "test(ci): restrict mainnet testset for testing"

This reverts commit 31e0d15.

* feat(testing): add IndexFile.merge() for combining split index files

When multi-fork releases are split across parallel runners, each
runner produces its own .meta/index.json. Add a classmethod that
merges multiple IndexFile instances by concatenating test cases,
unioning forks and fixture formats, and recomputing the root hash.

* feat(ci): add merge_index_files.py for combining split index files

Standalone script that loads .meta/index.json from each split fixture
directory and merges them via IndexFile.merge(). Called by the combine
workflow step to produce a correct combined index.

* fix(ci): merge split index files in combine step

Run merge_index_files.py after downloading split artifacts so the
combined tarball contains a correct .meta/index.json covering all
fork ranges, not just the last one copied.

* fix(ci): use bash array for split dirs to satisfy shellcheck SC2086

* fix(ci): free disk space before creating release tarball

Delete split_artifacts/ after merging index files to avoid running
out of disk space on ubuntu-latest during tarball creation.

* fix(ci): include hidden files in split artifact upload

The \`.meta/\` directory was excluded from upload-artifact because
glob patterns skip dotfiles by default. Enable \`include-hidden-files\`
so \`.meta/index.json\` is included for the combine step to merge.

* Reapply "test(ci): restrict mainnet testset for testing"

This reverts commit f450e3e.

* Revert "Reapply "test(ci): restrict mainnet testset for testing""

This reverts commit 8c0a3f9.

* chore(ci): remove unrequired static args from fill-params

Co-authored-by: spencer <spencer.tb@ethereum.org>

* chore(ci): move fork range config to its own yaml

* refactor(ci): simplify `build_matrix` to handle single feature

Remove multi-feature deduplication logic (`effective_key`,
`strip_until`, `build_matrices`) that was only needed when the
deleted full release workflow passed multiple features. Replace
with `build_matrix` that handles a single feature directly.

---------

Co-authored-by: spencer <spencer.tb@ethereum.org>
@pull pull bot locked and limited conversation to collaborators Apr 3, 2026
@pull pull bot added the ⤵️ pull label Apr 3, 2026
@pull pull bot merged commit 4bf8bbe into LuckQuack:forks/amsterdam Apr 3, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants