Following the standard install instructions should lead you to have nearly everything you need to commence development. The only additions to this are:
- To be able to submit pull requests, you will need to fork this repository first.
- The build process must be tested with Go 1.11 to ensure backward compatibility. This version can be installed as per the [Go install documentation](https://golang.org/doc/install#extra_versions). Check that changes build with this version using `make test`.
- Linting must be performed on new changes using `gofmt` and [golangci-lint](https://github.com/golangci/golangci-lint)
## How changes are made
A stable version of Bombadillo is kept in the default branch, so that people can easily clone the repo and get a good version of the software.
New changes are introduced to the **develop** branch.
Changes to the default branch occur as part of the software release process. This usually occurs when:
- there are a set of changes in **develop** that are good enough to be considered stable.
- an urgent issue is identified in the stable version that requires immediate changes
### Process for introducing a new change
Please refer to our [notes on contributing](README.md#contributing) to get an understanding of how new changes are initiated, the type of changes accepted and the review process.
1. Create a new feature branch based on the **develop** branch.
1. Raise a pull request (PR) targeting the **develop** branch.
Each new change added to **develop** should increment the patch number. For example, version 2.0.1 would become 2.0.2. After the change is merged from the feature branch to **develop**:
```shell
# ensure everything is up to date and in the right place
1. The version number in the VERSION file is incremented. This change is committed to the default branch.
1. The **develop** branch is merged to the default branch.
1. The commands from the New Changes section are followed, but the final command includes an annotation: `git tag 2.1.0 abdef -a "This version adds several new features..."`
1. Release information should also be added to the [tildegit releases page](https://tildegit.org/sloum/bombadillo/releases).