Skip to content

feat: prepare v0.19 Studio preview and RC release - #113

Merged
MuncleUscles merged 3 commits into
v0.19-devfrom
codex/prepare-v019-rc
Sep 3, 2026
Merged

feat: prepare v0.19 Studio preview and RC release#113
MuncleUscles merged 3 commits into
v0.19-devfrom
codex/prepare-v019-rc

Conversation

@MuncleUscles

Copy link
Copy Markdown
Member

Delivery context

Follow-up release-preparation layer on the landed Consensus v0.6 / Studio v0.123 train. There is no direct cross-repository code dependency: studio-dev.genlayer.com and chain ID 61997 already identify the preview environment, while studio-next remains a browser-only alias.

Open PR #111 overlaps _prepare_transaction and its tests for an unrelated gas-override feature. To keep today’s release cut small and already-qualified, this PR intentionally excludes #111 and should land first; #111 can then rebase and retain is_studio_chain(...) in its edited transaction builder.

Problem and outcome

The Python SDK had no dedicated Studio-dev preset, and its Studio routing relied on the stable Studio/local chain ID 61999. A naïve 61997 preset would therefore have sent lifecycle, fee, simulation, and appeal operations down the deployed-Consensus path. The release automation also could not safely create an RC from v0.19-dev: its pinned semantic-release command used an unsupported positional version, its branch config matched only main, missing CI was allowed, and the publish workflow did not prove tag ownership or mark GitHub prereleases.

This PR:

  • exports studio_devnet for canonical RPC https://studio-dev.genlayer.com/api, chain ID 61997, and explorer https://explorer-studio-dev.genlayer.com;
  • leaves stable studionet unchanged at https://studio.genlayer.com/api, chain ID 61999;
  • centralizes Studio-chain classification so both hosted Studio lines use the simulator RPC surface;
  • routes vX.Y.Z-rc.N only through vX.Y-dev and final releases only through vX.Y;
  • validates requested versus computed versions, requires a green native Tests workflow, and adds a fail-closed --dry-run;
  • verifies the tag, package version, and current owning branch head before PyPI publication, and marks RC GitHub Releases as prereleases;
  • refreshes the generated v0.19 SDK reference.

Implementation and validation

  • Python 3.12 native unit gate: 222 passed, 17 network-marked tests deselected.
  • Python 3.13 native unit gate: 222 passed, 17 network-marked tests deselected.
  • Focused preview/release routing tests: 20 passed.
  • uv build: source distribution and universal wheel built successfully.
  • shellcheck scripts/release.sh, actionlint .github/workflows/publish.yml, bytecode compilation, generated-doc reproducibility, and git diff --check: passed.
  • Full scripts/release.sh --allow-major 0.19.0-rc.1 was exercised against a disposable local remote with a fake green CI result. It created the expected release commit and annotated v0.19.0-rc.1 tag, pushed only to that disposable remote, and the publish guard confirmed the tag and v0.19-dev head peeled to the same commit.
  • Current PyPI stable remains 0.18.0; no GitHub tag or PyPI publication was created during validation.

Risk and rollback

The Studio classification change preserves the behavior stable studionet already received through its shared 61999 ID while extending it to preview ID 61997. Direct tests lock both preview coordinates and stable-network non-drift. RC publication is still tag-driven and PyPI-only in CI; the workflow now fails closed on an unowned or stale tag. Rollback is the three commits in this PR; no external release state exists yet.

@coderabbitai

coderabbitai Bot commented Sep 3, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: f0f6a45f-e07c-4271-8e23-2e9dbd186d0b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@MuncleUscles MuncleUscles self-assigned this Sep 3, 2026
@MuncleUscles
MuncleUscles merged commit 34bff46 into v0.19-dev Sep 3, 2026
8 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant