How To Contribute¶
There are three distinct types of contributions that this guide attempts to support. As such, there may be portions of this document that do not apply to your particular area of interest.
- Existing Code
- Add new features or fix bugs in the platform or existing type support projects.
- New Type Support
- Create a new project that adds support for a new content type to Pulp.
- Integrate some other project with Pulp, especially by using the event system and REST API.
For New Contributors¶
If you are interested in contributing to Pulp, the best way is to select a bug that interests you and submit a patch for it. We use Redmine for tracking bugs. Of course, you may have your own idea for a feature or bugfix as well! You may want to send an email to email@example.com or ask in the #pulp channel on freenode before working on your feature or bugfix. The other contributors will be able to give you pointers and advice on how to proceed. Additionally, if you are looking for a bug that is suitable for a first-time contributor, feel free to ask.
Pulp is written in Python. While you do not need to be a Python expert to contribute, it would be advantageous to run through the Python tutorial if you are new to Python or programming in general. Contributing to an open source project like Pulp is a great way to become proficient in a programming language since you will get helpful feedback on your code.
Some knowledge of git and GitHub is useful as well. Documentation on both is available on the GitHub help page.
Make sure that you choose the appropriate upstream branch.
Test your code. We ask that all new code has 100% coverage.
Please ensure that your code follows our style guide.
Please make sure that any new features are documented and that changes are reflected in existing docs.
Please squash your commits and use our commit message guidelines.
Make sure your name is in our AUTHORS file found at the root of each of our repositories. That way you can prove to all your friends that you contributed to Pulp!
- Developer Setup
- Advanced Vagrant
- Vagrant w/ PyCharm
- Provisioning Script
- Branching Model
- Creating Documentation
- New Features
- Building Instructions
- Getting Started
- Test Building Pulp and the plugins
- Updating Docs
- Testing the Build
- Signing the RPMS
- Publishing the Build