Skip to content

Beacon 2.0.0-rc3 pre-release #390

Description

@robinskil

Released. v2.0.0-rc3 came out on 2026-08-19.
The open work moves to #413, the rc4 pre-release. The rc4 target date is 2026-08-21.

The publish is partial. The tag started three publish workflows. Only one passed.
The container image reached the registry. @beacon/client did not reach npm, because npm publish
returned ENEEDAUTH. beacon-datalake-cli did not reach PyPI, because ruff returned E501 on
line 66 of repl/reader.py. Both jobs get a fix in #413.

These tasks stay open. Each one moves to #413.


Parent issue: #389

Publish the third pre-release of 2.0.0 this week. The target date is 2026-08-21.

The last pre-release is v2.0.0-rc2
of 2026-08-03. main holds 27 commits after that tag.

Contents after v2.0.0-rc2

Added

Changed

Fixed

Merge before the tag

Decide before the tag

Both bugs block 2.0.0. A pre-release is a good place to test the fix.

Tests, stage 1 of #399

#399 plans a Python test suite above 1000 tests. Stage 1 lands in rc3.

  • Add the driver layer. One test body runs on the HTTP API and on BeaconDB.
  • Move the 180 API tests onto the driver.
  • Add the generators for netCDF, Zarr, Parquet, CSV and GeoParquet.
  • Add 48 file shapes for those 5 formats. A netCDF file is gridded or ragged.
  • Add the 8 core operations over each shape. About 768 tests.
  • Write the what, why and how table in integration-tests/README.md.

Steps

  1. Merge the four pull requests above.
  2. Rename the [Unreleased] section in CHANGELOG.md to 2.0.0-rc.3.
  3. Add the section that 2.0.0-rc.2 never got, or state that rc2 holds only doc changes.
  4. Set the version to 2.0.0-rc.3 in Cargo.toml.
  5. Set the version to 2.0.0-rc.3 in beacon-clients/beacon-ts/package.json.
  6. Set the version to 2.0.0rc3 in beacon-clients/beacon-datalake-cli/pyproject.toml.
  7. Set the version to 2.0.0rc3 in beacon-db/beacon-db-py/pyproject.toml.
  8. Rename docs/docs/2.0.0-rc2/ to docs/docs/2.0.0-rc3/.
  9. Update every 2.0.0-rc2 link in docs/.vitepress/config.mts.
  10. Leave LATEST_VERSION at 1.8.0 in docs/.vitepress/theme/version.js. A pre-release is not the latest.
  11. Run cargo +1.94 fmt --check and cargo +1.94 clippy --workspace.
  12. Run cargo +1.94 test --workspace.
  13. Run the integration tests with integration-tests/run.sh.
  14. Run stage 1 of the test matrix (Release tests: Python tests for the HTTP API and BeaconDB #399). Record the result here.
  15. Run cargo audit. Record every advisory that stays open.
  16. Tag the release, and push the tag.
  17. Check the three publish workflows.
  18. Check the container image for linux/amd64 and linux/arm64.
  19. Check @beacon/client on the npm rc tag, not on latest.
  20. Check beacon-datalake-cli on PyPI. pip install --pre finds it.
  21. Mark the GitHub release as a pre-release.
  22. Write the release notes. rc2 got only a compare link.

Open question: the tag name

The tags read v2.0.0-rc1 and v2.0.0-rc2. Cargo.toml reads 2.0.0-rc.2. The workflow comments
read v2.0.0-rc.1. The three forms do not agree.

The container tag comes from the git tag, and the crate version must match what CI verifies. Pick one
form for rc3, and use the same form until 2.0.0. v2.0.0-rc.3 matches SemVer and the crate version.

Reference

  • The publish workflows accept any SemVer pre-release suffix. See the comments in
    .github/workflows/publish-beacon-server.yml.
  • CI verifies the version. It does not write the version.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions