feat: enable forc-wallet migration from standalone repo to forc monorepo#204
Merged
JoshuaBatty merged 20 commits intomasterfrom Nov 28, 2025
Merged
feat: enable forc-wallet migration from standalone repo to forc monorepo#204JoshuaBatty merged 20 commits intomasterfrom
JoshuaBatty merged 20 commits intomasterfrom
Conversation
forc-wallet has migrated from FuelLabs/forc-wallet to FuelLabs/forc
monorepo starting at v0.16.0. This adds version-based repository
routing to fetch from the correct repo based on version:
- Versions < 0.16.0: legacy forc-wallet repo with v{version} tags
- Versions >= 0.16.0: forc monorepo with {name}-{version} tags
The implementation uses legacy_repo and legacy_before fields on
package definitions, making it extensible for future sway tool
migrations to the forc monorepo.
Update the milestone tool to fetch forc-wallet releases from the new FuelLabs/forc monorepo instead of the archived FuelLabs/forc-wallet. Key changes: - normalize_tag() handles different tag formats between repos - fetch_latest_release_for_component() finds component-specific releases in monorepos by filtering on tag prefix - Added unit tests for tag normalization logic
forc-wallet built from the forc monorepo needs buildAndTestSubdir set to "forc-wallet" since the crate is in a subdirectory. This patch applies only when the source URL is the forc monorepo.
- Update forc-wallet repo link to point to forc monorepo - Update fuel_repos example to show new structure with forc and forc-wallet-legacy entries - Update update-milestones README examples with new tag format
Run cargo test for the update-milestones tool to verify tag normalization logic works correctly for both standard repos and the forc monorepo.
|
You have run out of free Bugbot PR reviews for this billing cycle. This will reset on December 7. To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial. |
Update forc-wallet commit hash to the 0.16.1 release from the new FuelLabs/forc monorepo (tag: forc-wallet-0.16.1).
569c33c to
1ba0471
Compare
PR SummaryRoute forc-wallet >=0.16.x to the forc monorepo with correct tag formats, keep legacy repo for older versions, update tooling/CI, manifests, milestones, patches, and docs accordingly.
Written by Cursor Bugbot for commit 9e26a5b. This will update automatically on new commits. Configure here. |
The write_manifest function was ignoring its $pkg_name and $pkg_repo
parameters and instead directly referencing ${pkg[name]} and ${pkg[repo]},
which always pointed to the current (non-legacy) repo. This caused all
legacy forc-wallet manifests (< 0.16.0) to be incorrectly updated to
point to the forc monorepo instead of the forc-wallet repo.
Fix by using the function parameters that are correctly passed from
refresh_published_from_repo based on whether it's a legacy version.
e03c96f to
65d31fc
Compare
The refresh_nightlies function was only using pkg[repo] and ignoring legacy_repo, causing pre-migration nightlies to incorrectly point to the new monorepo where the package doesn't exist yet. Refactor to mirror refresh_published pattern: - Add refresh_nightlies_from_repo helper that takes repo URL as param - Add get_first_tag_date to find migration cutoff date - For legacy packages, generate nightlies from legacy repo before the first new repo tag, and from new repo after
kayagokalp
approved these changes
Nov 28, 2025
This was referenced Dec 8, 2025
JoshuaBatty
added a commit
that referenced
this pull request
Dec 8, 2025
## Summary - forc-crypto migrated from `FuelLabs/sway` to `FuelLabs/forc` monorepo at v0.71.0 - Add version-based repository routing using the same `legacy_repo`/`legacy_before` pattern established for forc-wallet in #204 - Add `buildAndTestSubdir` patch for forc-crypto when built from forc monorepo ## Changes **refresh-manifests.sh:** - Versions < 0.71.0: fetch from sway repo with `v{version}` tags - Versions >= 0.71.0: fetch from forc monorepo with `forc-crypto-{version}` tags **patches.nix:** - Add patch setting `buildAndTestSubdir = "forc-crypto"` when built from forc monorepo **packages.md:** - Update forc-crypto documentation to reference forc repo ## Context - forc-crypto migration PR: FuelLabs/forc#119 - forc-crypto v0.71.0 release: https://github.com/FuelLabs/forc/releases/tag/forc-crypto-0.71.0 - sway-nightly-binaries update: FuelLabs/sway-nightly-binaries#79 --------- Co-authored-by: GitHub Action <action@github.com>
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Enable
forc-walletto be fetched from the newFuelLabs/forcmonorepo for versions >= 0.16.0, while maintaining backward compatibility with the legacyFuelLabs/forc-walletrepository for older versions.Background
forc-wallethas been migrated to theforcmonorepo starting at v0.16.0. The legacyFuelLabs/forc-walletrepository is now archived. This PR updatesfuel.nixto:forc-wallet>= 0.16.0 fromFuelLabs/forcwithforc-wallet-{version}tagsforc-wallet< 0.16.0 from the legacyFuelLabs/forc-walletwithv{version}tagsThis mirrors the approach taken in fuelup: FuelLabs/fuelup#807
Changes
Core Infrastructure (
script/refresh-manifests.sh)forcrepo and renamed legacy toforc-wallet-legacylegacy_repoandlegacy_beforefields to package definitionsrefresh_published_from_repofunction handles version-based routing and different tag formatsMilestone Tool (
ci/update-milestones/src/main.rs)FuelLabs/forc-wallettoFuelLabs/forcnormalize_tag()for tag format conversion between reposfetch_latest_release_for_component()finds component-specific releases in monoreposNix Patches (
patches.nix)buildAndTestSubdir = "forc-wallet"for builds from forc monorepoCI (
.github/workflows/ci.yml)rust-testsjob to run update-milestones unit testsDocumentation
packages.mdandadding-packages.mdci/update-milestones/README.mdMilestones (
milestones.nix)Testing
nix-instantiate --parse patches.nix- Nix syntax validnix-instantiate --parse milestones.nix- Nix syntax validnix build .#fuel-testnet- New 0.16.x forc-wallet from forc monorepo worksnix build .#fuel-mainnet- Mainnet builds successfullynix build .#forc-wallet-0-15-2- Old version from legacy repo still workscargo test- Rust unit tests passNote
This implementation uses
legacy_repoandlegacy_beforefields on package definitions, making it extensible for future sway tool migrations to the forc monorepo (as outlined in the tooling monorepo RFC).