Skip to content

docs: Update contributing guideliens#3503

Merged
melekes merged 1 commit intodevelopfrom
bucky/release-procedure
Apr 23, 2019
Merged

docs: Update contributing guideliens#3503
melekes merged 1 commit intodevelopfrom
bucky/release-procedure

Conversation

@ebuchman
Copy link
Contributor

Minor updates to reflect squash merging and how to prepare releases

  • Updated all relevant documentation in docs
  • Updated all code comments where relevant
  • Wrote tests
  • Updated CHANGELOG_PENDING.md

@ebuchman ebuchman requested review from melekes and xla as code owners March 28, 2019 12:09
@codecov-io
Copy link

Codecov Report

Merging #3503 into develop will increase coverage by 0.18%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           develop   #3503      +/-   ##
==========================================
+ Coverage    64.22%   64.4%   +0.18%     
==========================================
  Files          213     213              
  Lines        17503   17459      -44     
==========================================
+ Hits         11241   11245       +4     
+ Misses        5320    5274      -46     
+ Partials       942     940       -2
Impacted Files Coverage Δ
consensus/reactor.go 71.54% <0%> (-0.71%) ⬇️
blockchain/pool.go 80.26% <0%> (-0.33%) ⬇️
consensus/state.go 78.82% <0%> (-0.24%) ⬇️
libs/db/remotedb/grpcdb/server.go 0% <0%> (ø) ⬆️
p2p/pex/pex_reactor.go 79.55% <0%> (+0.31%) ⬆️
consensus/wal.go 66.45% <0%> (+1.09%) ⬆️
privval/signer_validator_endpoint.go 85.55% <0%> (+10%) ⬆️
crypto/random.go 80% <0%> (+30%) ⬆️


Note all pull requests should be squash merged except for merging to master and
merging master back to develop. This keeps the commit history clean and makes it
easy to reference the pull request where a change was introduced.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What if we want to include a PR that made it into develop after the release branch has been created? Squashing those changes will create another commit for the same changes. For example see: #3491
If we squash merge this, it will create a commit that will make it to the release branch and then to master. The same changes exist under develop with a different commit.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we enforce this through branch protection in github settings?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merging develop to release branch should be done with a normal merge, not squash. You're correct here.

Ideally we minimize this. In the ideal case, the release branch is checked out directly from develop and merged to master with no more changes.

I suppose this means we should continue to do all review and finalization on develop before we make the release branch, so that ideally there's no PRs against only the release branch.

But that would cause develop to freeze while we're prepping the release, which isn't ideal, so there's some tension here.

I don't think it's a big deal to have some merges from develop into release. But we can also just retarget PRs to the release branch to minimize the number of times we have new stuff on develop that we want in the release after we've already made the release branch ...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we enforce this through branch protection in github settings?

Which part?

I don't think we can enforce the squash merge rules :(

- merge master back to develop
- bump versions
- push latest develop with prepared release details to release/vX.X.X to run the extended integration tests on the CI
- if necessary, make pull requests against release/vX.X.X and squash merge them
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see: https://github.com/tendermint/tendermint/pull/3503/files#r269982992
There are edge cases where we do want to merge instead of squash (we can either disallow these cases or use merge).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should say "new pull requests, based on the release branch, against the release branch".

The only case we don't want to squash merge (afaik) is when we need to merge develop to the release branch. But in general we should be able to avoid that by basing those fixes on the release branch in the first place, yeh ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in general we should be able to avoid that by basing those fixes on the release branch in the first place, yeh ?

Yes, makes sense. We should base PRs directly on the release branch if we are sure, we want to include them.

@xla xla changed the title update contributing.md docs: Update contributing guideliens Mar 28, 2019
Copy link
Contributor

@xla xla left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🐙 :shipit:

Should we mention how we see versions to be bumped in the context of this document?


Note all pull requests should be squash merged except for merging to master and
merging master back to develop. This keeps the commit history clean and makes it
easy to reference the pull request where a change was introduced.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we enforce this through branch protection in github settings?

@liamsi liamsi mentioned this pull request Mar 31, 2019
4 tasks
@ebuchman
Copy link
Contributor Author

ebuchman commented Apr 1, 2019

Need to also specify changelog entry title for changes that affect top level stuff like docker, circle, etc. #3512 (comment)

@melekes melekes merged commit 90997ab into develop Apr 23, 2019
@melekes melekes deleted the bucky/release-procedure branch April 23, 2019 09:34
@melekes melekes mentioned this pull request May 7, 2019
36 tasks
@melekes melekes mentioned this pull request May 30, 2019
44 tasks
brapse pushed a commit to brapse/tendermint that referenced this pull request Jun 5, 2019
Minor updates to reflect squash merging and how to prepare releases
@tac0turtle tac0turtle mentioned this pull request Jul 8, 2019
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants