You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This package is still under development, so bugs may be encountered and crucial features might be missing. Use it solely for testing the library at this stage. For more details, see [tscpp/conventional-versioning#1](https://github.com/tscpp/conventional-versioning/issues/1).
9
-
10
-
The semantic versioning specification allows this library to introduce **breaking changes in any release** during the `0.x` major version.
11
-
12
6
## Introduction
13
7
14
8
Conventional Versioning is a library designed to simplify the versioning of packages, particularly in larger monorepo setups. It uses [conventional commits] to detect new versions for packages automatically but also supports manual version promotion if needed. As expected, it adheres to [semantic versioning] (semver).
@@ -25,14 +19,63 @@ Manual changes (promotions and pre-releases) are stored in the config file until
25
19
26
20
### Features
27
21
28
-
-**Simplified Version Management**: Easily manage the versioning of your packages.
29
-
-**Version Synchronization**: Link and fix versions between related packages.
30
-
-**Monorepo Support**: Seamlessly handle multiple packages within monorepos.
31
-
-**Pre-releases**: Create and manage individual pre-releases for your packages.
32
-
-**Manual Version Promotion**: Manually promote specific packages to new versions.
33
-
-**Dependency Updates**: Automatically update the versions of dependent packages.
34
-
-**Automated Version Detection**: Use conventional commits to automatically detect and set new versions.
35
-
-**High Configurability**: Customize the tool to fit various workflows and requirements.
22
+
<table>
23
+
<thead>
24
+
<tr>
25
+
<thwidth="33%">
26
+
Single- & monorepo
27
+
</th>
28
+
<thwidth="33%">
29
+
Independant versions
30
+
</th>
31
+
<thwidth="33%">
32
+
Pre-releases
33
+
</th>
34
+
</tr>
35
+
</thead>
36
+
<tbody>
37
+
<tr>
38
+
<td>
39
+
We support both single-package and multi-package repositories seamlessly.
40
+
</td>
41
+
<td>
42
+
Each package gets its own version and updates only when necessary.
43
+
</td>
44
+
<td>
45
+
Easily manage multiple independent pre-release versions using the interactive CLI.
46
+
</td>
47
+
</tr>
48
+
</tbody>
49
+
</table>
50
+
51
+
<table>
52
+
<thead>
53
+
<tr>
54
+
<thwidth="33%">
55
+
Promotions
56
+
</th>
57
+
<thwidth="33%">
58
+
Dependencies
59
+
</th>
60
+
<thwidth="33%">
61
+
Automated
62
+
</th>
63
+
</tr>
64
+
</thead>
65
+
<tbody>
66
+
<tr>
67
+
<td>
68
+
Manually promote a new version bump using the interactive CLI.
69
+
</td>
70
+
<td>
71
+
Internal dependencies within the workspace are automatically updated.
72
+
</td>
73
+
<td>
74
+
This solution requires no manual work and can be configured to handle versioning for you.
75
+
</td>
76
+
</tr>
77
+
</tbody>
78
+
</table>
36
79
37
80
## Installation
38
81
@@ -66,7 +109,7 @@ npx conver init
66
109
67
110
You can specify which packages or patterns of packages to include or exclude from versioning. If the `include` field is specified, even as an empty array, all packages not matching the `include` patterns will be excluded. Additionally, you can use the `ignorePrivatePackages` option to control whether all private packages are ignored or included by default.
68
111
69
-
```json
112
+
```jsonc
70
113
{
71
114
"include": [
72
115
// Include all packages under @some-scope/
@@ -86,7 +129,7 @@ You can specify which packages or patterns of packages to include or exclude fro
86
129
87
130
You can specify custom mapping from conventional commit types to the version bump like the below example.
88
131
89
-
```json
132
+
```jsonc
90
133
{
91
134
"customTypes": {
92
135
// Commit "addition: some features" will infer a minor bump for affected packages.
@@ -99,7 +142,7 @@ You can specify custom mapping from conventional commit types to the version bum
99
142
100
143
There are two methods for linking packages. `linked` ensures that all major and minor versions are released together, while `fixed` ensures that all versions, including patches, are released together.
0 commit comments