- Visit the PuppetDB board on Trello
- Make sure you have a Redmine account
- Make sure you have a GitHub account
- Submit a ticket for your issue, assuming one does not already exist.
- Clearly describe the issue including steps to reproduce when it is a bug.
- Make sure you fill in the earliest version that you know has the issue.
- Fork the repository on GitHub
- Create a branch off of the branch you want to base off of.
- This is usually the master branch.
- Only target release branches if you are certain your fix must be on that branch.
- Make commits of logical units.
- Check for unnecessary whitespace with "git diff --check" before committing.
- Make sure your commit messages are in the proper format.
(#Ticket Number) What you are changing with this commit
Describe what happened before. Describe the change in behavior that this
commit makes.
- Make sure you have added the necessary tests for your changes.
- Run all the tests to assure nothing else was accidentally broken.
- Sign the Contributor License Agreement.
- Push your changes to a topic branch in your fork of the repository.
- Submit a pull request to the repository in the puppetlabs organization.
- Update your Redmine ticket to mark that you have submitted code.
- When making any changes that will modify the schema of the underlying database, great caution should be exercised.
- Except in very rare circumstances (crucial bug fixes or performance improvements), these types of changes should only be made in the master branch. Older release branches should not introduce database schema changes unless absolutely necessary.
- In these rare circumstances where a schema change must be made against more
than one branch of the code, see the notes at the beginning of the file
src/com/puppetlabs/puppetdb/scf/migrate.clj
on this subject. Exercise extreme caution to make sure that you are adhering to the guidelines therein.