Hi! Thanks for your interest in contributing to the Puppet Development Kit!
Community contributions are essential for keeping Puppet great. We simply can't access the huge number of platforms and myriad configurations for running Puppet. We want to keep it as easy as possible to contribute changes that get things working in your environment. There are a few guidelines that we need contributors to follow so that we can have a chance of keeping on top of things.
We accept pull requests for bug fixes and features where we've discussed the approach in an issue and given the go-ahead for a community member to work on it. We'd also love to hear about ideas for new features as Github Discussion.
Please do:
- Open an issue if things aren't working as expected.
- Open a Github Discussion to propose a significant change.
- Open a pull request to fix a bug.
- Open a pull request to fix documentation about a command.
- Open a pull request for any issue labelled help wanted or good first issue.
Prerequisites:
- Go 1.16+
To build PRM, run the following command:
These build scripts produce a binary for the current platform only. These scripts are meant for local testing. We use a Github Action to release this product.
> # on nix
> ./build.sh
# on windows
> ./build.ps1
To run the new binary:
> ./prm [command]
To test the PRM command, run the following command:
> go test ./...
To run the acceptance tests, ensure that you have built the PRM binary using the build scripts, then:
TEST_ACCEPTANCE=true go test -count=1 -v github.com/puppetlabs/prm/acceptance
> go run main.go
Prerequisites:
- Go 1.16+
- goreleaser 0.16+
To build the PRM for more than your current platform, use GoReleaser
:
> goreleaser --snapshot --skip-publish --rm-dist
This will ouput a set of binaries in the dist
folder.
- Create a new branch
git checkout -b my-branch-name
- Make you change, add tests, and ensure tests pass
- Make sure your commit messages are in the proper format.
If the commit addresses an issue filed in the project, start the first line of the commit with the prefix
GH-
and the issue number in parentheses(GH-111)
. After leave a detailed explanation of your change, so a person in the future can understand what your work does. - Submit a pull request (i.e. using the Github commandline:
gh pr create --web
)
For changes of a trivial nature, it is not always necessary to create a new ticket. In this case, it is appropriate to start the first line of a commit with one of (docs), (maint), or (packaging) instead of a ticket number.