-
Notifications
You must be signed in to change notification settings - Fork 65
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge #137: Update the release cycle
4bb535e Update the release cycle (rajarshimaitra) Pull request description: <!-- You can erase any parts of this template not applicable to your Pull Request. --> ### Description Follow the bdk main release process, expect making intermediate release candidate. Add other issue templates. Add Development_cycle notes. Update PR template to include changelog section. Update changelog to include instruction of new change log format. ### Notes to the reviewers Please re-check the `minor_release.md` file where I updated the release process without `rc` creation. ### Checklists #### All Submissions: * [x] I've signed all my commits * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md) * [x] I ran `cargo fmt` and `cargo clippy` before committing ACKs for top commit: notmandatory: ACK 4bb535e Tree-SHA512: 5532680364b2e102c4c615c6a08cbb09806c95fcfcf4b2063a855054e39bc4f1859d0601f439a567f51b6ad80102f9275e525c9545df1648570bf099cda10ecf
- Loading branch information
Showing
7 changed files
with
209 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
--- | ||
name: Bug report | ||
about: Create a report to help us improve | ||
title: '' | ||
labels: 'bug' | ||
assignees: '' | ||
|
||
--- | ||
|
||
**Describe the bug** | ||
<!-- A clear and concise description of what the bug is. --> | ||
|
||
**To Reproduce** | ||
<!-- Steps or code to reproduce the behavior. --> | ||
|
||
**Expected behavior** | ||
<!-- A clear and concise description of what you expected to happen. --> | ||
|
||
**Build environment** | ||
- BDK-CLI tag/commit: <!-- e.g. v0.13.0, 3a07614 --> | ||
- OS+version: <!-- e.g. ubuntu 20.04.01, macOS 12.0.1, windows --> | ||
- Rust/Cargo version: <!-- e.g. 1.56.0 --> | ||
- Rust/Cargo target: <!-- e.g. x86_64-apple-darwin, x86_64-unknown-linux-gnu, etc. --> | ||
|
||
**Additional context** | ||
<!-- Add any other context about the problem here. --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
--- | ||
name: Enhancement request | ||
about: Request a new feature or change to an existing feature | ||
title: '' | ||
labels: 'enhancement' | ||
assignees: '' | ||
|
||
--- | ||
|
||
**Describe the enhancement** | ||
<!-- A clear and concise description of what you would like added or changed. --> | ||
|
||
**Use case** | ||
<!-- Tell us how you or others will use this new feature or change to an existing feature. --> | ||
|
||
**Additional context** | ||
<!-- Add any other context about the enhancement here. --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
--- | ||
name: Minor Release | ||
about: Create a new minor release [for release managers only] | ||
title: 'Release MAJOR.MINOR+1.0' | ||
labels: 'release' | ||
assignees: '' | ||
|
||
--- | ||
|
||
## Create a new minor release | ||
|
||
### Summary | ||
|
||
<--release summary to be used in announcements--> | ||
|
||
### Commit | ||
|
||
<--latest commit ID to include in this release--> | ||
|
||
### Changelog | ||
|
||
<--add notices from PRs merged since the prior release, see ["keep a changelog"]--> | ||
|
||
### Checklist | ||
|
||
Release numbering must follow [Semantic Versioning]. These steps assume the current `master` | ||
branch **development** version is *MAJOR.MINOR.0*. | ||
|
||
#### On the day of the feature freeze | ||
|
||
Change the `master` branch to the next MINOR+1 version: | ||
|
||
- [ ] Switch to the `master` branch. | ||
- [ ] Create a new PR branch called `bump_dev_MAJOR_MINOR+1`, eg. `bump_dev_0_22`. | ||
- [ ] Bump the `bump_dev_MAJOR_MINOR+1` branch to the next development MINOR+1 version. | ||
- Change the `Cargo.toml` version value to `MAJOR.MINOR+1.0`. | ||
- The commit message should be "Bump version to MAJOR.MINOR+1.0". | ||
- [ ] Create PR and merge the `bump_dev_MAJOR_MINOR+1` branch to `master`. | ||
- Title PR "Bump version to MAJOR.MINOR+1.0". | ||
|
||
#### On the day of the release | ||
|
||
Tag and publish new release: | ||
|
||
- [ ] Double check that your local `master` is up-to-date with the upstream repo. | ||
- [ ] Create a new branch called `release/MAJOR.MINOR+1` from `master`. | ||
- [ ] Bump the `release/MAJOR.MINOR+1` branch to `MAJOR.MINOR+1.0` version. | ||
- Change the `Cargo.toml` version value to `MAJOR.MINOR+1.0`. | ||
- The commit message should be "Bump version to MAJOR.MINOR+1.0". | ||
- [ ] Add a tag to the `HEAD` commit in the `release/MAJOR.MINOR+1` branch. | ||
- The tag name should be `vMAJOR.MINOR+1.0` | ||
- The first line of the tag message should be "Release MAJOR.MINOR+1.0". | ||
- In the body of the tag message put a copy of the **Summary** and **Changelog** for the release. | ||
- Make sure the tag is signed, for extra safety use the explicit `--sign` flag. | ||
- [ ] Wait for the CI to finish one last time. | ||
- [ ] Push the new tag to the `bitcoindevkit/bdk-cli` repo. | ||
- [ ] Publish **all** the updated crates to crates.io. | ||
- [ ] Create the release on GitHub. | ||
- Go to "tags", click on the dots on the right and select "Create Release". | ||
- Set the title to `Release MAJOR.MINOR+1.0`. | ||
- In the release notes body put the **Summary** and **Changelog**. | ||
- Use the "+ Auto-generate release notes" button to add details from included PRs. | ||
- Until we reach a `1.0.0` release check the "Pre-release" box. | ||
- [ ] Make sure the new release shows up on [crates.io] and that the docs are built correctly on [docs.rs]. | ||
- [ ] Announce the release, using the **Summary**, on Discord, Twitter and Mastodon. | ||
- [ ] Celebrate 🎉 | ||
|
||
[Semantic Versioning]: https://semver.org/ | ||
[crates.io]: https://crates.io/crates/bdk-cli | ||
[docs.rs]: https://docs.rs/bdk-cli/latest/bdk-cli | ||
["keep a changelog"]: https://keepachangelog.com/en/1.0.0/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
--- | ||
name: Patch Release | ||
about: Create a new patch release [for release managers only] | ||
title: 'Release MAJOR.MINOR.PATCH+1' | ||
labels: 'release' | ||
assignees: '' | ||
|
||
--- | ||
|
||
## Create a new patch release | ||
|
||
### Summary | ||
|
||
<--release summary to be used in announcements--> | ||
|
||
### Commit | ||
|
||
<--latest commit ID to include in this release--> | ||
|
||
### Changelog | ||
|
||
<--add notices from PRs merged since the prior release, see ["keep a changelog"]--> | ||
|
||
### Checklist | ||
|
||
Release numbering must follow [Semantic Versioning]. These steps assume the current `master` | ||
branch **development** version is *MAJOR.MINOR.PATCH*. | ||
|
||
### On the day of the patch release | ||
|
||
Change the `master` branch to the new PATCH+1 version: | ||
|
||
- [ ] Switch to the `master` branch. | ||
- [ ] Create a new PR branch called `bump_dev_MAJOR_MINOR_PATCH+1`, eg. `bump_dev_0_22_1`. | ||
- [ ] Bump the `bump_dev_MAJOR_MINOR` branch to the next development PATCH+1 version. | ||
- Change the `Cargo.toml` version value to `MAJOR.MINOR.PATCH+1`. | ||
- The commit message should be "Bump version to MAJOR.MINOR.PATCH+1". | ||
- [ ] Create PR and merge the `bump_dev_MAJOR_MINOR_PATCH+1` branch to `master`. | ||
- Title PR "Bump version to MAJOR.MINOR.PATCH+1". | ||
|
||
Cherry-pick, tag and publish new PATCH+1 release: | ||
|
||
- [ ] Merge fix PRs to the `master` branch. | ||
- [ ] Git cherry-pick fix commits to the `release/MAJOR.MINOR` branch to be patched. | ||
- [ ] Verify fixes in `release/MAJOR.MINOR` branch. | ||
- [ ] Bump the `release/MAJOR.MINOR.PATCH+1` branch to `MAJOR.MINOR.PATCH+1` version. | ||
- Change the `Cargo.toml` version value to `MAJOR.MINOR.MINOR.PATCH+1`. | ||
- The commit message should be "Bump version to MAJOR.MINOR.PATCH+1". | ||
- [ ] Add a tag to the `HEAD` commit in the `release/MAJOR.MINOR` branch. | ||
- The tag name should be `vMAJOR.MINOR.PATCH+1` | ||
- The first line of the tag message should be "Release MAJOR.MINOR.PATCH+1". | ||
- In the body of the tag message put a copy of the **Summary** and **Changelog** for the release. | ||
- Make sure the tag is signed, for extra safety use the explicit `--sign` flag. | ||
- [ ] Wait for the CI to finish one last time. | ||
- [ ] Push the new tag to the `bitcoindevkit/bdk-cli` repo. | ||
- [ ] Publish **all** the updated crates to crates.io. | ||
- [ ] Create the release on GitHub. | ||
- Go to "tags", click on the dots on the right and select "Create Release". | ||
- Set the title to `Release MAJOR.MINOR.PATCH+1`. | ||
- In the release notes body put the **Summary** and **Changelog**. | ||
- Use the "+ Auto-generate release notes" button to add details from included PRs. | ||
- Until we reach a `1.0.0` release check the "Pre-release" box. | ||
- [ ] Make sure the new release shows up on [crates.io] and that the docs are built correctly on [docs.rs]. | ||
- [ ] Announce the release, using the **Summary**, on Discord, Twitter and Mastodon. | ||
- [ ] Celebrate 🎉 | ||
|
||
[Semantic Versioning]: https://semver.org/ | ||
[crates.io]: https://crates.io/crates/bdk-cli | ||
[docs.rs]: https://docs.rs/bdk-cli/latest/bdk-cli | ||
["keep a changelog"]: https://keepachangelog.com/en/1.0.0/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# Development Cycle | ||
|
||
This project follows a regular releasing schedule similar to the one [used by the Rust language]. In short, this means that a new release is made at a regular cadence, with all the feature/bugfixes that made it to `master` in time. This ensures that we don't keep delaying releases waiting for "just one more little thing". | ||
|
||
This project uses [Semantic Versioning], but is currently at MAJOR version zero (0.y.z) meaning it is still in initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable. Until we reach version `1.0.0` we will do our best to document any breaking API changes in the changelog info attached to each release tag. | ||
|
||
We decided to maintain a faster release cycle while the library is still in "beta", i.e. before release `1.0.0`: since we are constantly adding new features and, even more importantly, fixing issues, we want developers to have access to those updates as fast as possible. For this reason we will make a release **every 4 weeks**. | ||
|
||
Once the project reaches a more mature state (>= `1.0.0`), we will very likely switch to longer release cycles of **6 weeks**. | ||
|
||
The "feature freeze" will happen **one week before the release date**. This means a new branch will be created originating from the `master` tip at that time, and in that branch we will stop adding new features and only focus on ensuring the ones we've added are working properly. | ||
|
||
To create a new release a release manager will create a new issue using the `Release` template and follow the template instructions. | ||
|
||
[used by the Rust language]: https://doc.rust-lang.org/book/appendix-07-nightly-rust.html | ||
[Semantic Versioning]: https://semver.org/ |