From 8479f3e5cf9feba0ec8231fd5468e37b722b34e0 Mon Sep 17 00:00:00 2001 From: dbr Date: Wed, 5 Oct 2022 12:54:13 +1030 Subject: [PATCH 1/3] Proposed branching/release process Closes #665 --- docs/development-process.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 docs/development-process.md diff --git a/docs/development-process.md b/docs/development-process.md new file mode 100644 index 0000000..c368627 --- /dev/null +++ b/docs/development-process.md @@ -0,0 +1,32 @@ +# imgui-rs development process + +As summarised in [issue #665](https://github.com/imgui-rs/imgui-rs/issues/665) + +In summary: + +1. There is a `main` branch +2. For each semver compatible release there is a stable branch (e.g `0.9-stable`) +3. Each patch release becomes a tagged commit on this stable branch (e.g `v0.9.5` would come from a tagged commit on the `0.9-stable` branch) + +## General process + +Day to day development + +1. Work on `main` branch +2. General PR's are submitted against the `main` branch + +When it is time to make a new release, we create a `x.y-stable` branch (e.g `0.9-stable`) from `main` + +1. Ensure `CHANGELOG` is up to date +1. Bump `version` in the various `Cargo.toml` +2. A stable branch is created, e.g `git switch -c 0.9-stable` and pushed to Github + +All further PR's are still done to `main` + +1. If they are applicable to previous release (e.g bugfixes or non-breaking changes), they are cherry-picked back to the applicable `stable` branch(es) + +## When to bump versions in Cargo.toml + +Only before publishing to crates.io. + +This makes users able use [patch.crates-io] without hand-editing versions throughout their dependency tree (typically impossible without forking/editing transitive dependencies, even if there are no breaking code changes otherwise). From 18acb91dee37ffc04ddf739c2f34afaedf39643b Mon Sep 17 00:00:00 2001 From: dbr/Ben Date: Sat, 8 Oct 2022 12:18:58 +1030 Subject: [PATCH 2/3] Fix quoting on patch snippet Co-authored-by: Marijn Suijten --- docs/development-process.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/development-process.md b/docs/development-process.md index c368627..543a388 100644 --- a/docs/development-process.md +++ b/docs/development-process.md @@ -29,4 +29,4 @@ All further PR's are still done to `main` Only before publishing to crates.io. -This makes users able use [patch.crates-io] without hand-editing versions throughout their dependency tree (typically impossible without forking/editing transitive dependencies, even if there are no breaking code changes otherwise). +This makes users able use `[patch.crates-io]` without hand-editing versions throughout their dependency tree (typically impossible without forking/editing transitive dependencies, even if there are no breaking code changes otherwise). From 477e1abd0b561ddd7363c4980893793717fd87f7 Mon Sep 17 00:00:00 2001 From: dbr Date: Tue, 22 Nov 2022 16:33:15 +1030 Subject: [PATCH 3/3] Update release process doc Create tags and push them, create release, close tickets --- docs/development-process.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/development-process.md b/docs/development-process.md index 543a388..a546567 100644 --- a/docs/development-process.md +++ b/docs/development-process.md @@ -18,8 +18,11 @@ Day to day development When it is time to make a new release, we create a `x.y-stable` branch (e.g `0.9-stable`) from `main` 1. Ensure `CHANGELOG` is up to date -1. Bump `version` in the various `Cargo.toml` -2. A stable branch is created, e.g `git switch -c 0.9-stable` and pushed to Github +2. Bump `version` in the various `Cargo.toml` +3. A stable branch is created, e.g `git switch -c 0.9-stable` and pushed to Github +4. Create annotated tag `v0.9.0` and push to github +5. Create Release for this version on Github +6. Update and close any relevant tickets All further PR's are still done to `main`