CosmWasm / CosmWasm/optimizer

FR: Detect contracts outside the `contracts/` directory using `Cargo.toml`

Open
#157 0 comments 1 reaction 0 assignees View on GitHub
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.