Skip to content

feat: migrate forc-client from sway to forc monorepo#825

Merged
JoshuaBatty merged 3 commits into
masterfrom
josh/forc-client
Feb 5, 2026
Merged

feat: migrate forc-client from sway to forc monorepo#825
JoshuaBatty merged 3 commits into
masterfrom
josh/forc-client

Conversation

@JoshuaBatty
Copy link
Copy Markdown
Member

@JoshuaBatty JoshuaBatty commented Feb 4, 2026

Summary

This PR enables fuelup to source forc-client from the FuelLabs/forc monorepo starting with version 0.71.0, following the ongoing migration of Fuel tooling as outlined in the RFC.

Changes

  • Update components.toml with forc-client migration config
  • Update tag_for_version() to handle forc-client tags in forc monorepo
  • Update proxy_cli.rs to handle forc-client executables for toolchain overrides
  • Remove forc-client executables from forc component (now separate)
  • Add tests for forc-client version routing

Version Routing

Version Repository Tarball Tag Format
< 0.71.0 sway forc-binaries-{target}.tar.gz v{version}
≥ 0.71.0 forc forc-client-{version}-{target}.tar.gz forc-client-{version}

Related PRs

This is part of the broader effort to migrate Fuel tooling from the sway monorepo to the forc monorepo:

Cursor Bugbot reviewed your changes and found no issues for commit 889a486

This PR enables fuelup to source `forc-client` from the `FuelLabs/forc`
monorepo starting with version 0.71.0, following the ongoing migration
of Fuel tooling as outlined in the RFC.

Changes:
- Update `components.toml` with forc-client migration config
- Update `tag_for_version()` to handle `forc-client` tags in forc monorepo
- Update `proxy_cli.rs` to handle forc-client executables for toolchain overrides
- Remove forc-client executables from forc component (now separate)
- Add tests for forc-client version routing

Version Routing:
| Version   | Repository | Tarball                              | Tag Format           |
|-----------|------------|--------------------------------------|----------------------|
| < 0.71.0  | sway       | forc-binaries-{target}.tar.gz        | v{version}           |
| >= 0.71.0 | forc       | forc-client-{version}-{target}.tar.gz| forc-client-{version}|

Related PRs:
- RFC: FuelLabs/sway-rfcs#49
- forc-client migration: FuelLabs/forc#143
- sway-nightly-binaries: FuelLabs/sway-nightly-binaries#83
@cursor
Copy link
Copy Markdown

cursor Bot commented Feb 4, 2026

PR Summary

Medium Risk
Changes how forc-call/forc-deploy/forc-run/forc-submit are resolved and downloaded across toolchain overrides and version cutovers; mistakes could break installs or proxy execution for these binaries.

Overview
Starting with 0.71.0, forc-client is now sourced from the FuelLabs/forc monorepo with component-prefixed tags and its own tarball prefix, while older versions continue to resolve from sway/forc-binaries via new legacy routing in components.toml.

forc-call/forc-deploy/forc-run/forc-submit are removed from the forc component and are treated as executables bundled under forc-client for fuelup component add validation and proxy/override resolution (proxy_cli.rs). Tests are added/updated to cover repository/tag/tarball selection and target triple handling for forc-client.

Written by Cursor Bugbot for commit 889a486. This will update automatically on new commits. Configure here.

@JoshuaBatty JoshuaBatty self-assigned this Feb 4, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 4, 2026

LCOV of commit 889a486 during CI #2314

Summary coverage rate:
  lines......: 86.9% (2515 of 2893 lines)
  functions..: 60.0% (375 of 625 functions)
  branches...: 66.0% (272 of 412 branches)

Files changed coverage rate: n/a

Comment thread component/src/lib.rs
Comment thread components.toml
- Add `parent_component_for_executable()` to properly detect bundled
  executables and their parent component
- Users running `fuelup component add forc-run` now get the correct
  message to add `forc-client` instead of `forc`
- Users can now directly add `forc-client` as a standalone component
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

Comment thread component/src/lib.rs Outdated
@JoshuaBatty JoshuaBatty enabled auto-merge (squash) February 5, 2026 00:32
@JoshuaBatty JoshuaBatty merged commit c95a264 into master Feb 5, 2026
24 checks passed
@JoshuaBatty JoshuaBatty deleted the josh/forc-client branch February 5, 2026 01:24
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