First of all, thank you for contributing to testcontainers-rs-modules-community. All contributions are welcome!
- Consider giving a star to this repo and become one of our stargazers
- Consider joining our Rust channel within the TestContainers Slack Workspace
- Check if there is an existing issue first.
- You may also want to check bugs in testcontainers-rs library when applicable
- When in doubt whether you've found new issue/bug or not, consider discussing it with our community on Slack
- Check if there is an existing issue, since your request might be tracked there.
- Feel free to reach out to our community to clarify your use case!
- Ensure you have an up-to-date Rust toolchain, with
clippy
andrustfmt
components installed - Install the cargo-hack subcommand (recommended)
- Fork this repository
- Optionally, if you need to run
Oracle
tests, you must setupOracle Client
, as indicated in the documentation of the Rust-oracle crate (note that ARM architecture is not supported, as there is no Oracle Database Free port for ARM chips)
- When extending/changing existing API, ensure that any new ones are tracked on rustdocs
- When fixing an issue, consider providing a new test case for it
Before adding a new module, it's recommended reviewing the
testcontainers-rs library
along with existing modules that are built on top of it! In addition, pay attention to our project conventions : public APIs
are exposed through mod.rs
files and conditionally compiled as Cargo features.
- Ensure you have a proper feature configuration on
Cargo.toml
when adding a new module - Ensure you have declared pinned versions of Docker image tags for your module
- Consider providing a
Default
trait implementation for yourTestContainer
struct when applicable - Consider also using the
Builder
pattern when yourTestContainer
accepts several different env vars! - Ensure you have added proper
rustdocs
reflecting the image reference (e.g. to docker-hub) and examples of how to use your APIs. - Ensure you have added tests exercising your module
- Consider also providing an example on how to use your module from an app
- Ensure you'll have a green build on your commits, for instance running some of our CI checks
cargo fmt --all -- --check
cargo clippy --all-features
cargo hack test --each-feature --clean-per-run
- Consider following conventional commits when adding commits (recommended)
- Raise your PR 🔥
- Ensure you follow the conventional commits in your Pull Request title
- Don't forget to link an existing issue when applicable (fixing it or just mentioning it)
Please note that all code contributed by you will follow the MIT license, without any additional terms.