-
Notifications
You must be signed in to change notification settings - Fork 311
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update DEVELOPMENT_CYCLE.md to work with [patch.crates-io] #544
Conversation
42fc114
to
3100d18
Compare
010b7fb
to
98ad84d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Concept ACK.. Agreed that it would make quickly checking up change logs in the release message itself for downstream devs..
Just a small nit..
Concept ACK for this, at this point we all hate Shouldn't we add a "## Changelog" subtitle in the PR template? Not all PRs make it into the changelog (we usually ignore doc fixes, ci fixes, minor bug fixes, refactors, etc...). Also, this needs a rebase :) |
I don't know if all the following is covered by I've been doing some research regarding #543. It seems that tokio is using some variation of the kind. I prefer a semiautomatic approach rather than just the maintainers editing the
Maintainers will take part in this process during the review. When they approve |
f20afc8
to
6e5ceb8
Compare
@csralvall thanks for the info on how other projects are automating, or at least semi-automating the generation of their changelog info. I'd prefer to start with manually creating the changelog info provided by PR creators, and then later we can look into setting up some automation to help us compile this info. Even if we go with some sort of changelog generation I'd still rather put the release summary and changelog info in the tag commits rather than a text file so that we don't ever have to merge our release branches back to the master branch. I think as long as we also keep a copy of the info in the GitHub release page it will be easy for new folks to find it. And experienced people won't have a problem finding the info in the the tag annotations. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Concept ACK, now that we are starting to have a larger volume of PRs I think we should switch to these new guidelines
.github/ISSUE_TEMPLATE/release.md
Outdated
|
||
On the day of a **MAJOR.MINOR.0** release: | ||
|
||
- [ ] Add a tag to the `HEAD` commit in the `release/MAJOR.MINOR` branch. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think here you should first add a commit to bump the version and remove the rc suffix
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the section starting on line 41 I bump the version for the next dev version in master
. So the master
branch will always be at the current dev version, this is needed so someone can patch their project and point to the master branch to use the current dev branch version.
I also added a version bump to 0.22.0
in this PR to get us ready to follow this process for the upcoming feature freeze.
9150193
to
98197ba
Compare
Wait a second, are you sure this fixes #496? If we immediately bump the version in master, then all the projects depending on a currently relased version of bdk can't switch to For example, the current latest release is |
Is the scenario you're thinking of for using an unreleased patch to
[patch.crates-io]
bdk = { git = 'https://github.com/bitcoindevkit/bdk', branch = 'master' }
[dependencies]
bdk = "0.MINOR+1.0"
[patch.crates-io]
bdk = { git = 'https://github.com/bitcoindevkit/bdk', tag = 'v0.MINOR+1.0-RC.1' }
[dependencies]
bdk = "0.MINOR+1.0"
[patch.crates-io]
bdk = { git = 'https://github.com/bitcoindevkit/bdk', branch = 'release/0.MINOR' }
[dependencies]
bdk = "0.MINOR.PATCH+1"
[patch.crates-io]
bdk = { git = 'https://github.com/bitcoindevkit/bdk', tag = 'v0.MINOR.PATCH+1-RC.1' }
[dependencies]
bdk = "0.MINOR.PATCH+1" |
I think the problem is:
|
My thinking was in this case, they want some cool stuff from |
As discussed on the call today, I updated the checklist for making a MINOR release to bump the master branch version just before making the release branch. This should let users [patch] to the master branch to get pre-released (and possibly breaking) changes for the current latest release. I also decided to separated the steps for making a PATCH release into it's own issue template. And I added an extra master branch version bump when doing PATCH releases so that if someone wants to patch a dependency to master that is using a latest released patch version, it should still work. |
6e5f078
to
9483adf
Compare
I merged another PR before this one, and now the CHANGELOG is conflicting :/ Sorry! |
How ironic |
9483adf
to
7c57965
Compare
Rebased :-D |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 7c57965
e1fa0b6 Fix the new release process (Alekos Filini) Pull request description: ### Description A few things I noticed while doing the 0.22 release. Follow-up of #544 ### Checklists #### All Submissions: * [x] I've signed all my commits * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md) ACKs for top commit: notmandatory: ACK e1fa0b6 Tree-SHA512: 5e60e73ba1f820fc39f62b75583e1125f911e578ab7263a20636e2a995d0efa10ba1b3b66a1e03d8a2ed61e32c00b53de9d6bbdb31de94db37c79fa5acdbf483
Description
Update DEVELOPMENT_CYCLE and release instructions to make overriding dependencies possible for downstream projects with unreleased
bdk
versions for development and testing. Also simplifies the release process by capturing changelog information in thepull_request_template
and recording release changelog information in the release tag message instead of in aCHANGELOG.md
file which causes too many merge conflicts and complicates the release process.Fixes #536
Fixes #496
Notes to the reviewers
The primary changes to our current release process are:
-dev
or-rc.x
to unreleasedbdk
cargo versions because those extensions do not work with overriding dependencies.master
branch version as soon as arelease/MAJOR.MINOR
branch is created, the next releaserelease/MAJOR.MINOR
branch version with be MAJOR.MINOR.PATCH, and themaster
branch development version will be MAJOR.MINOR+1.0; either version can be used with overriding dependencies.bdk
version from thesrc/lib.rs
file so that it doesn't need to be changed on every release, because it isn't needed in the rust docs for most developers and removing it will help simplify the release process.release.md
github issue template.After this PR is merged I will replace old tags with new ones containing changelog information and then do a new PR to remove the CHANGELOG.md file.After this PR is merged I don't think we need to update old tags, only rename the CHANGELOG.md file to CHANGELOG-OLD.md with a note to check tags for future change log info.Checklists
All Submissions:
cargo fmt
andcargo clippy
before committing