Add support for overriding individual forc plugins via versions or local paths in `fuel-toolchain.toml`
- Dominant language
- Rust
- Stars
- 282
- Forks
- 150
- Avg merge
- 2d 17h
- Merged PRs (30d)
- 2
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:
```toml
[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 path
```
## Current 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.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.