FR: Detect contracts outside the `contracts/` directory using `Cargo.toml`
- Dominant language
- Rust
- Stars
- 145
- Forks
- 68
- PR merge metrics
- No merged PRs in 30d
Description
## Description
Currently, the [optimizer assumes](https://github.com/CosmWasm/optimizer/blob/de8e0bf7be26101327caa55c44f029073104de06/bob_the_builder/src/lib.rs#L64) that all contracts in a workspace are located in the contracts/ directory. However, this is not always the case, especially with larger libraries such as [ibc-rs](https://github.com/cosmos/ibc-rs). For instance, `ibc-rs` has its `07-tendermint` contract in `./ibc-clients/ics07-tendermint/cw-contract`, which is not detected by the optimizer. It would be beneficial to define a build process that specifies the contract packages in `Cargo.toml`.
## Proposal: Look for `[package.metadata.optimizer]`
Currently, the optimizer only iterates over `Cargo.toml` files of the packages in the contracts/ directory. While retaining this behavior, extend the optimizer to iterate over all `Cargo.toml` files of all packages in the workspace and treat the packages that have `[package.metadata.optimizer]` as contracts to be built.
This enhancement will provide greater flexibility and support for projects with different directory structures, ensuring all relevant contracts are detected and optimized.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.