Skip to content

Beacon 2.0.0 release #389

Description

@robinskil

Beacon 2.0.0 is the next major release. Version 1.8.0 came out on 2026-06-29.
This issue tracks every task before the 2.0.0 release.

Two pre-releases are done. The third pre-release is planned for this week.

Pre-releases

Tag Date Contents
v2.0.0-rc1 2026-08-03 nd execution spine, redb object store, wire contract move, new query editor
v2.0.0-rc2 2026-08-03 Docs for 2.0.0-rc2. Build fixes for Linux and OpenSSL.
v2.0.0-rc3 planned 2026-08-21 See #390

Three problems come from the first two pre-releases.

  • CHANGELOG.md holds no section for 2.0.0-rc.2. Add one, or fold the content into the 2.0.0 section.
  • The release notes of rc2 hold only a compare link. Write real notes for each later pre-release.
  • The tag name and the crate version disagree. 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. Pick one form and use it.

Features in 2.0.0

Engine

Formats

Clients and interfaces

Open work, wanted in 2.0.0

Open work, decide before the release

Bugs to fix

Blockers

Both bugs return a wrong result, not a slow result. A major release must not ship them.

Wanted, not a blocker

Incompatible changes

State each change in the release notes, and in an upgrade page.

  • One product, one name. "Beacon Data Lake" and "BeaconDB" are gone.
  • beacon-datalake/ is now beacon-server/. beacon-datalake-clients/ is now beacon-clients/.
  • BEACON_S3_DATA_LAKE is now BEACON_S3_DATASETS. The old name still works.
  • The minimum Rust version is 1.94, up from 1.91.
  • A build from source needs PROJ 9.6.2 and pkg-config for ST_Transform.
  • The beacondb wheel is no longer published.

Tests

Complete tests gate the release. #399 plans the work.

Release steps

  1. Merge every blocker above.
  2. Write the 2.0.0 section in CHANGELOG.md.
  3. Set the version to 2.0.0 in Cargo.toml.
  4. Set the version to 2.0.0 in beacon-clients/beacon-ts/package.json.
  5. Set the version to 2.0.0 in beacon-clients/beacon-datalake-cli/pyproject.toml.
  6. Set the version to 2.0.0 in beacon-db/beacon-db-py/pyproject.toml. The wheel stays unpublished.
  7. Copy docs/docs/2.0.0-rc2/ to docs/docs/2.0.0/.
  8. Update every 2.0.0-rc2 link in docs/.vitepress/config.mts.
  9. Set LATEST_VERSION to 2.0.0 in docs/.vitepress/theme/version.js.
  10. Run cargo +1.94 fmt --check and cargo +1.94 clippy --workspace.
  11. Run cargo +1.94 test --workspace.
  12. Run the integration tests with integration-tests/run.sh.
  13. Run cargo audit. Record every advisory that stays open.
  14. Run the full test matrix of Release tests: Python tests for the HTTP API and BeaconDB #399. Record the result here.
  15. Tag v2.0.0, and push the tag.
  16. Check the three publish workflows.
  17. Check the container image for linux/amd64 and linux/arm64.
  18. Check @beacon/client on the npm latest tag.
  19. Check beacon-datalake-cli on PyPI.
  20. Write the GitHub release notes.
  21. Upgrade the public demo node at beacon-wod.maris.nl.
  22. Update the example repository.

A v* tag starts three workflows: publish-beacon-server, publish-beacon-datalake-cli and
publish-beacon-ts. The tag is the only trigger, so a version file with a wrong value fails the run.

Out of scope

These issues move to 2.1.0.

Activity

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

Metadata

Metadata

Assignees

Labels

beacon-docsbeacon-kerneldependenciesPull requests that update a dependency filedocumentationImprovements or additions to documentationenhancementNew feature or requestreleaseRelease planning and release tasksrustPull requests that update rust code

Type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions