Note: This repo has no real content, other than this README. Do not file issues or comments here. It simply mirrors our beginner friendly issues to make them discoverable. This guide should help you get started making your first PR!
Puppet uses Jira for most of our issue tracking. This has the unfortunate side effect that the Hacktoberfest filters won't pick them up. This repository mirrors issues so that you can find them. You should use the Jira links to get back to the actual ticket to find more information about it, participate in discussions, or to file your PR.
When you see a Hacktoberfest issue that looks intriguing and within your skillset, you'll want to follow it back to the original Jira ticket. That will have any further discussion and links to other background tickets or other information. You'll use the project name to identify the repository to work in. For example:
Jira Project | Github Repository |
---|---|
PUP |
puppetlabs/puppet |
FACT |
puppetlabs/facter |
PDK |
puppetlabs/pdk |
puppetlabs/pdk-templates |
|
rodjek/rspec-puppet |
|
rodjek/puppet-lint |
|
SERVER |
puppetlabs/puppetserver |
PDOC |
puppetlabs/puppet-strings |
PDB |
puppetlabs/puppetdb |
RK |
puppetlabs/r10k |
TK |
puppetlabs/trapperkeeper |
MODULES |
various repositories named puppetlabs/puppetlabs-<modulename> |
As you're getting into the codebase, you might run into things that don't make sense. Or you might need a little help understanding the architecture, or the execution model. In any case the community is here to help you out!
- Puppet uses Slack for community interactions.
- Sign up for an account
- Some interesting channels:
- Google Group mailing lists:
- Check out our Office Hours schedule and see if any sessions match up with the topic you're struggling with.
- Make sure you have a Jira account.
- You'll need this to participate in issue discussions.
- Make sure you have a GitHub account.
- You'll need this to make the pull request.
- Make your code changes:
- Fork the repository on GitHub.
- Create a topic branch in your fork from the
master
branch.git checkout -b <a_name_for_your_contribution> master
- Please don't work directly on the
master
branch.
- Make commits of logical and atomic units. This means that the commit contains an entire fix and nothing but that fix (and any docs/tests/etc that go along with it).
- Check for unnecessary whitespace with
git diff --check
before committing. - Make sure your commit messages are in the proper format. See example below.
(PUP-1234) Make the example in CONTRIBUTING imperative and concrete Without this patch applied the example commit message in the CONTRIBUTING document is not a concrete example. This is a problem because the contributor is left to imagine what the commit message should look like based on a description rather than an example. This patch fixes the problem by making the example concrete and imperative. The first line is a real-life imperative statement with a ticket number from our issue tracker. The body describes the behavior without the patch, why this is a problem, and how the patch fixes the problem when applied.
- Make sure you have added the necessary tests for your changes. See the quickstart guide if you need help getting started with this.
- Sign the Contributor License Agreement.
- Commit and push your tested code changes to your topic branch in your fork of the repo.
- Submit a pull request to the parent repository.
- Update the Jira ticket to indicate that you're ready for it to be reviewed.
- Status:
Ready for Merge
. - Include a link to the pull request in the ticket.
- If feedback is given then make sure to update and address the feedback. Pull requests may be closed if there is no response.
- Status:
This document is streamlined to cover the common use case of the beginner friendly issues only. It doesn't cover other edge cases, such as targeting a release branch, all-in-one vendor packaging, or any other advanced use cases. Please see the complete CONTRIBUTING.md for more information.