Skip to content

chore(genvm): migrate to GenVM v0.3.0-rc7 SDK APIs ⬆️ - #106

Open
kp2pml30 wants to merge 3 commits into
v0.30-devfrom
chore/update-genvm-runner-hashes
Open

chore(genvm): migrate to GenVM v0.3.0-rc7 SDK APIs ⬆️#106
kp2pml30 wants to merge 3 commits into
v0.30-devfrom
chore/update-genvm-runner-hashes

Conversation

@kp2pml30

@kp2pml30 kp2pml30 commented Aug 19, 2026

Copy link
Copy Markdown
Member

Description

Migrates gltest to the GenVM v0.3.0-rc7 SDK. No runner-hash bump — this repo pins zero hashes, every fixture uses py-genlayer:latest.

  1. on="accepted"on="decided" in 4 contract fixtures
  2. gltest/direct/sdk_loader.py reads both .zip and .tar runner archives — upstream changed the built tree from <id>/<aa>/<rest>.tar to .zip, while the v0.2 legacy-runners/ tree stays .tar and both are resolved by the same glob
  3. glsim/direct-mode adapters accept both the released SDK's DeployContract / PostMessage request names and rc7's EmitInternalDeployMessage / EmitInternalMessage, keeping native CI compatible while the multi-repo cut lands

Upstream: genvm-manager #24.

Depends-On: genlayerlabs/genvm-manager#24

Motivation and Context

Direct mode extracts runners straight out of the GenVM tree, so the archive-format change breaks it outright. The on= rename has no back-compat alias.

How Has This Been Tested?

Python 3.13 native-CI environment (uv sync --extra sim):

  • deterministic deploy regression: passed
  • full tests/glsim suite: 72 passed

Extraction logic additionally verified standalone against a synthetic tree: zip-by-hash, tar-by-hash and latest all resolve, and path-sort preference still puts runners/ (v0.3) ahead of legacy-runners/ for :latest.

Decisions Made

  • gltest/assertions.py ACCEPTED_STATUSES / _has_accepted_status is a consensus transaction status, not the SDK on= value — untouched. gltest/contracts/* already spoke decided / finalized
  • .tar.xz names in sdk_loader.py are genvm-manager release bundles, a different artifact from runner archives — untouched

Risks

The .zip path uses ZipFile.extractall with no equivalent of tar's filter="data" (stdlib offers none). Inputs are our own release artifacts, the same trust level as the existing tar path, but it is a slightly weaker guard against crafted entry names.

Changeset

Repo PR Base
genvm-manager genlayerlabs/genvm-manager#24 v0.6-dev
genlayer-node genlayerlabs/genlayer-node#1753 v0.6-dev
genlayer-studio genlayerlabs/genlayer-studio#1744 v0.123-dev
genlayer-py genlayerlabs/genlayer-py#105 v0.19-dev
genlayer-testing-suite #106 v0.30-dev
genlayer-e2e genlayerlabs/genlayer-e2e#723 main
genlayer-dev-env genlayerlabs/genlayer-dev-env#130 main

No PR for genlayer-js or genlayer-consensus — neither needed a change.

@kp2pml30 kp2pml30 self-assigned this Aug 19, 2026
@coderabbitai

coderabbitai Bot commented Aug 19, 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: Pro Plus

Run ID: 0143d6d7-950a-46b1-bf80-b722869a70d8

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.

kp2pml30 and others added 2 commits August 21, 2026 19:35
Squashed: the v0.3.0-rc7 SDK API migration and the follow-up rename of the
raw gl_call request tags to their v1 names.
@kp2pml30
kp2pml30 force-pushed the chore/update-genvm-runner-hashes branch from 467e815 to df6c68a Compare August 21, 2026 11:33
The pinned embeddings runner's `VecDB` takes the distance metric as a fourth
type parameter. Three arguments now fail at contract import, which leaves the
deploy without state rather than reporting a type error.
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.

2 participants