Conversation
73511cf to
4bee1ca
Compare
There was a problem hiding this comment.
This looks great to me! Only thing we might want to clarify/discuss is versioning as the binary that invoking compiler capabilities now will be decoupled from the sway repo.
As RFC discusses with the ability to version different packages independently, we should be able to continue following those version sets (like forc-fmt is actually at the same level as the compiler releases) while keeping rest of the tools like forc-client independent from these bumps.
I think we can also revive a simplified version of "releasy" which is going to actually just watch for releases in sway repo and open bump PRs on the tooling monorepo (like sway-core bumped on sway side etc). This can be useful for situations like getting latest language features released into forc-fmt semi-automatically, as there will be a PR already.
I am curios whether we consider forc as a tooling monorepo thing or sway monorepo thing? I feel like it should be tooling monorepo while its sway repo dependency is forc-pkg but without an automatic process described as above, language releases will require an additional PR merged. It is not the end of the world but something to consider
| | **Sway** | Compiler, language services, AST-aware binaries | Publishes `swayfmt`, `sway-lsp`, `sway-doc`, `sway-migrate` , and related libraries consumed by tooling wrappers | | ||
| | **Forc-tooling** | CLI wrappers and operational tools | Hosts `forc-fmt`, `forc-lsp`, `forc-doc`, `forc-node`, `forc-client`, `forc-crypto`, `forc-wallet`, and tracing/deploy utilities | | ||
|
|
||
| Both repos maintain independent CI pipelines: |
There was a problem hiding this comment.
It would be interesting to allow sway CI to trigger some upstream tests. The new tooling repo is one of them.
In this way, we would know that something is breaking. This CI task would not block merge, but would signal to someone else that changes are coming.
PR SummaryAdds an RFC proposing a separate
Written by Cursor Bugbot for commit 60dfcb3. This will update automatically on new commits. Configure here. |
…onorepo with improved dependency management in Cargo.toml files.
Update all channel TOML files to use the new simplified target naming convention for forc-wallet: - aarch64-unknown-linux-gnu → linux_arm64 - x86_64-unknown-linux-gnu → linux_amd64 - aarch64-apple-darwin → darwin_arm64 - x86_64-apple-darwin → darwin_amd64 This aligns with the forc-wallet release asset renaming and the simplified naming convention adopted by the forc monorepo. Note: fuel-core and fuel-core-keygen entries are intentionally unchanged as their release assets have not been renamed. Closes #809 Related: #808 RFC: FuelLabs/sway-rfcs#49
## Summary This PR completes the sway-side of migrating `forc-tracing` and `forc-crypto` to the new [forc monorepo](https://github.com/FuelLabs/forc), as outlined in [RFC #49](FuelLabs/sway-rfcs#49). The corresponding forc repo PR: FuelLabs/forc#119 ### Changes - Remove `forc-tracing` crate from workspace (now uses crates.io `0.71.1`) - Remove `forc-crypto` crate from workspace - Update CI to no longer build/package `forc-crypto` binary (it's now built from forc repo) - Update gh-pages workflow to install `forc-crypto` from forc repo for documentation generation ### Distribution Going forward, `forc-crypto` will be built and distributed from the forc repo by: - sway-nightly-binaries - fuelup - fuel.nix ### Documentation For now, documentation for all tooling will continue to live in this repo. The `gh-pages` workflow now pulls `forc-crypto` from the forc repo rather than building it locally, so docs generation continues to work as before.
Update all channel TOML files to use the new simplified target naming convention for forc-wallet: - aarch64-unknown-linux-gnu → linux_arm64 - x86_64-unknown-linux-gnu → linux_amd64 - aarch64-apple-darwin → darwin_arm64 - x86_64-apple-darwin → darwin_amd64 This aligns with the forc-wallet release asset renaming and the simplified naming convention adopted by the forc monorepo. Note: fuel-core and fuel-core-keygen entries are intentionally unchanged as their release assets have not been renamed. Closes #809 Related: #808 RFC: FuelLabs/sway-rfcs#49
Update all channel TOML files to use the new simplified target naming convention for forc-wallet: - aarch64-unknown-linux-gnu → linux_arm64 - x86_64-unknown-linux-gnu → linux_amd64 - aarch64-apple-darwin → darwin_arm64 - x86_64-apple-darwin → darwin_amd64 This aligns with the forc-wallet release asset renaming and the simplified naming convention adopted by the forc monorepo. Note: fuel-core and fuel-core-keygen entries are intentionally unchanged as their release assets have not been renamed. Closes #809 Related: #808 RFC: FuelLabs/sway-rfcs#49
…#811) Update all channel TOML files to use the new simplified target naming convention for forc-wallet: - aarch64-unknown-linux-gnu → linux_arm64 - x86_64-unknown-linux-gnu → linux_amd64 - aarch64-apple-darwin → darwin_arm64 - x86_64-apple-darwin → darwin_amd64 This aligns with the forc-wallet release asset renaming and the simplified naming convention adopted by the forc monorepo. Note: fuel-core and fuel-core-keygen entries are intentionally unchanged as their release assets have not been renamed. Closes #809 Related: #808 RFC: FuelLabs/sway-rfcs#49
## Summary Migrates `forc-node` package support from the `sway` repository to the `forc` monorepo, effective from version 0.71.0 onwards. This follows the same pattern established in #205 for `forc-crypto`. ## Changes - **refresh-manifests.sh**: Added `pkg_forc_node` with legacy repo routing (sway < 0.71.0, forc >= 0.71.0) - **patches.nix**: - Added `forc-node` to `forc-plugins` list for openssl dependencies - Added `buildAndTestSubdir` patch for forc monorepo builds - Added clang/rocksdb dependencies required for fuel-core bindings - **packages.md**: Added forc-node to documentation ## Related PRs - forc: [FuelLabs/forc#130](FuelLabs/forc#130) - Migrate forc-node from sway repo - fuelup: [FuelLabs/fuelup#819](FuelLabs/fuelup#819) - Migrate forc-node from sway to forc monorepo - sway-nightly-binaries: [FuelLabs/sway-nightly-binaries#81](FuelLabs/sway-nightly-binaries#81) - Migrate forc-node nightly builds ## RFC [FuelLabs/sway-rfcs#49](FuelLabs/sway-rfcs#49) - Tooling Monorepo RFC --------- Co-authored-by: GitHub Action <action@github.com>
## Summary This PR completes the sway-side of migrating `forc-node` to the [forc monorepo](https://github.com/FuelLabs/forc), as outlined in [RFC #49](FuelLabs/sway-rfcs#49). The corresponding forc repo PR: FuelLabs/forc#130 `forc-node` has already been released from the forc repo (v0.71.2). ### Changes - Remove `forc-node` crate from workspace - Update CI to no longer build/test/package `forc-node` binary (it's now built from forc repo) - Update gh-pages workflow to install `forc-node` from forc repo for documentation generation - Remove unused workspace dependencies (`fuel-core`, `fuel-core-chain-config`, `libp2p-identity`, `sha1`, `termion`) ### Distribution Going forward, `forc-node` 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-node` from the forc repo rather than building it locally, so docs generation continues to work as before. Co-authored-by: Igor Rončević <ironcev@hotmail.com>
`forc-client` moved from `FuelLabs/sway` to `FuelLabs/forc` as of v0.71.0 (see FuelLabs/forc#143). This PR updates nightly builds to source it from the new location. Changes: - Add `forc-client` to the forc monorepo workflow - Handle multi-binary crates by extracting names from [[bin]] sections - Remove `forc-deploy`, `forc-run`, `forc-submit`, `forc-call` from sway workflow - Update README to document the new source Part of the tooling monorepo migration: FuelLabs/sway-rfcs#49
`forc-client` moved from `FuelLabs/sway` to `FuelLabs/forc` as of v0.71.0 (see FuelLabs/forc#143). This PR updates nightly builds to source it from the new location. Changes: - Add `forc-client` to the forc monorepo workflow - Handle multi-binary crates by extracting names from [[bin]] sections - Remove `forc-deploy`, `forc-run`, `forc-submit`, `forc-call` from sway workflow - Update README to document the new source Part of the tooling monorepo migration: FuelLabs/sway-rfcs#49
`forc-client` moved from `FuelLabs/sway` to `FuelLabs/forc` as of v0.71.0 (see FuelLabs/forc#143). This PR updates nightly builds to source it from the new location. Changes: - Add `forc-client` to the forc monorepo workflow - Handle multi-binary crates by extracting names from [[bin]] sections - Remove `forc-deploy`, `forc-run`, `forc-submit`, `forc-call` from sway workflow - Update README to document the new source Part of the tooling monorepo migration: FuelLabs/sway-rfcs#49
`forc-client` moved from `FuelLabs/sway` to `FuelLabs/forc` as of v0.71.0 (see FuelLabs/forc#143). This PR updates nightly builds to source it from the new location. Changes: - Add `forc-client` to the forc monorepo workflow - Handle multi-binary crates by extracting names from [[bin]] sections - Remove `forc-deploy`, `forc-run`, `forc-submit`, `forc-call` from sway workflow - Update README to document the new source Part of the tooling monorepo migration: FuelLabs/sway-rfcs#49
`forc-client` moved from `FuelLabs/sway` to `FuelLabs/forc` as of v0.71.0 (see FuelLabs/forc#143). This PR updates nightly builds to source it from the new location. Changes: - Add `forc-client` to the forc monorepo workflow - Handle multi-binary crates by extracting names from [[bin]] sections - Remove `forc-deploy`, `forc-run`, `forc-submit`, `forc-call` from sway workflow - Update README to document the new source Part of the tooling monorepo migration: FuelLabs/sway-rfcs#49
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
## Summary `forc-client` moved from `FuelLabs/sway` to `FuelLabs/forc` as of v0.71.0 (see FuelLabs/forc#143). This PR updates fuel.nix to source it from the new location. Part of the tooling monorepo migration: FuelLabs/sway-rfcs#49 ## Changes - **`script/refresh-manifests.sh`**: Add `legacy_repo` and `legacy_before` routing for forc-client (versions >= 0.71.0 from forc monorepo, older from sway) - **`patches.nix`**: Add `buildAndTestSubdir` override for forc-client from forc monorepo - **`book/src/packages.md`**: Update forc-client and forc-call to reference forc-repo - **`book/src/contributing/adding-packages.md`**: Update example to show legacy_repo pattern - **New manifests**: forc-client 0.71.0, 0.71.1, and nightlies from forc monorepo ## Related PRs - forc-client migration to forc monorepo: FuelLabs/forc#143 - forc-client nightly builds migration: FuelLabs/sway-nightly-binaries#83 <!-- BUGBOT_STATUS --><sup><a href="https://cursor.com/dashboard?tab=bugbot">Cursor Bugbot</a> reviewed your changes and found no issues for commit <u>428825c</u></sup><!-- /BUGBOT_STATUS --> --------- Co-authored-by: GitHub Action <action@github.com>
* feat: migrate `forc-client` from sway to forc monorepo
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
* fix: handle forc-client executables in component add
- 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
* chore: remove unused is_default_forc_plugin function
## Summary This PR completes the sway-side of migrating `forc-client` to the [forc monorepo](https://github.com/FuelLabs/forc), as outlined in [RFC #49](FuelLabs/sway-rfcs#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. Co-authored-by: Igor Rončević <ironcev@hotmail.com>
Rendered
Note
Adds an RFC proposing a new forc-tooling monorepo for operational tooling and CLI wrappers, keeping AST-aware binaries in Sway, with defined migration, distribution, CI, and release processes.
rfcs/0017-tooling-monorepo.mdintroducing a split into a newforc-toolingmonorepo.forc-fmt,forc-lsp,forc-doc,forc-migrate) and operational tools (forc-node,forc-client,forc-crypto,forc-wallet) toforc-tooling.swayfmt,sway-lsp,sway-doc,sway-migrate) insway.sway-nightly-binaries,fuelup, andfuel.nixto source binaries from both repos.compatibility.toml.forc-tooling; atomic installs via dual manifests.release-plz,cargo-smart-release,cargo-unleash.Written by Cursor Bugbot for commit 9f0d425. This will update automatically on new commits. Configure here.