Skip to content

fix: unbreak main branch builds#3716

Draft
dl-bot-integrations wants to merge 1 commit into
mainfrom
apollo/fix-main-red-build
Draft

fix: unbreak main branch builds#3716
dl-bot-integrations wants to merge 1 commit into
mainfrom
apollo/fix-main-red-build

Conversation

@dl-bot-integrations
Copy link
Copy Markdown
Collaborator

@dl-bot-integrations dl-bot-integrations commented May 18, 2026

Bug Description

main is red across several workflows. The primary breakage is lazer/contracts/cardano/sdk/js, where a floating @evolution-sdk/evolution dependency resolved to 0.3.32, which no longer exports the symbols this package uses.

This branch also addresses the other independent CI failures currently showing on main.

Root Cause

  • @evolution-sdk/evolution drifted from the compatible API surface expected by the Cardano SDK package.
  • Newer toolchain/lint behavior also exposed three unrelated Rust issues already present on main:
    • pythnet_sdk example referenced solana_sdk::system_program
    • fortuna used deprecated ToHex
    • CosmWasm storage helpers needed explicit elided lifetimes

Fix

  • Pin @evolution-sdk/evolution to 0.3.28 in the Cardano SDK package and lockfile
  • Update pythnet_sdk/examples/generate_pyth_data.rs to use solana_program::system_program and add the dev dependency
  • Switch Fortuna to ToHexExt and bump patch version to 9.4.1
  • Add explicit lifetimes to CosmWasm storage helper return types

How to Verify

  1. Check out this branch
  2. Run pnpm install --frozen-lockfile --filter @pythnetwork/pyth-lazer-cardano-js
  3. Run pnpm --filter @pythnetwork/pyth-lazer-cardano-js build
  4. Let CI validate the Rust jobs on GitHub Actions

Test Plan

  • Added regression test for this bug
  • Existing tests still pass for the locally reproducible TS package build
  • Manual verification of the Cardano SDK fix

Local verification run:

  • pnpm install --frozen-lockfile --filter @pythnetwork/pyth-lazer-cardano-js
  • pnpm --filter @pythnetwork/pyth-lazer-cardano-js build

Note: I could not run local Rust verification on this machine because cargo is not installed here, so the Rust portions are based on the exact GitHub Actions failures from main.

Risk Assessment

Medium — the JS fix is narrowly scoped, but this PR also batches three small CI-unblocking Rust changes so the blast radius spans multiple packages. Each change is surgical and mapped directly to current failing workflows.


Open in Devin Review

@dl-bot-integrations dl-bot-integrations requested review from a team and tejasbadadare as code owners May 18, 2026 20:44
@vercel
Copy link
Copy Markdown

vercel Bot commented May 18, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
api-reference Error Error May 18, 2026 8:49pm
component-library Ready Ready Preview, Comment May 18, 2026 8:49pm
developer-hub Error Error May 18, 2026 8:49pm
entropy-explorer Error Error May 18, 2026 8:49pm
insights Error Error May 18, 2026 8:49pm
proposals Ready Ready Preview, Comment May 18, 2026 8:49pm
staking Error Error May 18, 2026 8:49pm

Request Review

Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 4 potential issues.

View 2 additional findings in Devin Review.

Open in Devin Review

Comment thread apps/fortuna/Cargo.toml
[package]
name = "fortuna"
version = "9.4.0"
version = "9.4.1"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Cargo.lock not updated after fortuna version bump

The fortuna Cargo.toml version was bumped from 9.4.0 to 9.4.1, but the workspace Cargo.lock still records version = "9.4.0" for the fortuna package. This violates the AGENTS.md rule: "Important: When changing code, bump the package version in Cargo.toml based on semantic versioning. Run cargo check to ensure the changes are reflected in the Cargo.lock lockfile." Running cargo check or cargo update -p fortuna would synchronize the lockfile.

Prompt for agents
The Cargo.lock file in the repository root still lists fortuna as version 9.4.0 even though apps/fortuna/Cargo.toml was bumped to 9.4.1. Run `cargo check` (or `cargo generate-lockfile`) from the workspace root so Cargo.lock reflects the new version. The AGENTS.md at apps/fortuna/AGENTS.md explicitly requires this step.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

rand = "0.7.0"
serde_json = "1.0.96"
solana-client = ">=1.13.6"
solana-program = ">=1.13.6"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Cargo.lock not updated after adding solana-program dev-dependency to pythnet_sdk

A new dev-dependency solana-program = ">=1.13.6" was added to pythnet/pythnet_sdk/Cargo.toml, but the workspace Cargo.lock was not regenerated. The [[package]] entry for pythnet-sdk in Cargo.lock does not list solana-program as a dependency. This means building or testing this crate will either fail or silently regenerate the lockfile, which contradicts the AGENTS.md guideline to run cargo check to ensure lock file changes are committed alongside Cargo.toml changes.

Prompt for agents
After adding solana-program to dev-dependencies in pythnet/pythnet_sdk/Cargo.toml, run `cargo check` or `cargo generate-lockfile` from the workspace root so Cargo.lock is updated in the same commit. The AGENTS.md rule at apps/fortuna/AGENTS.md requires lockfile changes to be included when Cargo.toml is modified.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

chrono::DateTime,
ethers::{
core::utils::hex::ToHex,
core::utils::hex::ToHexExt,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚩 ToHex → ToHexExt trait migration: test code uses turbofish syntax

The import was changed from ToHex to ToHexExt at apps/fortuna/src/history.rs:6. The non-test code only calls encode_hex() without turbofish, which works with both traits. However, the test code at lines 775, 785, 796, 825, 834, 845, 875, 885, 897 uses encode_hex::<String>() turbofish syntax. The ToHex trait defines encode_hex<T: FromIterator<char>>(&self) -> T (generic), while ToHexExt defines encode_hex(&self) -> String (no generic). If the ethers re-export of ToHexExt matches the standard hex crate's definition, these turbofish calls would be compile errors. This would be caught by CI, but worth noting as it suggests the migration may be incomplete.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

{
"dependencies": {
"@evolution-sdk/evolution": "^0.3.29"
"@evolution-sdk/evolution": "0.3.28"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚩 Dependency downgrade from ^0.3.29 to pinned 0.3.28

The @evolution-sdk/evolution dependency was changed from ^0.3.29 (allowing 0.3.29+) to the exact pinned version 0.3.28. This is a downgrade that also pins to a specific version rather than allowing semver-compatible updates. The pnpm-lock.yaml was updated accordingly (previously resolved to 0.3.32, now locked to 0.3.28). This could be intentional (e.g., a regression in newer versions), but it's worth confirming the reason for the downgrade and whether pinning (vs ^0.3.28) is intentional.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

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