Skip to content

Commit 81aea83

Browse files
fix: if allowInitialDevelopmentVersions is set the major version should never be updated
1 parent 79334cd commit 81aea83

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

pkg/config/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ func SetFlags(cmd *cobra.Command) {
179179
cmd.Flags().Bool("ghr", false, "create a .ghr file with the parameters for ghr")
180180
cmd.Flags().Bool("no-ci", false, "run semantic-release locally")
181181
cmd.Flags().Bool("dry", false, "do not create release")
182-
cmd.Flags().Bool("allow-initial-development-versions", false, "semantic-release will start your initial development release at 0.1.0")
182+
cmd.Flags().Bool("allow-initial-development-versions", false, "semantic-release will start your initial development release at 0.1.0 and will handle breaking changes as minor version updates. This option will be ignored if a release with major version greater than or equal 1 exists.")
183183
cmd.Flags().Bool("allow-no-changes", false, "exit with code 0 if no changes are found, useful if semantic-release is automatically run")
184184
cmd.Flags().Bool("force-bump-patch-version", false, "increments the patch version if no changes are found")
185185
cmd.Flags().Bool("prepend-changelog", false, "if the changelog file already exist the new changelog is prepended")

pkg/semrel/semrel.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@ func applyChange(rawVersion string, rawChange *Change, allowInitialDevelopmentVe
3333
change.Major = true
3434
}
3535

36+
// never allow major version changed if allowInitialDevelopmentVersions is set
37+
if allowInitialDevelopmentVersions && version.Major() == 0 && change.Major {
38+
change.Major = false
39+
change.Minor = true
40+
}
41+
3642
if allowInitialDevelopmentVersions && version.Major() == 0 && version.Minor() == 0 {
3743
change.Minor = true
3844
}

pkg/semrel/semrel_test.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func TestApplyChange(t *testing.T) {
5050
{"0.0.0", NoChange, "0.1.0", true, false},
5151
{"0.0.0", PatchChange, "0.1.0", true, false},
5252
{"0.0.0", MinorChange, "0.1.0", true, false},
53-
{"0.0.0", MajorChange, "1.0.0", true, false},
53+
{"0.0.0", MajorChange, "0.1.0", true, false},
5454

5555
{"1.0.0", NoChange, "", false, false},
5656
{"1.0.0", NoChange, "1.0.1", false, true},
@@ -63,6 +63,11 @@ func TestApplyChange(t *testing.T) {
6363
{"2.0.0-beta", MajorChange, "2.0.0-beta.1", false, false},
6464
{"2.0.0-beta.2", MajorChange, "2.0.0-beta.3", false, false},
6565
{"2.0.0-beta.1.1", MajorChange, "2.0.0-beta.2", false, false},
66+
67+
{"0.1.0", MajorChange, "0.2.0", true, false},
68+
{"1.0.0", MajorChange, "2.0.0", true, false},
69+
{"0.1.0", MinorChange, "0.2.0", true, false},
70+
{"0.1.0", NoChange, "0.1.1", true, true},
6671
}
6772

6873
for _, tc := range testCases {

0 commit comments

Comments
 (0)