From a217494bb14b7313cac467c61e0ab43639984340 Mon Sep 17 00:00:00 2001 From: Alekos Filini Date: Fri, 18 Dec 2020 10:52:10 +0100 Subject: [PATCH 1/8] Bump version to 0.2.0-rc.1 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 84c1fa531..8b04eeb02 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bdk" -version = "0.1.0" +version = "0.2.0-rc.1" edition = "2018" authors = ["Alekos Filini ", "Riccardo Casatta "] From c68716481b5f291f5feb26d886839e1567d9c689 Mon Sep 17 00:00:00 2001 From: Alekos Filini Date: Fri, 18 Dec 2020 12:08:54 +0100 Subject: [PATCH 2/8] Document the development cycle --- DEVELOPMENT_CYCLE.md | 46 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 DEVELOPMENT_CYCLE.md diff --git a/DEVELOPMENT_CYCLE.md b/DEVELOPMENT_CYCLE.md new file mode 100644 index 000000000..0f05846d1 --- /dev/null +++ b/DEVELOPMENT_CYCLE.md @@ -0,0 +1,46 @@ +# Development Cycle + +This project follows a regular releasing schedule similar to the one [used by the Rust language](https://doc.rust-lang.org/book/appendix-07-nightly-rust.html). 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". + +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 will have reached 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. + +``` +master: - - - - * - - - * - - - - - - * - - - * ... + | / | | +release/0.x.0: * - - # | | + | / +release/0.y.0: * - - # +``` + +As soon as the release is tagged and published, the `release` branch will be merged back into `master` to update the version in the `Cargo.toml` to apply the new `Cargo.toml` version and all the other fixes made during the feature +freeze window. + +## Making the Release + +What follows are notes and procedures that maintaners can refer to when making releases. All the commits and tags must be signed and, ideally, also [timestamped](https://github.com/opentimestamps/opentimestamps-client/blob/master/doc/git-integration.md). + +Pre-`v1.0.0` our "major" releases only affect the "minor" semver value. Accordingly, our "minor" releases will only affect the "patch" value. + +1. Create a new branch called `release/x.y.z` from `master`. Double check that your local `master` is up-to-date with the upstream repo before doing so. +2. Make a commit on the release branch to bump the version to `x.y.z-rc.1`. The message should be "Bump version to x.y.z-rc.1". +3. Push the new branch to `bitcoindevkit/bdk` on GitHub. +4. During the one week of feature freeze run additional tests on the release branch +5. If a bug is found: + - If it's a minor issue you can just fix it in the release branch, since it will be merged back to `master` eventually + - For bigger issues you can fix them on `master` and then *cherry-pick* the commit to the release branch +6. On release day, make a commit on the release branch to bump the version to `x.y.z`. The message should be "Bump version to x.y.z". +7. Add a tag to this commit. The tag name should be `vx.y.z` (for example `v0.5.0`), and the message "Release x.y.z". Make sure the tag is signed, for extra safety use the explicit `--sign` flag. +8. Push the new commits to the upstream release branch, wait for the CI to finish one last time. +9. Publish **all** the updated crates to crates.io. +10. Make a new commit to bump the version value to `x.y.(z+1)-dev`. The message should be "Bump version to x.y.(z+1)-dev". +11. Merge the release branch back into `master`. +12. Make sure the new release shows up on crates.io and that the docs are built correctly on docs.rs. +13. Announce the release on Twitter, Discord and Telegram. +14. Celebrate :tada: From a5f914b56de5d044660799e80aa208188c3a7dc5 Mon Sep 17 00:00:00 2001 From: Alekos Filini Date: Mon, 21 Dec 2020 12:14:06 +0100 Subject: [PATCH 3/8] Add metadata for `bdk-macros`, bump its version --- Cargo.toml | 2 +- macros/Cargo.toml | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 8b04eeb02..42044944a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ edition = "2018" authors = ["Alekos Filini ", "Riccardo Casatta "] [dependencies] -bdk-macros = { version = "0.1.0-beta.1", path = "./macros" } +bdk-macros = { version = "0.2.0", path = "./macros" } log = "^0.4" miniscript = "4.0" bitcoin = { version = "^0.25.2", features = ["use-serde"] } diff --git a/macros/Cargo.toml b/macros/Cargo.toml index dac85ca95..4dada2de2 100644 --- a/macros/Cargo.toml +++ b/macros/Cargo.toml @@ -1,8 +1,14 @@ [package] name = "bdk-macros" -version = "0.1.0-beta.1" +version = "0.2.0" authors = ["Alekos Filini "] edition = "2018" +homepage = "https://bitcoindevkit.org" +repository = "https://github.com/bitcoindevkit/bdk" +documentation = "https://docs.rs/bdk-macros" +description = "Supporting macros for `bdk`" +keywords = ["bdk"] +license-file = "../LICENSE" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html From 7be193faa5caed3834c1e73604a38ed5a6bf75eb Mon Sep 17 00:00:00 2001 From: Alekos Filini Date: Mon, 21 Dec 2020 13:16:05 +0100 Subject: [PATCH 4/8] [testutils-macros] Fix deps features --- testutils-macros/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testutils-macros/Cargo.toml b/testutils-macros/Cargo.toml index bbae76e9a..190d9ec85 100644 --- a/testutils-macros/Cargo.toml +++ b/testutils-macros/Cargo.toml @@ -11,7 +11,7 @@ name = "testutils_macros" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -syn = { version = "1.0", features = ["parsing"] } +syn = { version = "1.0", features = ["parsing", "full"] } proc-macro2 = "1.0" quote = "1.0" From 2c7a28337d69a416d227cdefbbd4034a452976ec Mon Sep 17 00:00:00 2001 From: Alekos Filini Date: Mon, 21 Dec 2020 12:38:19 +0100 Subject: [PATCH 5/8] Add metadata for `bdk-testutils` and `bdk-testutils-macros`, bump their version --- Cargo.toml | 4 ++-- testutils-macros/Cargo.toml | 8 +++++++- testutils/Cargo.toml | 8 +++++++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 42044944a..0fd46230c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -57,8 +57,8 @@ test-electrum = ["electrum"] test-md-docs = ["base64", "electrum"] [dev-dependencies] -bdk-testutils = { version = "0.1.0-beta.1", path = "./testutils" } -bdk-testutils-macros = { version = "0.1.0-beta.1", path = "./testutils-macros" } +bdk-testutils = { version = "0.2.0", path = "./testutils" } +bdk-testutils-macros = { version = "0.2.0", path = "./testutils-macros" } serial_test = "0.4" lazy_static = "1.4" rustyline = "6.0" diff --git a/testutils-macros/Cargo.toml b/testutils-macros/Cargo.toml index 190d9ec85..e92d324b7 100644 --- a/testutils-macros/Cargo.toml +++ b/testutils-macros/Cargo.toml @@ -1,8 +1,14 @@ [package] name = "bdk-testutils-macros" -version = "0.1.0-beta.1" +version = "0.2.0" authors = ["Alekos Filini "] edition = "2018" +homepage = "https://bitcoindevkit.org" +repository = "https://github.com/bitcoindevkit/bdk" +documentation = "https://docs.rs/bdk-testutils-macros" +description = "Supporting testing macros for `bdk`" +keywords = ["bdk"] +license-file = "../LICENSE" [lib] proc-macro = true diff --git a/testutils/Cargo.toml b/testutils/Cargo.toml index a70550a1a..294acc3d9 100644 --- a/testutils/Cargo.toml +++ b/testutils/Cargo.toml @@ -1,8 +1,14 @@ [package] name = "bdk-testutils" -version = "0.1.0-beta.1" +version = "0.2.0" authors = ["Alekos Filini "] edition = "2018" +homepage = "https://bitcoindevkit.org" +repository = "https://github.com/bitcoindevkit/bdk" +documentation = "https://docs.rs/bdk-testutils" +description = "Supporting testing utilities for `bdk`" +keywords = ["bdk"] +license-file = "../LICENSE" [lib] name = "testutils" From c910668ce3130bb35fed768c4f03aafa9a1e0abb Mon Sep 17 00:00:00 2001 From: Alekos Filini Date: Mon, 21 Dec 2020 14:03:32 +0100 Subject: [PATCH 6/8] Add metadata to Cargo.toml, remove local deps --- Cargo.toml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 0fd46230c..762ebc93e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,9 +3,16 @@ name = "bdk" version = "0.2.0-rc.1" edition = "2018" authors = ["Alekos Filini ", "Riccardo Casatta "] +homepage = "https://bitcoindevkit.org" +repository = "https://github.com/bitcoindevkit/bdk" +documentation = "https://docs.rs/bdk" +description = "A modern, lightweight, descriptor-based wallet library" +keywords = ["bitcoin", "wallet", "descriptor", "psbt"] +readme = "README.md" +license-file = "LICENSE" [dependencies] -bdk-macros = { version = "0.2.0", path = "./macros" } +bdk-macros = "0.2" log = "^0.4" miniscript = "4.0" bitcoin = { version = "^0.25.2", features = ["use-serde"] } @@ -57,8 +64,8 @@ test-electrum = ["electrum"] test-md-docs = ["base64", "electrum"] [dev-dependencies] -bdk-testutils = { version = "0.2.0", path = "./testutils" } -bdk-testutils-macros = { version = "0.2.0", path = "./testutils-macros" } +bdk-testutils = "0.2" +bdk-testutils-macros = "0.2" serial_test = "0.4" lazy_static = "1.4" rustyline = "6.0" From 76b52730402d08cf6e0c2faf41ec779231af37f6 Mon Sep 17 00:00:00 2001 From: Alekos Filini Date: Mon, 21 Dec 2020 14:16:14 +0100 Subject: [PATCH 7/8] Bump version to 0.2.0 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 762ebc93e..d57e4f59e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bdk" -version = "0.2.0-rc.1" +version = "0.2.0" edition = "2018" authors = ["Alekos Filini ", "Riccardo Casatta "] homepage = "https://bitcoindevkit.org" From e31bd812ede75434a5a1fa279c0ae92d79dc0eb1 Mon Sep 17 00:00:00 2001 From: Alekos Filini Date: Mon, 21 Dec 2020 14:51:49 +0100 Subject: [PATCH 8/8] Bump version to 0.2.1-dev --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index d57e4f59e..d10ce59f3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bdk" -version = "0.2.0" +version = "0.2.1-dev" edition = "2018" authors = ["Alekos Filini ", "Riccardo Casatta "] homepage = "https://bitcoindevkit.org"