Merge PR #4205: Mircea/update contributing md

* Update `CONTRIBUTING.md` branching strategy and release process

* Delete PRIORITIES.md

* Delete RELEASE_PROCESS.md

* Remove RELEASE_TEST_SCRIPT.md

* Update CONTRIBUTING.md

Co-Authored-By: mircea-c <mircea@tendermint.com>
This commit is contained in:
mircea-c 2019-04-26 21:57:03 -04:00 committed by frog power 4000
parent ec4a1e8f2a
commit 36dcd7b7ad
4 changed files with 18 additions and 101 deletions

View File

@ -143,8 +143,7 @@ for tcIndex, tc := range cases {
## Branching Model and Release ## Branching Model and Release
User-facing repos should adhere to the branching model: http://nvie.com/posts/a-successful-git-branching-model/. User-facing repos should adhere to the trunk based development branching model: https://trunkbaseddevelopment.com/.
That is, these repos should be well versioned, and any merge to master requires a version bump and tagged release.
Libraries need not follow the model strictly, but would be wise to. Libraries need not follow the model strictly, but would be wise to.
@ -152,37 +151,34 @@ The SDK utilizes [semantic versioning](https://semver.org/).
### PR Targeting ### PR Targeting
Ensure that you base and target your PR on the correct branch: Ensure that you base and target your PR on the `master` branch.
- `release/vxx.yy.zz` for a merge into a release candidate
- `master` for a merge of a release
- `develop` in the usual case
All feature additions should be targeted against `develop`. Bug fixes for an outstanding release candidate All feature additions should be targeted against `master`. Bug fixes for an outstanding release candidate
should be targeted against the release candidate branch. Release candidate branches themselves should be the should be targeted against the release candidate branch. Release candidate branches themselves should be the
only pull requests targeted directly against master. only pull requests targeted directly against master.
### Development Procedure: ### Development Procedure:
- the latest state of development is on `develop` - the latest state of development is on `master`
- `develop` must never fail `make test` or `make test_cli` - `master` must never fail `make test` or `make test_cli`
- `develop` should not fail `make lint` - `master` should not fail `make lint`
- no --force onto `develop` (except when reverting a broken commit, which should seldom happen) - no `--force` onto `master` (except when reverting a broken commit, which should seldom happen)
- create a development branch either on github.com/cosmos/cosmos-sdk, or your fork (using `git remote add origin`) - create a development branch either on github.com/cosmos/cosmos-sdk, or your fork (using `git remote add origin`)
- before submitting a pull request, begin `git rebase` on top of `develop` - before submitting a pull request, begin `git rebase` on top of `master`
### Pull Merge Procedure: ### Pull Merge Procedure:
- ensure pull branch is rebased on develop - ensure pull branch is rebased on `master`
- run `make test` and `make test_cli` to ensure that all tests pass - run `make test` and `make test_cli` to ensure that all tests pass
- merge pull request - merge pull request
- push master may request that pull requests be rebased on top of `unstable`
### Release Procedure: ### Release Procedure:
- start on `develop` - start on `master`
- prepare changelog/release issue - create the release candidate branch `rcN/v*` (please start with `N=1`) (going forward known as **RC**) and ensure it's protected against pushing from anyone except the release manager/coordinator. **no PRs targeting this branch should be merged unless exceptional circumstances arise**
- bump versions - on the `RC` branch, use `clog` to prepare the `CHANGELOG.md` and kick off a large round of simulation testing (e.g. 400 seeds for 2k blocks).
- push to release-vX.X.X to run CI - if errors are found during the simulation testing, commit the fixes to `master` and create a new `RC` branch (making sure to increment the `rcN`)
- merge to master - after simulation has successfully completed, create the release branch (`release/vX.XX.X`) from the `RC` branch
- merge master back to develop - merge the release branch to `master` to incorporate the `CHANGELOG.md` updates
- delete the `RC` branches
### Hotfix Procedure: ### Hotfix Procedure:
- start on `master` - start on `master`
- checkout a new branch named hotfix-vX.X.X - checkout a new branch named hotfix-vX.X.X
@ -191,6 +187,5 @@ only pull requests targeted directly against master.
- add a note to CHANGELOG.md - add a note to CHANGELOG.md
- bump versions - bump versions
- push to hotfix-vX.X.X to run the extended integration tests on the CI - push to hotfix-vX.X.X to run the extended integration tests on the CI
- merge hotfix-vX.X.X to master - merge hotfix-vX.X.X to `master` and cherry pick the commit to any release branches this applies to
- merge hotfix-vX.X.X to develop
- delete the hotfix-vX.X.X branch - delete the hotfix-vX.X.X branch

View File

@ -1,48 +0,0 @@
# Post-0.25/GoS Pre-Release
## Staking / Slashing - Stability
- [Prelaunch Issues](https://github.com/cosmos/cosmos-sdk/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+label%3Astaking+label%3Aprelaunch-2.0)
## Multisig
- Need to test changes in https://github.com/cosmos/cosmos-sdk/pull/2165
- Spam prevention - https://github.com/cosmos/cosmos-sdk/issues/2019
## ABCI Changes
- CheckEvidence/DeliverEvidence
- CheckTx/DeliverTx ordering semantics
- ABCI Error string update (only on the SDK side)
- Need to verify correct proposer reward semantics
## Gas
- Write specification and explainer document for Gas in Cosmos
* Charge for transaction size
* Decide what "one gas" corresponds to (standard hardware benchmarks?)
* Consider charging based on maximum depth of IAVL tree iteration
- Test out gas estimation in CLI and LCD and ensure the UX works
## LCD
- Bianje working with Voyager team (@fedekunze) to complete implementation and documentation.
## Documentation
- gaiad / gaiacli
- LCD
- Each module
- Tags [#1780](https://github.com/cosmos/cosmos-sdk/issues/1780)
# Lower priority
- Create some diagrams (see `docs/resources/diagrams/todo.md`)
## Governance v2
- Circuit breaker - https://github.com/cosmos/cosmos-sdk/issues/926
- Parameter change proposals (roughly the same implementation as circuit breaker)
## Staking / Slashing - Stability
- Consider "tombstone" / "prison" - double-sign and you can never validate again - https://github.com/cosmos/cosmos-sdk/issues/2363

View File

@ -1,13 +0,0 @@
### `cosmos/cosmos-sdk` Release Process
Unless otherwise stated, all of the following tasks will be undertaken by the release manager/coordinator:
- [ ] 1. Decide on release designation (are we doing a patch, or minor version bump)
- [ ] 2. Ensure that all commits/PRs which are destined for this release are merged to the `master` branch
- [ ] 3. Create the release candidate branch `rcN` (please start with `N=1`) (going forward known as **RC**) and ensure it's protected against pushing from anyone except the release manager/coordinator. **no PRs targeting this branch should be merged unless exceptional circumstances arise**
- [ ] 4. On the `RC` branch, use `clog` to prepare the `CHANGELOG.md`.
- [ ] 5. Summarize breaking API changes section under “Breaking Changes” section to the `CHANGELOG.md` to bring attention to any breaking API changes that affect RPC consumers.
- [ ] 6. Kick off a large round of simulation testing (e.g. 400 seeds for 2k blocks)
- [ ] 7. If errors are found in either #6 or #7 go back to #2 (*NOTE*: be sure to increment the `rcN`)
- [ ] 8. After #6 and #7 have successfully completed create the release branch from the `RC` branch (this will trigger the automated relase process which will build binaries, tag the release and push to github)
- [ ] 9. Merge the release branch to `master` and delete the `RC` branch

View File

@ -1,17 +0,0 @@
This document should contain plain english instructions for testing functionality on `gaiad`. This “Script” is supposed to be run by 2 people who will each spin up a `gaiad` node and run the series of prompts below.
- [Create a network of 2 nodes](./gaia/deploy-testnet.md)
- [Generate an account](./gaia/gaiacli.md)
- [Send funds from one account to the other](./gaia/gaiacli.md)
- [Create a validator](./gaia/validators/validator-setup.md)
- [Edit a validator](./gaia/alidators/validator-setup.md)
- [Delegate to validator](./gaia/gaiacli.md)
- [Unbond from a validator](./gaia/gaiacli.md)
- [View validators and verify output](./gaia/validators/validator-setup.md)
- [Query network status](./gaia/join-testnet.md#run-a-full-node)
- [Create a proposal](./gaia/validators/validator-setup.md)
- [Query a proposal](./gaia/validators/validator-setup.md)
- [Vote on a proposal](./gaia/validators/validator-setup.md)
- [Query status of a proposal](./gaia/validators/validator-setup.md)
- [Query the votes on a proposal](./gaia/validators/validator-setup.md)
- [Export state and reload](./gaia/join-testnet.md)