We're glad you're interested in helping with the NUnit documentation! This guide is a brief intro to the project and some suggestions.
Rule number 1: When in doubt, reach out! There's no harm in opening an issue to have a discussion.
Please submit a docs issue on our GitHub issues page at https://github.com/nunit/docs/issues/new.
We'll do our best to work with you and help you, whatever the issue is. For the best possible results:
- Try to make your issue as specific as possible
- Tell us what your expectation was of what should happen, as well as what actually happened. Lots of issues can be resolved by understanding someone's expectations.
That's great! We love to hear feedback on how we can improve things.
Please know, however, that we may not be able to immediately implement your ideas or suggestions. OSS work is sometimes limited by time and other constraints.
We suggest submitting an issue with the idea or improvement so that we can discuss it first. At that point, assuming we agree it's a good fit, we will attempt to implement it, or guide you to help you do so within your own pull request(s).
So you've got some docs you'd like to contribute to the project. First off -- Thank you! It means a lot to us that you'd take your time to help improve this project.
We try to avoid being strict about accepting PRs because we value contributions from others, but some general guidelines are below. If you are unsure about any of the steps to contribute, just ask -- we're happy to help.
- You should probably submit an issue before beginning a pull request. This makes sure that we have a good heads up that you want to contribute, and also makes sure that if we don't think the idea is a good fit, you don't spend time writing docs only to have the PR rejected later.
- We suggest creating a pull request early in the process and placing
WIP
orIn Progress
in the title of the pull request (you can edit it later). This way, as you add changes, we can see the progress, and might be able to jump in to help if we see things going off the rails. This one's your call, though; do whatever suits you. - Try to make many small commits, with notes, at each step of the way. This will help us understand your thought process when we review the PR. We'll squash these changes at the end of the process, so no worries about being verbose throughout.
- Similarly, don't worry about pre-squashing your changes for us. We'll use Github's functionality at the end of the PR to do that when accepting it.
- Before asking for a review or declaring the PR to be ready, make sure the CI build passes. You'll receive updates on this as you go, so the status at any given time should hopefully be clear.
There are a few ways to contribute. Here's a video showing them, as of January 2023:
- From the NUnit docs site, you can click
Improve This Document
to take you to the markdown file for the page you're viewing. - From there, you can click the edit icon to edit the text.
- Once you've made your changes, you can click
Commit These Changes
which will guide you through creating a branch and pull request to submit the change to us.
Once the PR is submitted, our build will run. If there are any spellcheck issues or markdown linting issues, you'll receive an e-mail with the failures. No worries -- we'll help you out.
If you're familiar with OSS and GitHub, you can fork the repository, check it out, make a branch, and submit any changes. Our build process will pick up if there are spelling or markdown issues and we can work together to address them in the PR.
You can open the repository in GitHub Codespaces. This will open an instance of VS Code, in a browser window, with all of the extensions we use installed. You'll get:
- Syntax highlighting for spelling and markdown issues
- Auto-formatting on save according to our standards
- Simple command aliases in the terminal to cover most folks' workflows:
spellcheck
: Check for spelling errors in docslint
: Markdown lintingbuild
: Use docfx to build siteserve
: Build with docfx but also serve the generated siteapidocs
: If needed, downloads the latest NUnit release to extract it to the right place so that the API documentation can generate. (This happens automatically upon startup)snippets
: Builds the snippets projects to ensure they work.
You can check out the codebase on your local machine and open it with VSCode. If you have Docker installed, VS Code will prompt you to reopen within a container. It will build the same container that Codespaces above uses, and you'll have the same functionality available to you.
That's a common feeling, especially if you're new to open source or making contributions. If you haven't heard a term like "pull request" before, don't worry -- we've got you covered. Let us know if you'd like to take a pass at making a change, and we'll help you along the way.
See the documentation in the README.md file.