We welcome pull requests for new features, application enhancements, bug fixes and documentation. We strongly encourage you to take some time to familiarise yourself with the project and its stated objectives. This will ultimately assist you in putting your proposed contribution in the appropriate context.
Here are some useful links to information that will aid in your understanding of the Nox.Generator project:
- Documentation for this project can be found here.
- Technical documentatation for Nox.Generator can be found here.
All contributions should address an open issue in the Nox.Generator repo.
Issues are typically labeled with Enhancement or Bug.
- Bugs are places where Nox.Generator is doing something that it was not designed to.
- Enhancements are suggestions to improve Nox.Generator by changing existing or adding new functionality.
If there is no existing issue tracking the change you want to make, then create one! PRs that don't get merged are often those that are created without any prior discussion with the team. An issue is the best place to have that discussion, ideally before the PR is submitted.
An issue is not required for simple non-code changes like fixing a typo in documentation. In fact, these changes can often be submitted as a PR directly from the browser, avoiding the need to fork and clone.
The typical workflow for contributing to Nox.Generator is outlined below. This is not a set-in-stone process, but rather guidelines to help ensure a quality PR that we can merge efficiently.
- Start by setting up your development environment so that you can build and test the code. Don't forget to create a fork for your work.
- Make sure all tests are passing. (This is typically done by running
test
at a command prompt.) - Choose an issue (see above), understand it, and comment on the issue indicating what you intend to do to fix it. This communication with the team is very important and often helps avoid throwing away lots of work caused by taking the wrong approach.
- Create and check out a branch in your local clone. You will use this branch to prepare your PR.
- Make appropriate code and test changes. Follow the patterns and code style that you see in the existing code. Make sure to add tests that fail without the change and then pass with the change.
- Consider other scenarios where your change may have an impact and add more testing. We always prefer having too many tests to having not enough of them.
- When you are done with changes, make sure all existing tests are still passing. (Again, typically by running
test
at a command prompt.) - Commit changes to your branch and push the branch to your GitHub fork.
- Go to the main Nox.Generator repo and you should see a yellow box suggesting you create a PR from your fork. Do this, or create the PR by some other mechanism.
- Wait for the feedback from the team and for the continuous integration (C.I.) checks to pass.
- Add and push new commits to your branch to address any issues.
The PR will be merged by a member of the Nox.Generator Team once the C.I. checks have passed and the code has been approved.