Follow these steps to make a contribution to any of CF open source repositories:
-
Ensure that you have completed our CLA Agreement: https://docs.cloudfoundry.org/concepts/contribute.html#cla.
-
Set your name and email (these should match the information on your submitted CLA)
git config --global user.name "Firstname Lastname" git config --global user.email "[email protected]"
The develop branch is where we do active development. Although we endeavor to keep the develop branch stable, we do not guarantee that any given commit will deploy cleanly.
The release-candidate branch has passed all of our unit, integration, smoke, & acceptance tests, but has not been used in a final release yet. This branch should be fairly stable.
The master branch points to the most recent stable final release.
At semi-regular intervals a final release is created from the release-candidate branch. This final release is tagged and pushed to the master branch.
Pushing to any branch other than develop will create problems for the CI pipeline, which relies on fast forward merges. To recover from this condition follow the instructions here.
-
Fork the repository on github
-
Update submodules (
./scripts/update
) -
Create a feature branch (
git checkout -b awesome_sauce
)
- Run the unit tests to ensure that your local environment is working
./scripts/test-unit
- Make changes on the branch:
- Adding a feature
- Add tests for the new feature
- Make the tests pass
- Fixing a bug
- Add a test/tests which exercises the bug
- Fix the bug, making the tests pass
- Refactoring existing functionality
- Change the implementation
- Ensure that tests still pass
- If you find yourself changing tests after a refactor, consider refactoring the tests first
-
Run the smoke-tests (update them if required).
-
Commit your changes (
git commit
)
- Small changes per commit with clear commit messages are preferred.
-
Push to your fork (
git push origin awesome_sauce
) -
Submit a pull request in github, selecting develop as the target branch.