Skip to content

ci: unify dependency profiles across PR and nightly runs#128

Merged
rvagg merged 4 commits into
mainfrom
galargh/align-stability-runs
Jul 1, 2026
Merged

ci: unify dependency profiles across PR and nightly runs#128
rvagg merged 4 commits into
mainfrom
galargh/align-stability-runs

Conversation

@galargh

@galargh galargh commented Jun 7, 2026

Copy link
Copy Markdown
Contributor

This PR expands the version combinations we test foc-devnet with.

The general setup is to test in 3 modes/profiles:

  • default: pinned version numbers of all dependencies (in this context, that means: Lotus, Curio, filecoin-services, Synapse SDK, and filecoin-pin)
  • stability: latest releases of the dependencies (used in nightly builds)
  • frontier: latest commits of the dependencies (used in nightly builds)

To track all of this, I introduce a JSON dependency manifest (ci/dependency-profiles.json) which describes these profiles: what version to use, where to get it from (git vs npm), etc.

I also fixed the dependency-version-dependent cache setup and updated the test scenarios to use the dependencies tracked by the manifest.

Testing

TODO

  • When installing filecoin-pin, pin multiformats to the version that synapse-sdk accepts.

@FilOzzy FilOzzy added this to FOC Jun 7, 2026
@github-project-automation github-project-automation Bot moved this to 📌 Triage in FOC Jun 7, 2026
@galargh galargh changed the title ci: unify dependency profiles across PR and nightly runs [WIP] ci: unify dependency profiles across PR and nightly runs Jun 7, 2026
@galargh galargh force-pushed the galargh/align-stability-runs branch from a9b9935 to f9e52c2 Compare June 7, 2026 21:37
@BigLep BigLep moved this from 📌 Triage to ⌨️ In Progress in FOC Jun 7, 2026
@BigLep

BigLep commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

@rvagg : I know you have been doing various work here. It may be good to get quick signal if this is moving in the same direction you have been.

Comment thread scenarios/synapse.py
f"synapse-sdk checkout is {sdk_commit}, expected {expected_commit}"
)
info(f"synapse-sdk commit: {sdk_commit}")
if not run_cmd(["pnpm", "install"], cwd=str(sdk_dir), label="pnpm install"):

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Can we add a pnpm-lockfile to https://github.com/FilOzone/synapse-sdk/? This would make the builds here more deterministic.

@galargh galargh force-pushed the galargh/align-stability-runs branch from 23f7403 to 3b48baf Compare June 27, 2026 20:06
@galargh galargh changed the title [WIP] ci: unify dependency profiles across PR and nightly runs ci: unify dependency profiles across PR and nightly runs Jun 27, 2026
@galargh galargh marked this pull request as ready for review June 27, 2026 23:03
@BigLep BigLep moved this from ⌨️ In Progress to 🔎 Awaiting review in FOC Jun 29, 2026
@BigLep BigLep requested a review from Copilot June 29, 2026 22:40

Copilot AI left a comment

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.

Pull request overview

This PR introduces a dependency-profile system for CI so PR and nightly runs can test foc-devnet against pinned, stable-release, and latest-commit variants of key dependencies, while producing resolved, immutable metadata for caching and reporting.

Changes:

  • Added a dependency profiles manifest (ci/dependency-profiles.json) plus a resolver/verifier script to resolve profiles to immutable commits/versions and emit CI outputs/env.
  • Updated CI workflows to use the profile resolver for foc-devnet init arguments and to base caches on verified Lotus/Curio checkouts.
  • Updated scenarios to consume resolved dependency metadata (Synapse SDK + filecoin-pin) and to include resolved dependency information in scenario reports; added unit tests for the resolver and scenario dependency wiring.

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
scripts/tests/test_scenario_dependencies.py Adds tests ensuring scenario helpers consume resolved metadata correctly (table rendering, synapse checkout, filecoin-pin setup paths).
scripts/tests/test_resolve_ci_dependencies.py Adds unit tests for tag selection, npm resolution, override validation, init arg generation, and checkout verification outputs.
scripts/resolve-ci-dependencies.py New resolver/verifier CLI for dependency profiles; emits init args + env vars and verifies cloned checkouts for cache keys.
scripts/lint.sh Expands Black formatting scope to scripts/ and runs the new Python unit tests.
scenarios/test_multi_copy_upload.py Makes filecoin-pin install/build depend on resolved metadata; supports npm vs git source and propagates overrides.
scenarios/synapse.py Uses resolved metadata to clone/check out a specific synapse-sdk commit and applies pnpm workspace overrides.
scenarios/report.py Switches to --notty and adds a “Resolved dependencies” section to scenario reports.
scenarios/dependencies.py New helper module to load resolved CI dependency metadata and render it as a markdown table.
README_ADVANCED.md Documents dependency profile resolution and the env vars exposed to scenarios.
ci/README.md Documents the dependency profile manifest, strategies, overrides policy, and current consumers.
ci/dependency-profiles.json Adds the canonical manifest defining default/stability/frontier selections for Lotus/Curio/filecoin-services/synapse-sdk/filecoin-pin.
.github/workflows/ci_run.yml Replaces init_flags with profile-based resolution, adds verification step, and updates caching keys to depend on verified checkouts.
.github/workflows/ci_pull_request.yml Switches PR CI to call ci_run.yml with profile: default.
.github/workflows/ci_nightly.yml Switches nightly matrix runs to pass profile: stability / profile: frontier instead of init flags.

Comment thread scripts/lint.sh Outdated

@BigLep BigLep left a comment

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.

My worry is we don't have a forcing function to keep default updated. Maybe it should be a PR comment (e.g., "This CI run isn't using the latest stable releases. Ensure this is intentional, and otherwise consider updating as part of this PR.")

Lets have @rvagg at least provide feedback on the direction to make sure it isn't counter to his thinking, even if he assigns someone else to review.

Comment thread ci/dependency-profiles.json Outdated
@rvagg rvagg force-pushed the galargh/align-stability-runs branch from ae20b04 to 949ed02 Compare July 1, 2026 09:55
@github-project-automation github-project-automation Bot moved this from 🔎 Awaiting review to ✔️ Approved by reviewer in FOC Jul 1, 2026
@rvagg rvagg merged commit 04f6a04 into main Jul 1, 2026
3 checks passed
@rvagg rvagg deleted the galargh/align-stability-runs branch July 1, 2026 10:47
@github-project-automation github-project-automation Bot moved this from ✔️ Approved by reviewer to 🎉 Done in FOC Jul 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🎉 Done

Development

Successfully merging this pull request may close these issues.

5 participants