Skip to content

Latest commit

 

History

History
80 lines (53 loc) · 5.77 KB

CONTRIBUTING.md

File metadata and controls

80 lines (53 loc) · 5.77 KB

Contributing to Madd2

First, thank you for your interest in contributing to Madd! 🎉

The following is a set of guidelines we follow to ensure the quality and organization of work being added to the project. These are guidelines, not rules, and best judgement should be used when interpreting them. Don't like something in here? Feel free to propose changes in a pull request.

How Can I Contribute?

Bug Hunting 🐛

This section guides you through the bug reporting process. Following these guidelines should help maintainers understand your report, reproduce the behavior, and hopefully work towards a fix. Madd2 uses Github Issues to track outstanding bugs.

Before creating a bug report, please check to see if a similar issue has already been posted. If it has and is still open, add a comment instead of creating a new issue. This helps us gauge the impact of the problem in one filing.

If you find a Closed issue similar to your bug, open a new issue and link the original issue within the description.

When submitting a bug report, please use the bug report issue template and fill out all sections the best you can.

Suggesting Enhancements 📝

This section guides through the enhancement suggestion process. Madd2 uses Github Issues to track these suggestions.

Before creating a suggestion, please check to see if a similar enchantment has already been posted. If it has, add a comment instead of creating a new suggestion.

When submitting a suggestion, please use the enhancement suggestion issue template and fill out all sections the best you can.

Your First Code Contributions 🍎

Unsure where to start? You could start be looking through the good first issue and help wanted issues:

  • Good First Issue - issues that should require minimal additions to complete. A good place to start when getting used to the project codebase/open source ecosystem.
  • Help Wanted Issue - issues that are a bit more involved than good first issue issues, but are in need of additional help.

Pull Requests 🔥

This section guides you through the process of making a successful code contribution to Madd! The process has several goals:

  • Maintain or improve the codebase's quality
  • Fix problems that important to users
  • Engage the interests of the community
  • Enable a sustainable system for maintainers to review possible contributions

Please follow these steps to have your pull request considered:

  1. Submit a pull request with a clear description of all your changes. Please mention any posted issues your changes are directly inspired by.
  2. Follow the styleguides
  3. Once submitted, verify all status checks are passing.

Styleguide and Linting

Our codebase roughly follows the Google C++ Style Guide. Madd has style conforming automated via clang-format, and can be manually run using make format within your build environment. Ensure all additions have been formatted before submitting your pull request.

Linting is managed by clang-tidy, which can be run via make tidy from your build environment. For automated lint error fixing, use make fix. Ensure no linting errors are present before submitting your pull request.

Status Checks

Upon submitting your pull request or pushing a new commit to your pull request, a validation pipeline will test the following aspects of your submission:

  • All code conforms to the present style guide.
  • All code conforms to the present linting checks.
  • Madd can be built with clang.
  • All ctest unit tests pass.

What happens if a status check fails?

Your pull request can not be considered by maintainers unless all status checks pass. Please fix any issues in your contribution or reach out if you believe your pull request is being blocked by any outstanding bugs.

Additional Notes

Issue and PR Labels

This section lists the labels we use to help track and manage issues and pull requests.

Label Name 🔍 Description
bug search Confirmed bug or reports that are likely to be bugs
documentation search Improvements to any type of documentation
duplicate search Issues that are duplicates of others (i.e. already posted issues)
enhancement search Feature/Improvement requests
good first issue search Less complex issues that would be great first issues to work on for new contributors.
help wanted search The Madd core team would appreciate help from the community in resolving these issues
invalid search Issues that aren't valid (e.g. user errors)
more info needed search More information is needed before moving forward with this issue
question search Questions related to Madd development
wontfix search The Madd core team has decided not to fix these issues for now