Warewulf is an open source project, meaning we have the challenge of limited resources. We are grateful for any support that you can offer. Helping other users, raising issues, helping write documentation, or contributing code are all ways to help!
This is a huge endeavor, and your help would be greatly appreciated! Post to online communities about Warewulf, and request that your distribution vendor, service provider, and system administrators include Warewulf for you!
Many of our users come to Slack for quick help with an issue. You can find us at HPCng.
For general bugs/issues, you can open an issue at the GitHub repo. However, if you find a security related issue/problem, please email HPCng directly at firstname.lastname@example.org. More information about the HPCng security policies and procedures can be found here.
We use the traditional GitHub Flow to develop. This means that you fork the main repo, create a new branch to make changes, and submit a pull request (PR) to the master branch.
To contribute to Warewulf, you should obtain a GitHub account and fork the Warewulf repository. Once forked, clone your fork of the repo to your computer. (Obviously, you should replace
your-username with your GitHub username.)
Branches are a way of
isolating your features from the main branch. Given that we’ve just cloned the
repo, we will probably want to make a new branch from master in which to work on
our new feature. Lets call that branch
You can always check which branch you are in by running
On your new branch, go nuts! Make changes, test them, and when you are happy commit the changes to the branch:
This commit message is important - it should describe exactly the changes that you have made. Good commit messages read like so:
close #10 and
fix #2 are referencing issues that are posted on the upstream repo where you will direct your pull request. When your PR is merged into the master branch, these messages will automatically close the issues, and further, they will link your commits directly to the issues they intend to fix. This will help future maintainers understand your contribution, or (hopefully not) revert the code back to a previous version if necessary.
When you are done with your commits, you should push your branch to your fork (and you can also continuously push commits here as you work):
Note that you should always check the status of your branches to see what has been pushed (or not):
Once you have pushed your branch, then you can go to your fork (in the web GUI on GitHub) and submit a Pull Request. Regardless of the name of your branch, your PR should be submitted to the
main branch. Submitting your PR will open a conversation thread for the maintainers of Warewulf to discuss your contribution. At this time, the continuous integration that is linked with the code base will also be executed. If there is an issue, or if the maintainers suggest changes, you can continue to push commits to your branch and they will update the Pull Request.
Cloning the repo will create an exact copy of the Warewulf repository at that moment. As you work, your branch may become out of date as others merge changesinto the upstream master. In the event that you need to update a branch, you will need to follow the next steps: