-
Notifications
You must be signed in to change notification settings - Fork 11
Tooling Monorepo #49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Tooling Monorepo #49
Conversation
73511cf to
4bee1ca
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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>
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.