Skip to content

Commit 59e7b96

Browse files
committed
Add links from versioning-mode to the individual mode pages.
1 parent 5c3acad commit 59e7b96

File tree

1 file changed

+35
-14
lines changed

1 file changed

+35
-14
lines changed

docs/reference/versioning-mode.md

Lines changed: 35 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,40 +3,61 @@ GitVersion has multiple modes to fit different different ways of working.
33

44

55
## Continuous Delivery
6-
This is the default mode, GitVersion calculates the next version and will use that until that is released. For instance:
6+
[Continuous Delivery](/reference/continuous-delivery) is the default mode. In
7+
this mode, GitVersion calculates the next version and will use that until that
8+
is released. For instance:
79

810
- 1.1.0+5
911
- 1.1.0+6
10-
- 1.1.0+7 <-- This is the artifact we release, tag the commit which created this version
12+
- 1.1.0+7 <-- This is the artifact we release, tag the commit which created
13+
this version
1114
- 1.1.1+0
1215

13-
Tags are required in this mode to communicate when the release is done as it's an external manual process.
16+
Tags are required in this mode to communicate when the release is done as it's
17+
an external manual process.
1418

1519
## Continuous deployment
16-
Sometimes you just want the version to keep changing and continuously deploy. A good case for this is when using Octopus deploy, as you cannot publish the same version of a package into the same feed.
20+
Sometimes you just want the version to keep changing and
21+
[continuously deploy](/reference/continuous-deployment). A good case for this is
22+
when using Octopus deploy, as you cannot publish the same version of a package
23+
into the same feed.
1724

18-
For this mode we followed the logic in this blog post by Xavier Decoster on the issues of incrementing automatically - http://www.xavierdecoster.com/semantic-versioning-auto-incremented-nuget-package-versions
25+
For this mode we followed the logic in [this blog post by Xavier Decoster][blog]
26+
on the issues of incrementing automatically.
1927

20-
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. Mainline development.
28+
As such we force a pre-release tag on all branches, this is fine for
29+
applications but can cause problems for libraries. As such this mode may or may
30+
not work for you, which leads us into a new mode in v4. Mainline development.
2131

2232
## Mainline development
23-
Mainline development works more like the Continuous Delivery mode, except that it tells GitVersion to *infer* releases from merges and commits to `master`.
33+
[Mainline development](/reference/mainline-development) works more like the
34+
[Continuous Delivery mode](/reference/continuous-delivery), except that
35+
it tells GitVersion to *infer* releases from merges and commits to `master`.
2436

25-
This mode is great if you do not want to tag each release because you simply deploy every commit to master. The behaviour of this mode is as follows:
37+
This mode is great if you do not want to tag each release because you simply
38+
deploy every commit to master. The behaviour of this mode is as follows:
2639

2740
1. Calclate a base version (likely a tag in this mode)
28-
1. Walk all commits from the base version commit
29-
1. When a merge commit is found:
41+
2. Walk all commits from the base version commit
42+
3. When a merge commit is found:
3043
- Calculate increments for each direct commit on master
3144
- Calculate the increment for the branch
32-
1. Calculate increments for each remaining direct commit
33-
1. For feature branches then calculate increment for the commits so far on your feature branch.
45+
4. Calculate increments for each remaining direct commit
46+
5. For feature branches then calculate increment for the commits so far on your
47+
feature branch.
3448

35-
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.
49+
If you *do not want* GitVersion to treat a commit or a pull request as a release
50+
and increment the version you can use `+semver: none` or `+semver: skip` in a
51+
commit message to skip incrementing for that commit.
3652

3753
Here is an example of what mainline development looks like:
3854

3955
![Mainline mode](./img/mainline-mode.png)
4056

57+
**WARNING:** This approach can slow down over time, we recommend to tag
58+
intermitently (maybe for minor or major releases) because then GitVersion
59+
will start the version calculation from that point. Much like a snapshot in an
60+
event sourced system. We will probably add in warnings to tag when things are
61+
slowing down.
4162

42-
**WARNING:** This approach can slow down over time, we recommend to tag intermitently (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.
63+
[blog]: http://www.xavierdecoster.com/semantic-versioning-auto-incremented-nuget-package-versions

0 commit comments

Comments
 (0)