Skip to content

Latest commit

 

History

History
72 lines (52 loc) · 3.99 KB

CONTRIBUTING.md

File metadata and controls

72 lines (52 loc) · 3.99 KB

Thanks for wanting to contribute! ⛄

Feel free to create issues or make pull requests, we'll try to quickly review them.

If you need assistance, you can join the #cobalt channel on irc.mozilla.org or the Gitter chat Gitter

We want you to feel safe and welcome and will enforce the The Rust Code of Conduct on all communication platforms of this project. Please contact @johannhof for questions or in cases of violation.

Issues

This project aims to be a Rust implementation of Liquid.

  • Notice that we deviate from shopify/liquid? Please, open an issue if there isn't an existing one
  • Want a new tag or filter? Check for an existing issue and open one if needed.

Some helpful pieces of information when reporting issues

  • liquid-rust version
  • rust version
  • OS and version

Pull Requests

Project Ideas

If you're looking for things to do check out the open issues, especially those with the easy and help wanted flags. Or take a grep through all TODO comments in the code and feel free to help us out there!

Best Practices

We appreciate your help as-is. We'd love to help you through the process for contributing. We have some suggestions to help make things go more smoothly.

🌈 Here's a checklist for the perfect pull request:

  • Make sure existing tests still work by running cargo test locally.
  • Add new tests for any new feature or regression tests for bugfixes.
  • Install Clippy and run rustup run nightly cargo clippy to catch common mistakes (will be checked by Travis)
  • Install Rustfmt and run cargo fmt to format your code (will also be checked by Travis)

For commit messages, we use Conventional style. If you already wrote your commits and don't feel comfortable changing them, don't worry and go ahead and create your PR. We'll work with you on the best route forward. You can check your branch locally with committed.

For new tags or filters, we recommend

  • Open an RFC Issue for discussing what the API should be. We'd like to avoid disrupting people once they start using a feature.
  • Consider incubating it in your code first to so it can be iterated on to find what works well.
  • Checkout prior art with Shopify's proprietary extensions or Jekyll's extensions.
  • Putting all non-standard features behind feature flags.

If you're interested in benchmarking your changes

  • Be sure to get some before and afters on the same machine
  • Rust nightly is required. You'll need to run rustup run nightly -- cargo bench

Hopefully we get this integrated into your CI process.

Releasing

Pre-requisites

  • Running cargo login
  • A member of ORG:Maintainers
  • Push permission to the repo
  • cargo-release

When we're ready to release, a project owner should do the following

  1. Update the changelog (see cargo release changes for ideas)
  2. Determine what the next version is, according to semver
  3. Run cargo release -x <level>