github.com/hyperledger/burrow@v0.34.5-0.20220512172541-77f09336001d/docs/developers.md (about) 1 # Developers Guide 2 3 ## Prerequisites 4 5 - [Go](https://golang.org/doc/install) (Version >= 1.11) 6 - [golint](https://github.com/golang/lint) 7 - [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) 8 - [protoc](http://google.github.io/proto-lens/installing-protoc.html) (libprotoc 3.7.1) 9 10 Please also refer to our [contributing guidelines](https://github.com/hyperledger/burrow/blob/main/.github/CONTRIBUTING.md). 11 12 ## Building 13 14 Statically build the burrow binary with `make build` (output in `./bin`) or install to `${GOPATH}/bin` with `make install`. 15 16 ## Testing 17 18 Before submitting a PR, after making any changes, run `make test` to ensure that the unit tests pass and `make test_integration` 19 for integration tests. If there are any formatting problems, try to run `make fmt` or `make fix`. 20 21 ## gRPC and Protobuf 22 23 Install protoc and run `make protobuf_deps`. If you make any changes to the protobuf specs, run `make protobuf` to re-compile. 24 25 ## Releasing 26 27 * First of all make sure everyone is happy with doing a release now. 28 * Update project/history.go with the latest releases notes and version. Run `make CHANGELOG.md NOTES.md` and make sure this is merged to main. 29 * On the main branch, run `make ready_for_pull_request`. Check for any modified files. 30 * Once main is update to date, switch to main locally run `make tag_release`. This will push the tag which kicks of the release build. 31 * Optionally send out email on hyperledger burrow mailinglist. Agreements network email should be sent out automatically. 32 33 ## Proposals 34 35 ### Architecture Decision Records (ADRs) 36 37 ADRs describe standards for the Hyperledger Burrow platform, including core protocol specifications, and client APIs. 38 39 ### Contributing 40 41 1. Review [ADR-1](ADRs/adr-1.md). 42 2. Fork the repository by clicking "Fork" in the top right. 43 3. Add your ADR to your fork of the repository. There is a [template ADR here](ADRs/adr-X_template.md). 44 4. Submit a Pull Request to Burrow's [ADRs repository](./ADRs/). 45 46 If your ADR requires images, the image files should be included in a subdirectory of the `assets` folder for that ADR as follow: `assets/ADR-X` (for ADR **X**). When linking to an image in the ADR, use relative links such as `../assets/adr-X/image.png`.