Skip to content

Migrate forc-client to forc monorepo#7545

Merged
ironcev merged 2 commits intomasterfrom
josh/remove_forc_client
Feb 12, 2026
Merged

Migrate forc-client to forc monorepo#7545
ironcev merged 2 commits intomasterfrom
josh/remove_forc_client

Conversation

@JoshuaBatty
Copy link
Member

Summary

This PR completes the sway-side of migrating forc-client to the forc monorepo, as outlined in RFC #49.

The corresponding forc repo PR: FuelLabs/forc#143

forc-client has already been released from the forc repo (v0.71.1).

Changes

  • Remove forc-client crate from workspace
  • Update CI to no longer build/test/package forc-client binaries (forc-deploy, forc-run, forc-submit, forc-call)
  • Update gh-pages workflow to install forc-client from forc repo for documentation generation
  • Remove unused workspace dependencies (aws-config, aws-sdk-kms, k256)
  • Refactor test harness to use subprocess calls instead of forc-client library
  • Update forc-mcp to use forc-client's re-exported types

Distribution

Going forward, forc-client will be built and distributed from the forc repo by:

  • sway-nightly-binaries
  • fuelup
  • fuel.nix

Documentation

Documentation for all tooling will continue to live in this repo. The gh-pages workflow now pulls forc-client from the forc repo rather than building it locally, so docs generation continues to work as before.

@JoshuaBatty JoshuaBatty requested review from a team as code owners February 5, 2026 03:17
@cursor
Copy link

cursor bot commented Feb 5, 2026

PR Summary

Medium Risk
Changes CI/release artifact composition and swaps a large in-tree crate for an external published dependency, which can break tooling availability or docs/CI if versions or binaries drift.

Overview
Migrates forc-client out of this workspace to the externally released crate (now pulled as forc-client v0.71), removing the in-repo forc-plugins/forc-client package and its binaries/code.

CI and release packaging are updated to stop building/testing/stripping/archiving forc-client-provided binaries, and the gh-pages workflow now installs forc-client directly from the FuelLabs/forc repo for docs generation. Version/tag verification is adjusted accordingly, and Cargo.lock is refreshed to reflect the new dependency graph (including updated forc-client/forc-tracing and related transitive updates).

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

@JoshuaBatty JoshuaBatty self-assigned this Feb 5, 2026
@JoshuaBatty JoshuaBatty added the forc-client Everything related to the `forc-client` crate. label Feb 5, 2026
@JoshuaBatty JoshuaBatty marked this pull request as draft February 5, 2026 03:19
@JoshuaBatty JoshuaBatty marked this pull request as draft February 5, 2026 03:19
ironcev added a commit that referenced this pull request Feb 11, 2026
## Summary

- Remove `forc-client` dependency from the test crate and use the
`fuels` SDK directly for contract deployment and script execution in the
e2e test harness
- `deploy_contract()` now uses `forc_pkg` build +
`Contract::regular().deploy()`
- `runs_on_node()` now uses `forc_pkg` build +
`ScriptTransactionBuilder` with proper coin resolution via
`adjust_for_fee()`
- This eliminates version mismatch issues since `forc_pkg` (always in
sync with sway-core) handles compilation while the fuels SDK handles
on-chain operations

Prerequisite step for #7545 which migrates `forc-client` out of this
repo entirely.

## Test plan

- [x] All 12 contract deployment e2e tests pass against a local
fuel-core node
- [x] Verified functional parity with old forc-client approach (same
salt, script data, contract inputs/outputs, variable output policy, coin
resolution pattern)
- [x] CI e2e tests pass

---------

Co-authored-by: Igor Rončević <ironcev@hotmail.com>
@JoshuaBatty JoshuaBatty force-pushed the josh/remove_forc_client branch from 9b35cc1 to b56157b Compare February 12, 2026 01:25
This PR completes the sway-side of migrating `forc-client` to the forc
monorepo, as outlined in RFC #49.

The corresponding forc repo PR: FuelLabs/forc#143

`forc-client` has already been released from the forc repo (v0.71.1).

### Changes

- Remove `forc-client` crate from workspace
- Update CI to no longer build/test/package `forc-client` binaries
  (forc-deploy, forc-run, forc-submit, forc-call)
- Update gh-pages workflow to install `forc-client` from forc repo
- Remove unused workspace dependencies (aws-config, aws-sdk-kms, k256)
- Update forc-mcp to use forc-client's re-exported Gas type

### Distribution

Going forward, `forc-client` will be built and distributed from the
forc repo by:
- sway-nightly-binaries
- fuelup
- fuel.nix
@JoshuaBatty JoshuaBatty force-pushed the josh/remove_forc_client branch from b56157b to 9838fb6 Compare February 12, 2026 01:28
@JoshuaBatty JoshuaBatty marked this pull request as ready for review February 12, 2026 01:50
@ironcev
Copy link
Member

ironcev commented Feb 12, 2026

👍

@ironcev ironcev enabled auto-merge (squash) February 12, 2026 16:45
Copy link

@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.

@ironcev ironcev merged commit 09fd4c5 into master Feb 12, 2026
43 checks passed
@ironcev ironcev deleted the josh/remove_forc_client branch February 12, 2026 22:56
JoshuaBatty added a commit that referenced this pull request Feb 13, 2026
Remove unused workspace dependencies (`forc-wallet`, `dialoguer`,
`rpassword`) as a result of removing `forc-client` in #7545.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

forc-client Everything related to the `forc-client` crate.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

Comments