|
| 1 | +Contributing |
| 2 | +------------ |
| 3 | + |
| 4 | +normal |
| 5 | + |
| 6 | + 1. [Fork](http://help.github.com/forking/) puppet-TEMPLATE |
| 7 | + 2. Create a topic branch against the develop branch `git checkout develop; git checkout -b my_branch` |
| 8 | + 3. Push to your branch `git push origin my_branch` |
| 9 | + 4. Create a [Pull Request](http://help.github.com/pull-requests/) from your branch against the develop branch |
| 10 | + |
| 11 | +[git-flow](https://github.com/nvie/gitflow) |
| 12 | + |
| 13 | + 1. [Fork](http://help.github.com/forking/) puppet-TEMPLATE |
| 14 | + 2. Create a feature `git flow feature start my-feature` |
| 15 | + 3. Publish your featue `git flow feature publish my-feature` |
| 16 | + 4. Create a [Pull Request](http://help.github.com/pull-requests/) from your branch against the develop branch |
| 17 | + |
| 18 | +Testing |
| 19 | +------- |
| 20 | + |
| 21 | +Tests are written with [rspec-puppet](http://rspec-puppet.com/). CI is covered by [Travis CI](http://about.travis-ci.org/) and the current status is visible [here](http://travis-ci.org/echocat/puppet-TEMPLATE). |
| 22 | + |
| 23 | +To run all tests: |
| 24 | + |
| 25 | + bundle exec rake validate && bundle exec rake lint && bundle exec rake spec SPEC_OPTS='--color --format documentation' |
| 26 | + |
| 27 | +Branching |
| 28 | +--------- |
| 29 | + |
| 30 | +This repository is organized and maintained with the help of [gitflow](https://github.com/nvie/gitflow). Developers are encouraged to use it when working with this repository. |
| 31 | + |
| 32 | +We use the following naming convention for branches: |
| 33 | + |
| 34 | +* develop (during development) |
| 35 | +* master (will be or has been released) |
| 36 | +* feature/<name> (feature branches) |
| 37 | +* release/<name> (release branches) |
| 38 | +* hotfix/<name> (hotfix branches) |
| 39 | +* (empty version prefix) |
| 40 | + |
| 41 | +During development, you should work in feature branches instead of committing to master directly. Tell gitflow that you want to start working on a feature and it will do the work for you (like creating a branch prefixed with feature/): |
| 42 | + |
| 43 | + git flow feature start <FEATURE_NAME> |
| 44 | + |
| 45 | +The work in a feature branch should be kept close to the original problem. Tell gitflow that a feature is finished and it will merge it into master and push it to the upstream repository: |
| 46 | + |
| 47 | + git flow feature finish <FEATURE_NAME> |
| 48 | + |
| 49 | +Even before a feature is finished, you might want to make your branch available to other developers. You can do that by publishing it, which will push it to the upstream repository: |
| 50 | + |
| 51 | + git flow feature publish <FEATURE_NAME> |
| 52 | + |
| 53 | +To track a feature that is located in the upstream repository and not yet present locally, invoke the following command: |
| 54 | + |
| 55 | + git flow feature track <FEATURE_NAME> |
| 56 | + |
| 57 | +Changes that should go into production should come from the up-to-date master branch. Enter the "release to production" phase by running: |
| 58 | + |
| 59 | + git flow release start <VERSION_NUMBER> |
| 60 | + |
| 61 | +In this phase, only meta information should be touched, like bumping the version and update the history. Finish the release phase with: |
| 62 | + |
| 63 | + git flow release finish <VERSION_NUMBER> |
| 64 | + |
| 65 | +Versioning |
| 66 | +---------- |
| 67 | + |
| 68 | +This project is versioned with the help of the [Semantic Versioning Specification](http://semver.org/) using 0.0.1 as the initial version. Please make sure you have read the guidelines before increasing a version number either for a release or a hotfix. |
0 commit comments