Skip to content

Latest commit

 

History

History
119 lines (80 loc) · 3.84 KB

CONTRIBUTING.md

File metadata and controls

119 lines (80 loc) · 3.84 KB

Contributing

Filing an Issue

If you are trying to use cargo-generate and run into an issue- please file an issue! We'd love to get you up and running, even if the issue you have might not be directly related to the code in cargo-generate. This tool seeks to make getting a project in Rust easy to start, so any sorts of feedback on usability, usecases, or other aspects of this general problem space are welcome!

When filing an issue, do your best to be as specific as possible. Include the version of cargo you are using (cargo --version), the version of Rust you are using (rustc --version) and your operating system and version. The faster was can reproduce your issue, the faster we can fix it for you!

Testing your code

Unit tests

After writing your patch, or finishing an awesome feature, make sure that your code does not collides with the existing code, in executing the unit tests.

To execute the unit tests, we will use the test feature included in cargo:

cargo test

cargo test will execute the unit tests included in the tests directory. If all the lights are green, you can then validate the manual tests.

Manual tests

For complex issues, and solutions, we did not created unit tests yet. Otherwise, we have manual tests in order to check if everything is ok.

For example, to test if your code does not collides with the solution of the issue #83, you have to run those tests locally:

1. Clone an existing template, without any git submodule, locally

You can take one at the Templates page. For example:

cargo generate --git https://github.com/rustwasm/wasm-pack-template

Once you tested the project has been correctly cloned and set, please to do the same with a template that contains git submodules.

2. Clone an existing template, with at least one git submodule, locally

For example:

cargo generate --git https://github.com/k0pernicus/cargo-template-test-submodule

Please check that the project has been correctly cloned and set, and check if the repository contains initialized submodules.

Your ideas/contributions are welcome to create automated tests for this :)

Submitting a PR

If you are considering filing a pull request, make sure that there's an issue filed for the work you'd like to do. There might be some discussion required! Filing an issue first will help ensure that the work you put into your pull request will get merged :)

Before you submit your pull request, check that you have completed all of the steps mentioned in the pull request template. Link the issue that your pull request is responding to, and format your code using rustfmt.

Configuring rustfmt

Before submitting code in a PR, make sure that you have formatted the codebase using rustfmt. rustfmt is a tool for formatting Rust code, which helps keep style consistent across the project. If you have not used rustfmt before, here's how to get setup:

1. Use Stable Toolchain

Use the rustup override command to make sure that you are using the stable toolchain. Run this command in the cargo-generate directory you cloned.

rustup override set stable

2. Add the rustfmt component

Install the most recent version of rustfmt using this command:

rustup component add rustfmt --toolchain stable

3. Running rustfmt

To run rustfmt, use this command:

cargo fmt

Conduct

We expect everyone who participates in this project in anyway to be friendly, open-minded, and humble. We have a Code of Conduct, and expect you to have read it. If you have any questions or concerns, feel free to reach out to Ashley Williams, [email protected].