feat: migrate forc-wallet repository to forc monorepo#1
Merged
JoshuaBatty merged 149 commits intomainfrom Nov 21, 2025
Merged
Conversation
Co-authored-by: John Adler <adlerjohn@users.noreply.github.com>
forc wallet mvp
* Use the SDK API to enable basic features
* refactor: Do not require password for listing accounts * docs: better doc comments
… index (#25) feat: added account command to show address of an account given its index
* Update readme with installation and basic usage * Update README.md Co-authored-by: mitchmindtree <mail@mitchellnordine.com> Co-authored-by: mitchmindtree <mail@mitchellnordine.com>
feat: init accepts optional phrase
…ter (#36) * feat: Phrase is imported using a password field * Update reaedme with --import
Add a CI check to ensure the lock file is always up to date Version 0.1.0 was published with an out-of-date lock file. This updates CI to ensure it's always at least up to date with the `Cargo.toml` requirements.
closes #32.
Co-authored-by: Ahmed Sagdati <37515857+segfault-magnet@users.noreply.github.com>
closes #46.
|
Thanks for the contribution! Before we can merge this, we need @digorithm @iqdecay to sign the Fuel Labs Contributor License Agreement. |
|
Thanks for the contribution! It looks like @mitchmindtree is an internal user so signing the CLA is not required. However, they are not a member of this GitHub org so we can't confirm this. |
forc-wallet repository to forc monorepo
There was a problem hiding this comment.
This PR is being reviewed by Cursor Bugbot
Details
Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.
To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.
Contributor
Fix "seperator" typo throughout codebase **Changes:** - `src/format.rs`: Enum variant `Value::Separator`, method `add_separator()`, and all references - `src/balance.rs`: Two call sites updated to match new method name <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Standardizes typo by renaming `Seperator` to `Separator` in `List` and updates call sites in balance printing. > > - **Formatting (`src/format.rs`)**: > - Rename enum variant `Value::Seperator` -> `Value::Separator`. > - Rename method `add_seperator()` -> `add_separator()` and update internal uses. > - Rename local `seperator` -> `separator` in `Display` impl. > - Fix doc comment typo: “alligned” -> “aligned”. > - **Balance (`src/balance.rs`)**: > - Update calls to `List::add_seperator()` -> `List::add_separator()`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit ef1c9dc3650cce409f96fd87c599c10ae3d5d032. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
--- **Description:** This pull request corrects a typo in the inline documentation for the wallet accounts directory path, changing accoutns to accounts for improved clarity and accuracy. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Corrects doc comment path from `~/.fuel/wallets/accoutns` to `~/.fuel/wallets/accounts` in `src/main.rs`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 730bb51be53291c339fafe1ad99ec6296e4f06ad. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: Joshua Batty <joshpbatty@gmail.com>
Bumps [tracing-subscriber](https://github.com/tokio-rs/tracing) from 0.3.19 to 0.3.20. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tokio-rs/tracing/releases">tracing-subscriber's releases</a>.</em></p> <blockquote> <h2>tracing-subscriber 0.3.20</h2> <p><strong>Security Fix</strong>: ANSI Escape Sequence Injection (CVE-TBD)</p> <h2>Impact</h2> <p>Previous versions of tracing-subscriber were vulnerable to ANSI escape sequence injection attacks. Untrusted user input containing ANSI escape sequences could be injected into terminal output when logged, potentially allowing attackers to:</p> <ul> <li>Manipulate terminal title bars</li> <li>Clear screens or modify terminal display</li> <li>Potentially mislead users through terminal manipulation</li> </ul> <p>In isolation, impact is minimal, however security issues have been found in terminal emulators that enabled an attacker to use ANSI escape sequences via logs to exploit vulnerabilities in the terminal emulator.</p> <h2>Solution</h2> <p>Version 0.3.20 fixes this vulnerability by escaping ANSI control characters in when writing events to destinations that may be printed to the terminal.</p> <h2>Affected Versions</h2> <p>All versions of tracing-subscriber prior to 0.3.20 are affected by this vulnerability.</p> <h2>Recommendations</h2> <p>Immediate Action Required: We recommend upgrading to tracing-subscriber 0.3.20 immediately, especially if your application:</p> <ul> <li>Logs user-provided input (form data, HTTP headers, query parameters, etc.)</li> <li>Runs in environments where terminal output is displayed to users</li> </ul> <h2>Migration</h2> <p>This is a patch release with no breaking API changes. Simply update your Cargo.toml:</p> <pre lang="toml"><code>[dependencies] tracing-subscriber = "0.3.20" </code></pre> <h2>Acknowledgments</h2> <p>We would like to thank <a href="http://github.com/zefr0x">zefr0x</a> who responsibly reported the issue at <code>security@tokio.rs</code>.</p> <p>If you believe you have found a security vulnerability in any tokio-rs project, please email us at <code>security@tokio.rs</code>.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tokio-rs/tracing/commit/4c52ca5266a3920fc5dfeebda2accf15ee7fb278"><code>4c52ca5</code></a> fmt: fix ANSI escape sequence injection vulnerability (<a href="https://redirect.github.com/tokio-rs/tracing/issues/3368">#3368</a>)</li> <li><a href="https://github.com/tokio-rs/tracing/commit/f71cebe41e4c12735b1d19ca804428d4ff7d905d"><code>f71cebe</code></a> subscriber: impl Clone for EnvFilter (<a href="https://redirect.github.com/tokio-rs/tracing/issues/3360">#3360</a>)</li> <li><a href="https://github.com/tokio-rs/tracing/commit/3a1f571102b38bcdca13d59f3c454989d179055d"><code>3a1f571</code></a> Fix CI (<a href="https://redirect.github.com/tokio-rs/tracing/issues/3361">#3361</a>)</li> <li><a href="https://github.com/tokio-rs/tracing/commit/e63ef57f3d686abe3727ddd586eb9af73d6715b7"><code>e63ef57</code></a> chore: prepare tracing-attributes 0.1.30 (<a href="https://redirect.github.com/tokio-rs/tracing/issues/3316">#3316</a>)</li> <li><a href="https://github.com/tokio-rs/tracing/commit/6e59a13b1a7bcdd78b8b5a7cbcf70a0b2cdd76f0"><code>6e59a13</code></a> attributes: fix tracing::instrument regression around shadowing (<a href="https://redirect.github.com/tokio-rs/tracing/issues/3311">#3311</a>)</li> <li><a href="https://github.com/tokio-rs/tracing/commit/e4df76127538aa8370d7dee32a6f84bbec6bbf10"><code>e4df761</code></a> tracing: update core to 0.1.34 and attributes to 0.1.29 (<a href="https://redirect.github.com/tokio-rs/tracing/issues/3305">#3305</a>)</li> <li><a href="https://github.com/tokio-rs/tracing/commit/643f392ebb73c4fb856f56a78c066c82582dd22c"><code>643f392</code></a> chore: prepare tracing-attributes 0.1.29 (<a href="https://redirect.github.com/tokio-rs/tracing/issues/3304">#3304</a>)</li> <li><a href="https://github.com/tokio-rs/tracing/commit/d08e7a6eea1833810ea527e18ea03b08cd402c9d"><code>d08e7a6</code></a> chore: prepare tracing-core 0.1.34 (<a href="https://redirect.github.com/tokio-rs/tracing/issues/3302">#3302</a>)</li> <li><a href="https://github.com/tokio-rs/tracing/commit/6e70c571d319a033d5f37c885ccf99aa675a9eac"><code>6e70c57</code></a> tracing-subscriber: count numbers of enters in <code>Timings</code> (<a href="https://redirect.github.com/tokio-rs/tracing/issues/2944">#2944</a>)</li> <li><a href="https://github.com/tokio-rs/tracing/commit/c01d4fd9def2fb061669a310598095c789ca0a32"><code>c01d4fd</code></a> fix docs and enable CI on <code>main</code> branch (<a href="https://redirect.github.com/tokio-rs/tracing/issues/3295">#3295</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tokio-rs/tracing/compare/tracing-subscriber-0.3.19...tracing-subscriber-0.3.20">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/FuelLabs/forc-wallet/network/alerts). </details> <!-- CURSOR_SUMMARY --> --- > [!NOTE] > <sup>[Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) is generating a summary for commit 8d33ac146769ff325d437398139e3a94e22b6136. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Joshua Batty <joshpbatty@gmail.com>
…tions-upload-release-asset (#224) GitHub's actions/upload-release-assets is no longer maintained and seems to repeatedly break (e.g. SSLV3_ALERT_BAD_RECORD_MAC), so I suggest moving to a highly active and up to date runner. edit: Replace the deprecated actions/upload-release-asset@v1 with softprops/action-gh-release@v2 to fix reliability issues with release asset uploads. Changes: - Use softprops/action-gh-release@v2 instead of actions/upload-release-asset@v1 - Add conditional check for tag releases - Simplify configuration by using files parameter - Remove unnecessary environment variables and asset content type This resolves the issue where the old action was no longer maintained and repeatedly breaking the release process. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Switch release asset uploads to softprops/action-gh-release@v2 with tag-only gating and simplified inputs. > > - **CI Workflow (`.github/workflows/ci.yml`)**: > - **Release asset upload (build-release job)**: > - Replace `actions/upload-release-asset@v1` with `softprops/action-gh-release@v2`. > - Add condition `if: github.ref_type == 'tag'` to gate uploads on tags. > - Simplify inputs: use `with.files: ${{ env.ZIP_FILE_NAME }}`; remove `upload_url`, `asset_*` fields, extra `env` token, and content type. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 8dceff6ca44184221efb3aabf965996b568077a9. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: JoshuaBatty <joshpbatty@gmail.com>
Update CI workflow to support Tokio-style monorepo releases where each
workspace member can be released independently using {crate-name}-{version}
tags.
Changes:
- Update verify_tag.sh to parse crate name from tag format
- Remove hardcoded Cargo.toml path from CI workflow
- Add RELEASING.md with release process documentation
Make the build-release job fully generic to support multiple workspace members without hardcoded crate names. The CI now extracts the crate name from the tag and uses it throughout the build process. Changes: - Extract crate name from tag in build-release job - Replace all hardcoded 'forc-wallet' references with dynamic variable - Remove v prefix handling (following Tokio convention) - Update artifact naming to use full tag name - Enhance RELEASING.md with detailed CI workflow explanation
- Disable changelog-incompatible rules in .markdownlint.yaml - Add trailing newline to README.md - Add blank lines around lists in RELEASING.md
5 tasks
JoshuaBatty
added a commit
that referenced
this pull request
Dec 8, 2025
Migrates forc-tracing and forc-crypto from the sway repository into the forc monorepo, continuing the toolchain consolidation effort from sway-rfcs#49. Changes New Workspace Members forc-tracing - Tracing utility crate (library-only, no binary) forc-crypto - Cryptographic utilities CLI tool Uses path dependency for forc-tracing (within monorepo) Uses crates.io forc-util for cli_examples! macro CI Updates Added binary detection to skip build/strip/upload steps for library-only crates Library crates still publish to crates.io but don't produce release binaries Test Fixes Added serial_test to prevent race conditions in forc-tracing tests Tests share global JSON_MODE_ACTIVE state requiring serial execution Post-merge Tasks Cut releases: forc-tracing-0.71.0, forc-crypto-0.71.0 Update fuelup to fetch forc-crypto from this repo Update fuel.nix with version routing for forc-crypto Update sway-nightly-binaries to build forc-crypto from here Remove forc-tracing and forc-crypto from sway repo Related RFC: Tooling Monorepo sway-rfcs#49 forc-wallet migration (pattern reference): feat: migrate forc-wallet repository to forc monorepo #1 fuelup forc-wallet support: feat: enable forc-wallet migration from standalone repo to forc monorepo fuelup#807 fuel.nix forc-wallet support: feat: enable forc-wallet migration from standalone repo to forc monorepo fuel.nix#204
5 tasks
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
This PR migrates the entire
forc-walletrepository into theforcmonorepo as part of the Fuel toolchain consolidation effort outlined in sway-rfcs#49.FuelLabs/forc-wallet(279+ commits)v0.15.2→forc-wallet-0.15.2Changes
Repository Structure
--allow-unrelated-historiesforc-walletas the first memberRelease Pipeline (Tokio-style)
{crate-name}-{version}(e.g.,forc-wallet-0.16.0)FuelLabs/publish-cratesactionRELEASING.mdwith complete release processKey Features
forc-plugin) requires zero CI changes{crate-name}-{version}-{platform}.tar.gzPost-merge Tasks
forc-wallet-0.16.0) to verify pipelineRelease Instructions
After merge, create the first release:
forc-wallet-0.16.0forc-wallet/CHANGELOG.mdThe CI will automatically:
forc-wallet0.16.0 to crates.ioSee RELEASING.md for detailed instructions.
Related
Note
Moves forc-wallet into the forc monorepo, adds a workspace and generic tag-based CI/release pipeline with cross-platform binaries and supporting tooling/docs.
Cargo.tomlwith memberforc-wallet.rust-toolchain.toml(Rust1.90.0).forc-walletcrate (forc-wallet/**) including CLI (src/main.rs), library modules, tests,Cargo.toml(v0.16.0),README.md, andCHANGELOG.md..github/workflows/ci.ymlwith fmt/clippy/check/test matrix, coverage (cargo-llvm-cov), Slack notifications, and release jobs (publish to crates.io, build/strip/upload binaries for Linux x86_64/aarch64 and macOS x86_64/aarch64).cargo-auditandmarkdown-lintworkflows.scripts/verify_tag.shto validate{crate}-{version}tags againstCargo.toml.RELEASING.mddescribing Tokio-style tag format{crate-name}-{version}and release steps.README.mdand repository configs (.gitignore,.markdownlint.yaml).Written by Cursor Bugbot for commit 6d0715c. This will update automatically on new commits. Configure here.