-
Notifications
You must be signed in to change notification settings - Fork 150
Description
Description
Currently, #772 adds support for overriding main components (forc, fuel-core) with local paths in fuel-toolchain.toml. However, individual forc plugins (forc-doc, forc-lsp, forc-fmt, etc.) cannot be overridden independently - they always use the version from the base toolchain even when forc itself is overridden.
Expected Behavior
Users should be able to override individual forc plugins with either specific versions or local paths in a dedicated [plugins] section:
[toolchain]
channel = "mainnet"
[components]
forc = "0.67.2" # or "/path/to/local/forc"
fuel-core = "/path/to/local/fuel-core"
[plugins]
forc-doc = "0.68.1" # specific version
forc-lsp = "/path/to/local/forc-lsp" # local pathCurrent Behavior
- When forc is overridden, only the main forc binary uses the specified version/path
- All forc plugins (forc-doc, forc-lsp, forc-fmt, etc.) continue using versions from the base toolchain
- No mechanism exists to override individual plugin versions or paths
Use Case
- Developers working on specific forc plugins need to test their local builds
- Teams need to pin specific plugin versions for compatibility while using a different forc version
- Testing plugin compatibility across different version combinations
Design Decision
Separating plugins into their own [plugins] section provides better semantic clarity and makes it clear that these are forc specific sub-components rather than standalone toolchain components. The section supports the same ComponentSpec flexibility as [components], allowing both version strings and local paths.