From bc00146c003f0c4eefed2152c8076ff7d6e02e0b Mon Sep 17 00:00:00 2001 From: HHobeck Date: Mon, 10 Jun 2024 14:34:33 +0200 Subject: [PATCH 1/9] Documenting the git hub flow workflow --- ...amplesForGitFlow_FeatureFromMainBranch.png | Bin 27925 -> 29459 bytes ...tionSamplesForGitHubFlow_FeatureBranch.png | Bin 0 -> 29459 bytes ...tionSamplesForGitHubFlow_ReleaseBranch.png | Bin 0 -> 30967 bytes ...esForGitHubFlow_VersionedReleaseBranch.png | Bin 0 -> 31447 bytes .../branching-strategies/gitflow/examples.md | 9 ++ .../githubflow/examples.md | 79 ++++++++++++++++-- .../DocumentationSamplesForGitHubFlow.cs | 6 ++ 7 files changed, 87 insertions(+), 7 deletions(-) create mode 100644 docs/input/docs/img/DocumentationSamplesForGitHubFlow_FeatureBranch.png create mode 100644 docs/input/docs/img/DocumentationSamplesForGitHubFlow_ReleaseBranch.png create mode 100644 docs/input/docs/img/DocumentationSamplesForGitHubFlow_VersionedReleaseBranch.png diff --git a/docs/input/docs/img/DocumentationSamplesForGitFlow_FeatureFromMainBranch.png b/docs/input/docs/img/DocumentationSamplesForGitFlow_FeatureFromMainBranch.png index ab22724ec96ce420cc32e7bc9ac7dd246f77472f..af6daf6711df53bd02d91f7e22d4de8560497d23 100644 GIT binary patch delta 7466 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 EFE~<2=l}o! delta 5937 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 E0@!>mz5oCK diff --git a/docs/input/docs/img/DocumentationSamplesForGitHubFlow_FeatureBranch.png b/docs/input/docs/img/DocumentationSamplesForGitHubFlow_FeatureBranch.png new file mode 100644 index 0000000000000000000000000000000000000000..af6daf6711df53bd02d91f7e22d4de8560497d23 GIT binary patch literal 29459 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 Date: Mon, 10 Jun 2024 15:11:47 +0200 Subject: [PATCH 2/9] change documentation --- .../docs/learn/branching-strategies/githubflow/examples.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/input/docs/learn/branching-strategies/githubflow/examples.md b/docs/input/docs/learn/branching-strategies/githubflow/examples.md index b723d88614..0f79be951a 100644 --- a/docs/input/docs/learn/branching-strategies/githubflow/examples.md +++ b/docs/input/docs/learn/branching-strategies/githubflow/examples.md @@ -54,8 +54,9 @@ configured to use _continuous deployment_ the version would be `2.0.0`. ## Release Branches -Release branches are used for major and minor releases to stabilize a RC -(Release Candidate) or to integrate features (in parallel) targeting different +Release branches are used for major, minor and patch releases to stabilize a RC +(Release Candidate) or to integrate features/hotfixes (in parallel) targeting +different iterations. Release branches are taken from `main` and will be merged back afterwards. Finally the `main` branch is tagged with the released version. From 337f06850fc840d477223cf12bfa7972d9538fbd Mon Sep 17 00:00:00 2001 From: HHobeck Date: Tue, 11 Jun 2024 14:35:23 +0200 Subject: [PATCH 3/9] Update documentation in docs/input/docs/reference/modes/* --- .../reference/modes/continuous-delivery.md | 76 ++++------------- .../reference/modes/continuous-deployment.md | 39 +++------ docs/input/docs/reference/modes/mainline.md | 82 ------------------- .../docs/reference/modes/manual-deployment.md | 38 +++++++++ 4 files changed, 67 insertions(+), 168 deletions(-) delete mode 100644 docs/input/docs/reference/modes/mainline.md create mode 100644 docs/input/docs/reference/modes/manual-deployment.md diff --git a/docs/input/docs/reference/modes/continuous-delivery.md b/docs/input/docs/reference/modes/continuous-delivery.md index a1e824ca91..31d6ae2319 100644 --- a/docs/input/docs/reference/modes/continuous-delivery.md +++ b/docs/input/docs/reference/modes/continuous-delivery.md @@ -2,75 +2,33 @@ Order: 20 Title: Continuous Delivery Description: | - Continuous Delivery is the default versioning mode. In this mode, - GitVersion calculates the next version and will use that until that is - released. + Sometimes you just want the version to keep changing and deploy continuously + to an testing system. In this case, Continuous Delivery is a good mode to + operate GitVersion by. RedirectFrom: docs/reference/versioning-modes/continuous-delivery --- -Continuous Delivery is the practice of having a deployment pipeline and is the -default mode in GitVersion. Each stage of the pipeline gets the code going -through the pipeline closer to production. +Continuous Delivery is the process of checking into a branch, running all the +tests and if everything goes green it is automatically pushed to a testing system. -The topic itself is rather large, here we will just focus on the building and -creation of _releasable_ artifacts. This is only a part of continuous delivery -as a whole, with the hard part being the ability to measure the impacts of what -you have deployed into production. +A good case for Continuous Delivery is when using Octopus deploy, as you +cannot publish the same version of a package into the same feed. -In essence continuous delivery means: - -* Your code is automatically built and tested -* If any of the automated tests fail, the team's #1 priority is to fix the - build -* If the build is green, the application can be deployed at any time - * Ideally the business should make that decision - * The same artifacts which were built and tested should be deployed - * That means no rebuilding everything when you are deploying - -Continuous delivery does not work well with GitFlow. The reason is that you are -required to _merge_ to main to do a release, triggering a rebuild and a new -set of artifacts to go through your pipeline. Depending on how long your -pipeline is, this could be a while. - -GitHubFlow is a better fit for Continuous delivery, the [mainline -development][mainline] model means that every merged feature branch will be -built as a _stable_ version and if the build/builds go green then you are free -to deploy to production at any time. - -## Usage - -By default, GitVersion is set up to do Continuous Delivery on all branches but -`develop`, which is set up with [Continuous Deployment][continuous-deployment]. -To change the mode to Continuous Delivery, change your -[configuration][configuration] to: - -```yaml -mode: ContinuousDelivery -``` +For this mode we follow the logic in [this blog post by Xavier Decoster][blog] +on the issues of incrementing automatically. ## How Continuous Delivery affects GitVersion -The thing about continuous delivery is that there will be _multiple_ candidates -to deploy to production and it is a human choice to deploy. This means that -GitVersion will build **the same semantic version** until that version is -deployed. For instance: - -* 1.1.0+5 -* 1.1.0+6 -* 1.1.0+7 <-- This is the artifact we release, tag the commit which created - this version -* 1.1.1+0 - -Tags are required in this mode to communicate when the release is done as it's -an external manual process. +Continuous delivery is good when you deploy continuously to an testing system. -## Resources +* 1.1.0-3 +* 1.1.0-2 (tag: 1.1.0-2) <-- This is the version which has been deployed on testing +* 1.1.0-1 +* 1.1.1-0 -* [Continuous Delivery on Wikipedia][wikipedia] -* [Continuous Delivery, the book][book] +Tags are not required but optional in this mode to communicate when the release +is done as it's an automated process. -[book]: https://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912 [configuration]: /docs/reference/configuration -[continuous-deployment]: /docs/reference/modes/continuous-deployment -[mainline]: /docs/reference/modes/mainline +[blog]: https://www.xavierdecoster.com/semantic-versioning-auto-incremented-nuget-package-versions [wikipedia]: https://en.wikipedia.org/wiki/Continuous_delivery diff --git a/docs/input/docs/reference/modes/continuous-deployment.md b/docs/input/docs/reference/modes/continuous-deployment.md index 999256d779..0c2d285aab 100644 --- a/docs/input/docs/reference/modes/continuous-deployment.md +++ b/docs/input/docs/reference/modes/continuous-deployment.md @@ -3,42 +3,27 @@ Order: 30 Title: Continuous Deployment Description: | Sometimes you just want the version to keep changing and deploy continuously. - In this case, Continuous Deployment is a good mode to operate GitVersion by. RedirectFrom: docs/reference/versioning-modes/continuous-deployment --- -Continuous Deployment is the process of checking into main, running all the -tests and if everything goes green it is automatically pushed to production. - -A good case for Continuous Deployment is when using Octopus deploy, as you -cannot publish the same version of a package into the same feed. +Continuous Deployment is the process of checking into main and automatically +deploying to production. For this mode we follow the logic in [this blog post by Xavier Decoster][blog] on the issues of incrementing automatically. -As such we force a pre-release tag on all branches, this is fine for -applications but can cause problems for libraries. As such this mode may or may -not work for you, which leads us into a new mode in v4 of GitVersion: -[Mainline Development][mainline]. - -### Usage +## How Continuous Deployment affects GitVersion -By default GitVersion is set up to do Continuous Deployment versioning on the -`develop` branch, but for all other branches, [Continuous -Delivery][continuous-delivery] is the default mode. From version 3 of GitVersion -this behavior is [configurable][configuration]. +The thing about continuous deployment is that there will be only one version +to deploy on production. This means that GitVersion will build +**the same semantic version** for every commit until it has been tagged. For instance: -The default behavior for v3 and how v1 & 2 worked was that the version only -incremented after a tag, which signified a release. In v3 you can simply switch -the default mode in the [configuration][configuration] from `ContinuousDelivery` -to `ContinuousDeployment` and the version will then increment each commit, -giving you the features of GitVersion with continuous deployment: +* 1.2.0 +* 1.1.0 (tag: 1.1.0) <-- This is the version which has been deployed on production +* 1.1.0 +* 1.1.1 -```yaml -mode: ContinuousDeployment -``` +Tags are required in this mode to communicate when the deployement happens on production. -[blog]: https://www.xavierdecoster.com/semantic-versioning-auto-incremented-nuget-package-versions [configuration]: /docs/reference/configuration -[continuous-delivery]: /docs/reference/modes/continuous-delivery -[mainline]: /docs/reference/modes/mainline +[blog]: https://www.xavierdecoster.com/semantic-versioning-auto-incremented-nuget-package-versions diff --git a/docs/input/docs/reference/modes/mainline.md b/docs/input/docs/reference/modes/mainline.md deleted file mode 100644 index d88129e418..0000000000 --- a/docs/input/docs/reference/modes/mainline.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -Order: 40 -Title: Mainline Development -Description: | - Mainline Development versioning mode works like the Continuous Delivery, - except that it tells GitVersion to *infer* releases from merges and commits - to `main`. -RedirectFrom: docs/reference/versioning-modes/mainline-development ---- - -:::{.alert .alert-danger} - **`Mainline` mode was deprecated in version 6 of GitVersion.** See [the following pull request](https://github.com/GitTools/GitVersion/pull/3844) for details. -::: - -Mainline Development is enabled when using [GitHubFlow][githubflow] or any other -strategy where you develop on `main`. The main rule of mainline development is -that **main is always in a state that it could be deployed to production**. This -means that pull requests should not be merged until they are ready to go out. - -To properly achieve mainline development you need confidence in your test suite -as if it goes green against a PR then you are confident that you can merge and -release that pull request. Another property of mainline development is normally -that you fix going forward, not revert. When an issue is discovered with a -release, add a test or some sort of check to make sure it won't happen again, -fix the issue, then do a release with the fix. - -Like all things, it is an approach and will work for some people and not for -others. GitVersion is unique in the fact that it works very well with mainline -development and the version numbers it generates are _predictive_ and indicate -what the next version to be released is. Most other approaches require bumping -the version number before the release which means that the version being built -and the version number which will be deployed are often different. - -This mode is great if you do not want to tag each release because you simply -deploy every commit to main. The behaviour of this mode is as follows: - -1. Calculate a base version (likely a tag in this mode) -2. Walk all commits from the base version commit -3. When a merge commit is found: - - * Calculate increments for each direct commit on main - * Calculate the increment for the branch - -4. Calculate increments for each remaining direct commit -5. For feature branches then calculate increment for the commits so far on your - feature branch. - -If you _do not want_ GitVersion to treat a commit or a pull request as a release -and increment the version you can use `+semver: none` or `+semver: skip` in a -commit message to skip incrementing for that commit. - -Here is an example of what mainline development looks like: - -![Mainline mode][mainline-img] - -:::{.alert .alert-warning} -**Warning** - -This approach can slow down over time, we recommend to tag -intermittently (maybe for minor or major releases) because then GitVersion -will start the version calculation from that point. Much like a snapshot in an -event sourced system. We will probably add in warnings to tag when things are -slowing down. -::: - -## Usage - -By default GitVersion is set up to do [Continuous Delivery][continuous-delivery] -versioning on all branches but `develop` (which does [Continuous -Deployment][continuous-deployment] by default). To change the [versioning -mode][modes] to Mainline Development, just change the [configuration][configuration] as such: - -```yaml -mode: Mainline -``` - -[configuration]: /docs/reference/configuration -[continuous-delivery]: /docs/reference/modes/continuous-delivery -[continuous-deployment]: /docs/reference/modes/continuous-deployment -[githubflow]: /docs/learn/branching-strategies/githubflow -[mainline-img]: /docs/img/mainline-mode.png -[modes]: /docs/reference/modes diff --git a/docs/input/docs/reference/modes/manual-deployment.md b/docs/input/docs/reference/modes/manual-deployment.md new file mode 100644 index 0000000000..357c65eedd --- /dev/null +++ b/docs/input/docs/reference/modes/manual-deployment.md @@ -0,0 +1,38 @@ +--- +Order: 10 +Title: Manual Deployment +Description: | + The Manual Deployment mode can be used to remain on the same pre-released + version until it has been deployed dedicatedly. + +RedirectFrom: docs/reference/versioning-modes/manual-deployment +--- + +Having not the necessity to deploy the build artifacts on every commit is an +indecation of using the __Manual Deployment__ mode. This mode can be used to +remain on the same pre-released version until it has been deployed dedicatedly. + +## How Manual Deployment affects GitVersion + +The thing about manual deployment is that there will be _multiple_ candidates +to deploy on testing and it is a human choice to deploy. This means that +GitVersion will build **the same semantic version** until that version is +deployed. For instance: + +* 1.1.0-2+1 +* 1.1.0-1+2 (tag: 1.1.0-1) <-- This is the version which has been deployed on testing +* 1.1.0-1+1 +* 1.1.1-1+0 + +Tags are required in this mode to communicate when the release is done as it's +an external manual process. + +## Resources + +* [Configuration][configuration] +* [Continuous Delivery on Wikipedia][wikipedia] +* [Continuous Delivery, the book][book] + +[configuration]: /docs/reference/configuration +[book]: https://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912 +[wikipedia]: https://en.wikipedia.org/wiki/Continuous_delivery From e67abc4b737a4ef2d86c9aae1384573c01a07506 Mon Sep 17 00:00:00 2001 From: Hardy Hobeck <56404113+HHobeck@users.noreply.github.com> Date: Tue, 11 Jun 2024 14:38:46 +0200 Subject: [PATCH 4/9] Update continuous-delivery.md --- docs/input/docs/reference/modes/continuous-delivery.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/input/docs/reference/modes/continuous-delivery.md b/docs/input/docs/reference/modes/continuous-delivery.md index 31d6ae2319..7074c40704 100644 --- a/docs/input/docs/reference/modes/continuous-delivery.md +++ b/docs/input/docs/reference/modes/continuous-delivery.md @@ -3,8 +3,8 @@ Order: 20 Title: Continuous Delivery Description: | Sometimes you just want the version to keep changing and deploy continuously - to an testing system. In this case, Continuous Delivery is a good mode to - operate GitVersion by. + to an testing system. In this case, Continuous Delivery is a good mode to + operate GitVersion by. RedirectFrom: docs/reference/versioning-modes/continuous-delivery --- From 33594576c03a00872a3f5ca5fd6f21ebb6cab883 Mon Sep 17 00:00:00 2001 From: Hardy Hobeck <56404113+HHobeck@users.noreply.github.com> Date: Tue, 11 Jun 2024 14:39:28 +0200 Subject: [PATCH 5/9] Update manual-deployment.md --- docs/input/docs/reference/modes/manual-deployment.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/input/docs/reference/modes/manual-deployment.md b/docs/input/docs/reference/modes/manual-deployment.md index 357c65eedd..2b9a7eeafb 100644 --- a/docs/input/docs/reference/modes/manual-deployment.md +++ b/docs/input/docs/reference/modes/manual-deployment.md @@ -3,8 +3,7 @@ Order: 10 Title: Manual Deployment Description: | The Manual Deployment mode can be used to remain on the same pre-released - version until it has been deployed dedicatedly. - + version until it has been deployed dedicatedly. RedirectFrom: docs/reference/versioning-modes/manual-deployment --- From 199a9605ac055299f0477d87f33a5901f0259fda Mon Sep 17 00:00:00 2001 From: Hardy Hobeck <56404113+HHobeck@users.noreply.github.com> Date: Tue, 11 Jun 2024 14:41:25 +0200 Subject: [PATCH 6/9] Update continuous-deployment.md --- docs/input/docs/reference/modes/continuous-deployment.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/input/docs/reference/modes/continuous-deployment.md b/docs/input/docs/reference/modes/continuous-deployment.md index 0c2d285aab..852936e67f 100644 --- a/docs/input/docs/reference/modes/continuous-deployment.md +++ b/docs/input/docs/reference/modes/continuous-deployment.md @@ -25,5 +25,10 @@ to deploy on production. This means that GitVersion will build Tags are required in this mode to communicate when the deployement happens on production. +## Resources + +* [Configuration][configuration] +* [Semantic Versioning & auto-incremented NuGet package versions][blog] + [configuration]: /docs/reference/configuration [blog]: https://www.xavierdecoster.com/semantic-versioning-auto-incremented-nuget-package-versions From 78e2b167b92cf53091cf75dd4eccaf6accd757a2 Mon Sep 17 00:00:00 2001 From: Hardy Hobeck <56404113+HHobeck@users.noreply.github.com> Date: Tue, 11 Jun 2024 14:42:58 +0200 Subject: [PATCH 7/9] Update continuous-delivery.md --- docs/input/docs/reference/modes/continuous-delivery.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/input/docs/reference/modes/continuous-delivery.md b/docs/input/docs/reference/modes/continuous-delivery.md index 7074c40704..d1d2a1e712 100644 --- a/docs/input/docs/reference/modes/continuous-delivery.md +++ b/docs/input/docs/reference/modes/continuous-delivery.md @@ -29,6 +29,12 @@ Continuous delivery is good when you deploy continuously to an testing system. Tags are not required but optional in this mode to communicate when the release is done as it's an automated process. +## Resources + +* [Configuration][configuration] +* [Semantic Versioning & auto-incremented NuGet package versions][blog] +* [Continuous delivery][wikipedia] + [configuration]: /docs/reference/configuration [blog]: https://www.xavierdecoster.com/semantic-versioning-auto-incremented-nuget-package-versions [wikipedia]: https://en.wikipedia.org/wiki/Continuous_delivery From 8bf5b9c332305e0bd9adc96b06e2d7053a0ae5d5 Mon Sep 17 00:00:00 2001 From: HHobeck Date: Mon, 24 Jun 2024 13:18:27 +0200 Subject: [PATCH 8/9] Add TrunkBased workflow for experimental usage only --- docs/input/docs/reference/configuration.md | 86 +++++++++++++++++++ .../TrunkBased/{v1.yml => preview1.yml} | 0 .../GitVersion.Configuration.csproj | 4 +- 3 files changed, 88 insertions(+), 2 deletions(-) rename docs/input/docs/workflows/TrunkBased/{v1.yml => preview1.yml} (100%) diff --git a/docs/input/docs/reference/configuration.md b/docs/input/docs/reference/configuration.md index 57df2661aa..e185710262 100644 --- a/docs/input/docs/reference/configuration.md +++ b/docs/input/docs/reference/configuration.md @@ -37,6 +37,7 @@ The following supported workflow configurations are available in GitVersion and - GitFlow (GitFlow/v1) - GitHubFlow (GitHubFlow/v1) +- TrunkBased (TrunkBased/preview1) Example of using a `GitHubFlow` workflow with a different `tag-prefix`: @@ -338,6 +339,91 @@ is-release-branch: false is-main-branch: false ``` +The preview built-in configuration (experimental usage only) for the `TrunkBased` workflow (`workflow: TrunkBased/preview1`) looks like: + +```yaml +assembly-versioning-scheme: MajorMinorPatch +assembly-file-versioning-scheme: MajorMinorPatch +tag-prefix: '[vV]?' +version-in-branch-pattern: (?[vV]?\d+(\.\d+)?(\.\d+)?).* +major-version-bump-message: '\+semver:\s?(breaking|major)' +minor-version-bump-message: '\+semver:\s?(feature|minor)' +patch-version-bump-message: '\+semver:\s?(fix|patch)' +no-bump-message: '\+semver:\s?(none|skip)' +tag-pre-release-weight: 60000 +commit-date-format: yyyy-MM-dd +merge-message-formats: {} +update-build-number: true +semantic-version-format: Strict +strategies: +- Mainline +- ConfiguredNextVersion +branches: + main: + mode: ContinuousDeployment + label: '' + increment: Patch + prevent-increment: + of-merged-branch: true + when-current-commit-tagged: true + track-merge-target: false + regex: ^master$|^main$ + source-branches: [] + tracks-release-branches: false + is-release-branch: false + is-main-branch: true + pre-release-weight: 55000 + feature: + increment: Minor + regex: ^features?[/-](?.+) + prevent-increment: + when-current-commit-tagged: false + source-branches: + - main + pre-release-weight: 30000 + hotfix: + increment: Patch + regex: ^hotfix(es)?[/-](?.+) + prevent-increment: + when-current-commit-tagged: false + source-branches: + - main + pre-release-weight: 30000 + pull-request: + mode: ContinuousDelivery + label: PullRequest + increment: Inherit + label-number-pattern: '[/-](?\d+)' + regex: ^(pull|pull\-requests|pr)[/-] + source-branches: + - main + pre-release-weight: 30000 + unknown: + increment: Patch + regex: (?.+) + prevent-increment: + when-current-commit-tagged: false + source-branches: + - main + pre-release-weight: 30000 +ignore: + sha: [] +mode: ContinuousDelivery +label: '{BranchName}' +increment: Inherit +prevent-increment: + of-merged-branch: false + when-branch-merged: false + when-current-commit-tagged: true +track-merge-target: false +track-merge-message: true +commit-message-incrementing: Enabled +regex: '' +tracks-release-branches: false +is-release-branch: false +is-main-branch: false +``` + The details of the available options are as follows: ### workflow diff --git a/docs/input/docs/workflows/TrunkBased/v1.yml b/docs/input/docs/workflows/TrunkBased/preview1.yml similarity index 100% rename from docs/input/docs/workflows/TrunkBased/v1.yml rename to docs/input/docs/workflows/TrunkBased/preview1.yml diff --git a/src/GitVersion.Configuration/GitVersion.Configuration.csproj b/src/GitVersion.Configuration/GitVersion.Configuration.csproj index 17d9bbd4c4..cf3b09fcfe 100644 --- a/src/GitVersion.Configuration/GitVersion.Configuration.csproj +++ b/src/GitVersion.Configuration/GitVersion.Configuration.csproj @@ -40,10 +40,10 @@ - + - + From 7db84078ca6ceddaf74686b9e3aa04d879c30649 Mon Sep 17 00:00:00 2001 From: Hardy Hobeck <56404113+HHobeck@users.noreply.github.com> Date: Tue, 25 Jun 2024 18:56:53 +0200 Subject: [PATCH 9/9] Update docs/input/docs/learn/branching-strategies/gitflow/examples.md Co-authored-by: Artur --- .../docs/learn/branching-strategies/gitflow/examples.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/input/docs/learn/branching-strategies/gitflow/examples.md b/docs/input/docs/learn/branching-strategies/gitflow/examples.md index 057ce4c2a5..1511b617fb 100644 --- a/docs/input/docs/learn/branching-strategies/gitflow/examples.md +++ b/docs/input/docs/learn/branching-strategies/gitflow/examples.md @@ -87,9 +87,9 @@ be merged back afterwards. Finally the `main` branch is tagged with the released version. Release branches can be used in the `GitFlow` as well as `GitHubFlow` workflow. -Sometimes you -want to start on a large feature which may take a while to stabilize so you want -to keep it off main. In these scenarios you can either create a long lived +Sometimes you want to start on a large feature which may take a while +to stabilize so you want to keep it off main. +In these scenarios you can either create a long lived feature branch (if you do not know the version number this large feature will go into, and it's non-breaking) otherwise you can create a release branch for the next major version. You can then submit pull requests to the long lived feature