tinysemver 2.0.1__tar.gz → 2.0.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tinysemver
3
- Version: 2.0.1
3
+ Version: 2.0.3
4
4
  Summary: Tiny Semantic Versioning (SemVer) library, that doesn't depend on 300K lines of JavaScript
5
5
  Author-email: Ash Vardanian <1983160+ashvardanian@users.noreply.github.com>, Guillaume de Rouville <31691250+grouville@users.noreply.github.com>
6
6
  License: Apache License
@@ -224,9 +224,9 @@ Classifier: Programming Language :: Python :: 3.11
224
224
  Description-Content-Type: text/markdown
225
225
  License-File: LICENSE
226
226
 
227
- # Tiny Sem Ver
227
+ ![](https://github.com/ashvardanian/ashvardanian/blob/master/repositories/TinySemVer.jpg)
228
228
 
229
- Minimalistic [Semantic Versioning](https://semver.org/) package for projects following [Conventional Commits](https://www.conventionalcommits.org/) in a single short Python file.
229
+ __TinySemVer__ is a minimalistic [Semantic Versioning](https://semver.org/) package for projects following [Conventional Commits](https://www.conventionalcommits.org/) in a single short Python file.
230
230
  In plain English, if your commit messages look like `feat: add new feature` or `fix: bugfix`, this package will automate releasing new "GIT tags" based on the commit messages.
231
231
  Here is how to integrate it into your project CI:
232
232
 
@@ -239,6 +239,9 @@ $ tinysemver --dry-run --verbose
239
239
 
240
240
  The `--dry-run` flag will only print the next version without changing any files.
241
241
  Great for pre-release CI pipelines.
242
+
243
+ ## Usage Details for the Command Line Interface
244
+
242
245
  If you need more control over the default specification, here are more options you can run against the files in this repository:
243
246
 
244
247
  ```sh
@@ -246,7 +249,7 @@ If you need more control over the default specification, here are more options y
246
249
  $ tinysemver --verbose \
247
250
  --major-verbs 'breaking,break,major' \
248
251
  --minor-verbs 'feature,minor,add,new' \
249
- --patch-verbs 'fix,patch,bug,improve,docs' \
252
+ --patch-verbs 'fix,patch,bug,improve,docs,make' \
250
253
  --changelog-file 'CHANGELOG.md' \
251
254
  --version-file 'VERSION' \
252
255
  --update-version-in 'pyproject.toml' '^version = "(\d+\.\d+\.\d+)"' \
@@ -262,7 +265,7 @@ Here is an example of passing even more parameters for a project like `stringzil
262
265
  $ tinysemver --verbose \
263
266
  --major-verbs 'breaking,break,major' \
264
267
  --minor-verbs 'feature,minor,add,new' \
265
- --patch-verbs 'fix,patch,bug,improve,docs' \
268
+ --patch-verbs 'fix,patch,bug,improve,docs,make' \
266
269
  --changelog-file 'CHANGELOG.md' \
267
270
  --version-file 'VERSION' \
268
271
  --update-version-in 'pyproject.toml' '^version = "(\d+\.\d+\.\d+)"' \
@@ -292,7 +295,7 @@ $ tinysemver --verbose \
292
295
  > + version: 1.3.0 # Only in verbose mode
293
296
  > Appending to changelog file: CHANGELOG.md
294
297
  > = skipping 250 lines # Only in verbose mode
295
- > + addng 30 lines # Only in verbose mode
298
+ > + adding 30 lines # Only in verbose mode
296
299
  ```
297
300
 
298
301
  Alternatively, you can just ask for `--help`:
@@ -301,7 +304,7 @@ Alternatively, you can just ask for `--help`:
301
304
  $ tinysemver --help
302
305
  ```
303
306
 
304
- ## GitHub CI Action
307
+ ## Usage Details for the GitHub CI Action
305
308
 
306
309
  TinySemVer can be easily integrated into your GitHub Actions CI pipeline.
307
310
  Assuming the differences between YAML and shell notation, some arguments are passed in a different form, like `--update-version-in`.
@@ -328,7 +331,7 @@ jobs:
328
331
  with:
329
332
  major-verbs: 'breaking,break,major'
330
333
  minor-verbs: 'feature,minor,add,new'
331
- patch-verbs: 'fix,patch,bug,improve,docs'
334
+ patch-verbs: 'fix,patch,bug,improve,docs,make'
332
335
  changelog-file: 'CHANGELOG.md'
333
336
  version-file: 'VERSION'
334
337
  update-version-in: 'pyproject.toml:version = "(.*)"' # Use colon instead of space
@@ -387,11 +390,11 @@ Also keep in mind:
387
390
 
388
391
  For more information on CI configurations and pushing changes in GitHub Actions, see the [semantic-release GitHub Actions guide](https://github.com/semantic-release/semantic-release/blob/master/docs/recipes/ci-configurations/github-actions.md#pushing-packagejson-changes-to-a-master-branch).
389
392
 
390
- ## Why?
393
+ ## Why Create Another SemVer Tool?
391
394
 
392
395
  In the past I was using [semantic-release](https://github.com/semantic-release/semantic-release) for my 10+ projects.
393
396
  At some point, a breaking change in the dependencies broke all my projects CI pipelines for a month, affecting dozens of tech companies using those libraries.
394
- I felt miserable trying to trace the issue and reluctant to go through 363K lines of low-quality JavaScript code to find the bug.
397
+ I felt miserable trying to trace the issue and reluctant to go through __363K lines of low-quality JavaScript code__ to find the bug.
395
398
  Yes, it's 363K lines of code:
396
399
 
397
400
  ```sh
@@ -406,26 +409,7 @@ Language files blank comment code
406
409
  --------------------------------------------------------------------------------
407
410
  JavaScript 4902 48080 81205 363424
408
411
  TypeScript 732 7008 73034 79367
409
- Markdown 633 26835 0 66869
410
- JSON 599 58 0 64808
411
- HTML 86 1821 0 25365
412
- Python 57 4985 9193 23704
413
- CSS 97 1360 739 6346
414
- YAML 73 79 51 1198
415
- CoffeeScript 18 193 16 1122
416
- EJS 1 67 0 521
417
- Lua 22 95 29 434
418
- Handlebars 11 30 0 188
419
- C# 1 55 9 186
420
- Bourne Shell 7 30 11 168
421
- Bourne Again Shell 2 22 24 84
422
- TOML 1 8 31 80
423
- make 3 17 11 57
424
- PowerShell 2 12 4 48
425
- DOS Batch 5 9 0 42
426
- Fish Shell 1 5 14 21
427
- C++ 2 12 19 20
428
- Nix 1 1 0 19
412
+ ... ... ... ... ...
429
413
  --------------------------------------------------------------------------------
430
414
  SUM: 7256 90782 164390 634071
431
415
  --------------------------------------------------------------------------------
@@ -435,20 +419,18 @@ Here is the `cloc` output for `tinysemver`:
435
419
 
436
420
  ```sh
437
421
  $ tinysemver$ cloc .
438
- 11 text files.
439
- 6 unique files.
422
+ 17 text files.
423
+ 13 unique files.
440
424
  6 files ignored.
441
425
 
442
426
  github.com/AlDanial/cloc v 1.96 T=0.01 s (660.7 files/s, 44267.6 lines/s)
443
427
  -------------------------------------------------------------------------------
444
428
  Language files blank comment code
445
429
  -------------------------------------------------------------------------------
446
- Python 1 45 27 194
447
- Markdown 1 13 0 71
448
- TOML 1 6 2 33
449
- Text 3 1 0 10
430
+ Python 1 79 93 493
431
+ ... ... ... ... ...
450
432
  -------------------------------------------------------------------------------
451
- SUM: 6 65 29 308
433
+ SUM: 13 227 107 1124
452
434
  -------------------------------------------------------------------------------
453
435
  ```
454
436
 
@@ -458,41 +440,13 @@ SUM: 6 65 29 308
458
440
  - Pre-release versions, like `1.2.3-alpha.1`. Not needed for most projects.
459
441
  - GenAI.
460
442
 
461
- For reference, according to SemVer 2.0, all [following versions](https://regex101.com/r/Ly7O1x/3/) are valid:
462
-
463
- ```
464
- 1.1.2-prerelease+meta
465
- 1.1.2+meta
466
- 1.1.2+meta-valid
467
- 1.0.0-alpha
468
- 1.0.0-beta
469
- 1.0.0-alpha.beta.1
470
- 1.0.0-alpha.1
471
- 1.0.0-alpha0.valid
472
- 1.0.0-alpha.0valid
473
- 1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay
474
- 1.0.0-rc.1+build.1
475
- 2.0.0-rc.1+build.123
476
- 1.2.3-beta
477
- 10.2.3-DEV-SNAPSHOT
478
- 1.2.3-SNAPSHOT-123
479
- 2.0.0+build.1848
480
- 2.0.1-alpha.1227
481
- 1.0.0-alpha+beta
482
- 1.2.3----RC-SNAPSHOT.12.9.1--.12+788
483
- 1.2.3----R-S.12.9.1--.12+meta
484
- 1.2.3----RC-SNAPSHOT.12.9.1--.12
485
- 1.0.0+0.build.1-rc.10000aaa-kk-0.1
486
- 1.0.0-0A.is.legal
487
- ```
488
-
489
- Probably very useful for 2-3 projects, I didn't need to support any of them yet.
443
+ > For reference, according to SemVer 2.0, all [following versions](https://regex101.com/r/Ly7O1x/3/) are valid: `1.1.2-prerelease+meta`, `1.1.2+meta`, `1.1.2+meta-valid`, `1.0.0-alpha`, `1.0.0-beta`, `1.0.0-alpha.beta.1`, `1.0.0-alpha.1`, `1.0.0-alpha0.valid`, `1.0.0-alpha.0valid`, `1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay`, `1.0.0-rc.1+build.1`, `2.0.0-rc.1+build.123`, `1.2.3-beta`, `10.2.3-DEV-SNAPSHOT`, `1.2.3-SNAPSHOT-123`, `2.0.0+build.1848`, `2.0.1-alpha.1227`, `1.0.0-alpha+beta`, `1.2.3----RC-SNAPSHOT.12.9.1--.12+788`, `1.2.3----R-S.12.9.1--.12+meta`, `1.2.3----RC-SNAPSHOT.12.9.1--.12`, `1.0.0+0.build.1-rc.10000aaa-kk-0.1`, `1.0.0-0A.is.legal`.
490
444
 
491
445
  ## Examples
492
446
 
493
447
  Assembling RegEx queries can be hard.
494
448
  Luckily, there aren't too many files to update in most projects.
495
- Below is an example of a pipeline for the USearch project, that has bindings to 10 programming languages.
449
+ Below is an example of a pipeline for the [USearch](https://github.com/unum-cloud/usearch) project, that has bindings to 10 programming languages.
496
450
  Feel free to add other sources and examples.
497
451
 
498
452
  ```sh
@@ -515,7 +469,7 @@ $ wget https://github.com/unum-cloud/usearch/raw/main/include/usearch/index.hpp
515
469
  $ tinysemver --dry-run --verbose \
516
470
  --major-verbs 'breaking,break,major' \
517
471
  --minor-verbs 'feature,minor,add,new' \
518
- --patch-verbs 'fix,patch,bug,improve,docs' \
472
+ --patch-verbs 'fix,patch,bug,improve,docs,make' \
519
473
  --version-file 'example/VERSION' \
520
474
  --changelog-file 'example/CHANGELOG.md' \
521
475
  --update-version-in 'example/CITATION.cff' '^version: (\d+\.\d+\.\d+)' \
@@ -1,6 +1,6 @@
1
- # Tiny Sem Ver
1
+ ![](https://github.com/ashvardanian/ashvardanian/blob/master/repositories/TinySemVer.jpg)
2
2
 
3
- Minimalistic [Semantic Versioning](https://semver.org/) package for projects following [Conventional Commits](https://www.conventionalcommits.org/) in a single short Python file.
3
+ __TinySemVer__ is a minimalistic [Semantic Versioning](https://semver.org/) package for projects following [Conventional Commits](https://www.conventionalcommits.org/) in a single short Python file.
4
4
  In plain English, if your commit messages look like `feat: add new feature` or `fix: bugfix`, this package will automate releasing new "GIT tags" based on the commit messages.
5
5
  Here is how to integrate it into your project CI:
6
6
 
@@ -13,6 +13,9 @@ $ tinysemver --dry-run --verbose
13
13
 
14
14
  The `--dry-run` flag will only print the next version without changing any files.
15
15
  Great for pre-release CI pipelines.
16
+
17
+ ## Usage Details for the Command Line Interface
18
+
16
19
  If you need more control over the default specification, here are more options you can run against the files in this repository:
17
20
 
18
21
  ```sh
@@ -20,7 +23,7 @@ If you need more control over the default specification, here are more options y
20
23
  $ tinysemver --verbose \
21
24
  --major-verbs 'breaking,break,major' \
22
25
  --minor-verbs 'feature,minor,add,new' \
23
- --patch-verbs 'fix,patch,bug,improve,docs' \
26
+ --patch-verbs 'fix,patch,bug,improve,docs,make' \
24
27
  --changelog-file 'CHANGELOG.md' \
25
28
  --version-file 'VERSION' \
26
29
  --update-version-in 'pyproject.toml' '^version = "(\d+\.\d+\.\d+)"' \
@@ -36,7 +39,7 @@ Here is an example of passing even more parameters for a project like `stringzil
36
39
  $ tinysemver --verbose \
37
40
  --major-verbs 'breaking,break,major' \
38
41
  --minor-verbs 'feature,minor,add,new' \
39
- --patch-verbs 'fix,patch,bug,improve,docs' \
42
+ --patch-verbs 'fix,patch,bug,improve,docs,make' \
40
43
  --changelog-file 'CHANGELOG.md' \
41
44
  --version-file 'VERSION' \
42
45
  --update-version-in 'pyproject.toml' '^version = "(\d+\.\d+\.\d+)"' \
@@ -66,7 +69,7 @@ $ tinysemver --verbose \
66
69
  > + version: 1.3.0 # Only in verbose mode
67
70
  > Appending to changelog file: CHANGELOG.md
68
71
  > = skipping 250 lines # Only in verbose mode
69
- > + addng 30 lines # Only in verbose mode
72
+ > + adding 30 lines # Only in verbose mode
70
73
  ```
71
74
 
72
75
  Alternatively, you can just ask for `--help`:
@@ -75,7 +78,7 @@ Alternatively, you can just ask for `--help`:
75
78
  $ tinysemver --help
76
79
  ```
77
80
 
78
- ## GitHub CI Action
81
+ ## Usage Details for the GitHub CI Action
79
82
 
80
83
  TinySemVer can be easily integrated into your GitHub Actions CI pipeline.
81
84
  Assuming the differences between YAML and shell notation, some arguments are passed in a different form, like `--update-version-in`.
@@ -102,7 +105,7 @@ jobs:
102
105
  with:
103
106
  major-verbs: 'breaking,break,major'
104
107
  minor-verbs: 'feature,minor,add,new'
105
- patch-verbs: 'fix,patch,bug,improve,docs'
108
+ patch-verbs: 'fix,patch,bug,improve,docs,make'
106
109
  changelog-file: 'CHANGELOG.md'
107
110
  version-file: 'VERSION'
108
111
  update-version-in: 'pyproject.toml:version = "(.*)"' # Use colon instead of space
@@ -161,11 +164,11 @@ Also keep in mind:
161
164
 
162
165
  For more information on CI configurations and pushing changes in GitHub Actions, see the [semantic-release GitHub Actions guide](https://github.com/semantic-release/semantic-release/blob/master/docs/recipes/ci-configurations/github-actions.md#pushing-packagejson-changes-to-a-master-branch).
163
166
 
164
- ## Why?
167
+ ## Why Create Another SemVer Tool?
165
168
 
166
169
  In the past I was using [semantic-release](https://github.com/semantic-release/semantic-release) for my 10+ projects.
167
170
  At some point, a breaking change in the dependencies broke all my projects CI pipelines for a month, affecting dozens of tech companies using those libraries.
168
- I felt miserable trying to trace the issue and reluctant to go through 363K lines of low-quality JavaScript code to find the bug.
171
+ I felt miserable trying to trace the issue and reluctant to go through __363K lines of low-quality JavaScript code__ to find the bug.
169
172
  Yes, it's 363K lines of code:
170
173
 
171
174
  ```sh
@@ -180,26 +183,7 @@ Language files blank comment code
180
183
  --------------------------------------------------------------------------------
181
184
  JavaScript 4902 48080 81205 363424
182
185
  TypeScript 732 7008 73034 79367
183
- Markdown 633 26835 0 66869
184
- JSON 599 58 0 64808
185
- HTML 86 1821 0 25365
186
- Python 57 4985 9193 23704
187
- CSS 97 1360 739 6346
188
- YAML 73 79 51 1198
189
- CoffeeScript 18 193 16 1122
190
- EJS 1 67 0 521
191
- Lua 22 95 29 434
192
- Handlebars 11 30 0 188
193
- C# 1 55 9 186
194
- Bourne Shell 7 30 11 168
195
- Bourne Again Shell 2 22 24 84
196
- TOML 1 8 31 80
197
- make 3 17 11 57
198
- PowerShell 2 12 4 48
199
- DOS Batch 5 9 0 42
200
- Fish Shell 1 5 14 21
201
- C++ 2 12 19 20
202
- Nix 1 1 0 19
186
+ ... ... ... ... ...
203
187
  --------------------------------------------------------------------------------
204
188
  SUM: 7256 90782 164390 634071
205
189
  --------------------------------------------------------------------------------
@@ -209,20 +193,18 @@ Here is the `cloc` output for `tinysemver`:
209
193
 
210
194
  ```sh
211
195
  $ tinysemver$ cloc .
212
- 11 text files.
213
- 6 unique files.
196
+ 17 text files.
197
+ 13 unique files.
214
198
  6 files ignored.
215
199
 
216
200
  github.com/AlDanial/cloc v 1.96 T=0.01 s (660.7 files/s, 44267.6 lines/s)
217
201
  -------------------------------------------------------------------------------
218
202
  Language files blank comment code
219
203
  -------------------------------------------------------------------------------
220
- Python 1 45 27 194
221
- Markdown 1 13 0 71
222
- TOML 1 6 2 33
223
- Text 3 1 0 10
204
+ Python 1 79 93 493
205
+ ... ... ... ... ...
224
206
  -------------------------------------------------------------------------------
225
- SUM: 6 65 29 308
207
+ SUM: 13 227 107 1124
226
208
  -------------------------------------------------------------------------------
227
209
  ```
228
210
 
@@ -232,41 +214,13 @@ SUM: 6 65 29 308
232
214
  - Pre-release versions, like `1.2.3-alpha.1`. Not needed for most projects.
233
215
  - GenAI.
234
216
 
235
- For reference, according to SemVer 2.0, all [following versions](https://regex101.com/r/Ly7O1x/3/) are valid:
236
-
237
- ```
238
- 1.1.2-prerelease+meta
239
- 1.1.2+meta
240
- 1.1.2+meta-valid
241
- 1.0.0-alpha
242
- 1.0.0-beta
243
- 1.0.0-alpha.beta.1
244
- 1.0.0-alpha.1
245
- 1.0.0-alpha0.valid
246
- 1.0.0-alpha.0valid
247
- 1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay
248
- 1.0.0-rc.1+build.1
249
- 2.0.0-rc.1+build.123
250
- 1.2.3-beta
251
- 10.2.3-DEV-SNAPSHOT
252
- 1.2.3-SNAPSHOT-123
253
- 2.0.0+build.1848
254
- 2.0.1-alpha.1227
255
- 1.0.0-alpha+beta
256
- 1.2.3----RC-SNAPSHOT.12.9.1--.12+788
257
- 1.2.3----R-S.12.9.1--.12+meta
258
- 1.2.3----RC-SNAPSHOT.12.9.1--.12
259
- 1.0.0+0.build.1-rc.10000aaa-kk-0.1
260
- 1.0.0-0A.is.legal
261
- ```
262
-
263
- Probably very useful for 2-3 projects, I didn't need to support any of them yet.
217
+ > For reference, according to SemVer 2.0, all [following versions](https://regex101.com/r/Ly7O1x/3/) are valid: `1.1.2-prerelease+meta`, `1.1.2+meta`, `1.1.2+meta-valid`, `1.0.0-alpha`, `1.0.0-beta`, `1.0.0-alpha.beta.1`, `1.0.0-alpha.1`, `1.0.0-alpha0.valid`, `1.0.0-alpha.0valid`, `1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay`, `1.0.0-rc.1+build.1`, `2.0.0-rc.1+build.123`, `1.2.3-beta`, `10.2.3-DEV-SNAPSHOT`, `1.2.3-SNAPSHOT-123`, `2.0.0+build.1848`, `2.0.1-alpha.1227`, `1.0.0-alpha+beta`, `1.2.3----RC-SNAPSHOT.12.9.1--.12+788`, `1.2.3----R-S.12.9.1--.12+meta`, `1.2.3----RC-SNAPSHOT.12.9.1--.12`, `1.0.0+0.build.1-rc.10000aaa-kk-0.1`, `1.0.0-0A.is.legal`.
264
218
 
265
219
  ## Examples
266
220
 
267
221
  Assembling RegEx queries can be hard.
268
222
  Luckily, there aren't too many files to update in most projects.
269
- Below is an example of a pipeline for the USearch project, that has bindings to 10 programming languages.
223
+ Below is an example of a pipeline for the [USearch](https://github.com/unum-cloud/usearch) project, that has bindings to 10 programming languages.
270
224
  Feel free to add other sources and examples.
271
225
 
272
226
  ```sh
@@ -289,7 +243,7 @@ $ wget https://github.com/unum-cloud/usearch/raw/main/include/usearch/index.hpp
289
243
  $ tinysemver --dry-run --verbose \
290
244
  --major-verbs 'breaking,break,major' \
291
245
  --minor-verbs 'feature,minor,add,new' \
292
- --patch-verbs 'fix,patch,bug,improve,docs' \
246
+ --patch-verbs 'fix,patch,bug,improve,docs,make' \
293
247
  --version-file 'example/VERSION' \
294
248
  --changelog-file 'example/CHANGELOG.md' \
295
249
  --update-version-in 'example/CITATION.cff' '^version: (\d+\.\d+\.\d+)' \
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "tinysemver"
7
- version = "2.0.1"
7
+ version = "2.0.3"
8
8
  description = "Tiny Semantic Versioning (SemVer) library, that doesn't depend on 300K lines of JavaScript"
9
9
  readme = "README.md"
10
10
  license = { file = "LICENSE" }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tinysemver
3
- Version: 2.0.1
3
+ Version: 2.0.3
4
4
  Summary: Tiny Semantic Versioning (SemVer) library, that doesn't depend on 300K lines of JavaScript
5
5
  Author-email: Ash Vardanian <1983160+ashvardanian@users.noreply.github.com>, Guillaume de Rouville <31691250+grouville@users.noreply.github.com>
6
6
  License: Apache License
@@ -224,9 +224,9 @@ Classifier: Programming Language :: Python :: 3.11
224
224
  Description-Content-Type: text/markdown
225
225
  License-File: LICENSE
226
226
 
227
- # Tiny Sem Ver
227
+ ![](https://github.com/ashvardanian/ashvardanian/blob/master/repositories/TinySemVer.jpg)
228
228
 
229
- Minimalistic [Semantic Versioning](https://semver.org/) package for projects following [Conventional Commits](https://www.conventionalcommits.org/) in a single short Python file.
229
+ __TinySemVer__ is a minimalistic [Semantic Versioning](https://semver.org/) package for projects following [Conventional Commits](https://www.conventionalcommits.org/) in a single short Python file.
230
230
  In plain English, if your commit messages look like `feat: add new feature` or `fix: bugfix`, this package will automate releasing new "GIT tags" based on the commit messages.
231
231
  Here is how to integrate it into your project CI:
232
232
 
@@ -239,6 +239,9 @@ $ tinysemver --dry-run --verbose
239
239
 
240
240
  The `--dry-run` flag will only print the next version without changing any files.
241
241
  Great for pre-release CI pipelines.
242
+
243
+ ## Usage Details for the Command Line Interface
244
+
242
245
  If you need more control over the default specification, here are more options you can run against the files in this repository:
243
246
 
244
247
  ```sh
@@ -246,7 +249,7 @@ If you need more control over the default specification, here are more options y
246
249
  $ tinysemver --verbose \
247
250
  --major-verbs 'breaking,break,major' \
248
251
  --minor-verbs 'feature,minor,add,new' \
249
- --patch-verbs 'fix,patch,bug,improve,docs' \
252
+ --patch-verbs 'fix,patch,bug,improve,docs,make' \
250
253
  --changelog-file 'CHANGELOG.md' \
251
254
  --version-file 'VERSION' \
252
255
  --update-version-in 'pyproject.toml' '^version = "(\d+\.\d+\.\d+)"' \
@@ -262,7 +265,7 @@ Here is an example of passing even more parameters for a project like `stringzil
262
265
  $ tinysemver --verbose \
263
266
  --major-verbs 'breaking,break,major' \
264
267
  --minor-verbs 'feature,minor,add,new' \
265
- --patch-verbs 'fix,patch,bug,improve,docs' \
268
+ --patch-verbs 'fix,patch,bug,improve,docs,make' \
266
269
  --changelog-file 'CHANGELOG.md' \
267
270
  --version-file 'VERSION' \
268
271
  --update-version-in 'pyproject.toml' '^version = "(\d+\.\d+\.\d+)"' \
@@ -292,7 +295,7 @@ $ tinysemver --verbose \
292
295
  > + version: 1.3.0 # Only in verbose mode
293
296
  > Appending to changelog file: CHANGELOG.md
294
297
  > = skipping 250 lines # Only in verbose mode
295
- > + addng 30 lines # Only in verbose mode
298
+ > + adding 30 lines # Only in verbose mode
296
299
  ```
297
300
 
298
301
  Alternatively, you can just ask for `--help`:
@@ -301,7 +304,7 @@ Alternatively, you can just ask for `--help`:
301
304
  $ tinysemver --help
302
305
  ```
303
306
 
304
- ## GitHub CI Action
307
+ ## Usage Details for the GitHub CI Action
305
308
 
306
309
  TinySemVer can be easily integrated into your GitHub Actions CI pipeline.
307
310
  Assuming the differences between YAML and shell notation, some arguments are passed in a different form, like `--update-version-in`.
@@ -328,7 +331,7 @@ jobs:
328
331
  with:
329
332
  major-verbs: 'breaking,break,major'
330
333
  minor-verbs: 'feature,minor,add,new'
331
- patch-verbs: 'fix,patch,bug,improve,docs'
334
+ patch-verbs: 'fix,patch,bug,improve,docs,make'
332
335
  changelog-file: 'CHANGELOG.md'
333
336
  version-file: 'VERSION'
334
337
  update-version-in: 'pyproject.toml:version = "(.*)"' # Use colon instead of space
@@ -387,11 +390,11 @@ Also keep in mind:
387
390
 
388
391
  For more information on CI configurations and pushing changes in GitHub Actions, see the [semantic-release GitHub Actions guide](https://github.com/semantic-release/semantic-release/blob/master/docs/recipes/ci-configurations/github-actions.md#pushing-packagejson-changes-to-a-master-branch).
389
392
 
390
- ## Why?
393
+ ## Why Create Another SemVer Tool?
391
394
 
392
395
  In the past I was using [semantic-release](https://github.com/semantic-release/semantic-release) for my 10+ projects.
393
396
  At some point, a breaking change in the dependencies broke all my projects CI pipelines for a month, affecting dozens of tech companies using those libraries.
394
- I felt miserable trying to trace the issue and reluctant to go through 363K lines of low-quality JavaScript code to find the bug.
397
+ I felt miserable trying to trace the issue and reluctant to go through __363K lines of low-quality JavaScript code__ to find the bug.
395
398
  Yes, it's 363K lines of code:
396
399
 
397
400
  ```sh
@@ -406,26 +409,7 @@ Language files blank comment code
406
409
  --------------------------------------------------------------------------------
407
410
  JavaScript 4902 48080 81205 363424
408
411
  TypeScript 732 7008 73034 79367
409
- Markdown 633 26835 0 66869
410
- JSON 599 58 0 64808
411
- HTML 86 1821 0 25365
412
- Python 57 4985 9193 23704
413
- CSS 97 1360 739 6346
414
- YAML 73 79 51 1198
415
- CoffeeScript 18 193 16 1122
416
- EJS 1 67 0 521
417
- Lua 22 95 29 434
418
- Handlebars 11 30 0 188
419
- C# 1 55 9 186
420
- Bourne Shell 7 30 11 168
421
- Bourne Again Shell 2 22 24 84
422
- TOML 1 8 31 80
423
- make 3 17 11 57
424
- PowerShell 2 12 4 48
425
- DOS Batch 5 9 0 42
426
- Fish Shell 1 5 14 21
427
- C++ 2 12 19 20
428
- Nix 1 1 0 19
412
+ ... ... ... ... ...
429
413
  --------------------------------------------------------------------------------
430
414
  SUM: 7256 90782 164390 634071
431
415
  --------------------------------------------------------------------------------
@@ -435,20 +419,18 @@ Here is the `cloc` output for `tinysemver`:
435
419
 
436
420
  ```sh
437
421
  $ tinysemver$ cloc .
438
- 11 text files.
439
- 6 unique files.
422
+ 17 text files.
423
+ 13 unique files.
440
424
  6 files ignored.
441
425
 
442
426
  github.com/AlDanial/cloc v 1.96 T=0.01 s (660.7 files/s, 44267.6 lines/s)
443
427
  -------------------------------------------------------------------------------
444
428
  Language files blank comment code
445
429
  -------------------------------------------------------------------------------
446
- Python 1 45 27 194
447
- Markdown 1 13 0 71
448
- TOML 1 6 2 33
449
- Text 3 1 0 10
430
+ Python 1 79 93 493
431
+ ... ... ... ... ...
450
432
  -------------------------------------------------------------------------------
451
- SUM: 6 65 29 308
433
+ SUM: 13 227 107 1124
452
434
  -------------------------------------------------------------------------------
453
435
  ```
454
436
 
@@ -458,41 +440,13 @@ SUM: 6 65 29 308
458
440
  - Pre-release versions, like `1.2.3-alpha.1`. Not needed for most projects.
459
441
  - GenAI.
460
442
 
461
- For reference, according to SemVer 2.0, all [following versions](https://regex101.com/r/Ly7O1x/3/) are valid:
462
-
463
- ```
464
- 1.1.2-prerelease+meta
465
- 1.1.2+meta
466
- 1.1.2+meta-valid
467
- 1.0.0-alpha
468
- 1.0.0-beta
469
- 1.0.0-alpha.beta.1
470
- 1.0.0-alpha.1
471
- 1.0.0-alpha0.valid
472
- 1.0.0-alpha.0valid
473
- 1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay
474
- 1.0.0-rc.1+build.1
475
- 2.0.0-rc.1+build.123
476
- 1.2.3-beta
477
- 10.2.3-DEV-SNAPSHOT
478
- 1.2.3-SNAPSHOT-123
479
- 2.0.0+build.1848
480
- 2.0.1-alpha.1227
481
- 1.0.0-alpha+beta
482
- 1.2.3----RC-SNAPSHOT.12.9.1--.12+788
483
- 1.2.3----R-S.12.9.1--.12+meta
484
- 1.2.3----RC-SNAPSHOT.12.9.1--.12
485
- 1.0.0+0.build.1-rc.10000aaa-kk-0.1
486
- 1.0.0-0A.is.legal
487
- ```
488
-
489
- Probably very useful for 2-3 projects, I didn't need to support any of them yet.
443
+ > For reference, according to SemVer 2.0, all [following versions](https://regex101.com/r/Ly7O1x/3/) are valid: `1.1.2-prerelease+meta`, `1.1.2+meta`, `1.1.2+meta-valid`, `1.0.0-alpha`, `1.0.0-beta`, `1.0.0-alpha.beta.1`, `1.0.0-alpha.1`, `1.0.0-alpha0.valid`, `1.0.0-alpha.0valid`, `1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okay`, `1.0.0-rc.1+build.1`, `2.0.0-rc.1+build.123`, `1.2.3-beta`, `10.2.3-DEV-SNAPSHOT`, `1.2.3-SNAPSHOT-123`, `2.0.0+build.1848`, `2.0.1-alpha.1227`, `1.0.0-alpha+beta`, `1.2.3----RC-SNAPSHOT.12.9.1--.12+788`, `1.2.3----R-S.12.9.1--.12+meta`, `1.2.3----RC-SNAPSHOT.12.9.1--.12`, `1.0.0+0.build.1-rc.10000aaa-kk-0.1`, `1.0.0-0A.is.legal`.
490
444
 
491
445
  ## Examples
492
446
 
493
447
  Assembling RegEx queries can be hard.
494
448
  Luckily, there aren't too many files to update in most projects.
495
- Below is an example of a pipeline for the USearch project, that has bindings to 10 programming languages.
449
+ Below is an example of a pipeline for the [USearch](https://github.com/unum-cloud/usearch) project, that has bindings to 10 programming languages.
496
450
  Feel free to add other sources and examples.
497
451
 
498
452
  ```sh
@@ -515,7 +469,7 @@ $ wget https://github.com/unum-cloud/usearch/raw/main/include/usearch/index.hpp
515
469
  $ tinysemver --dry-run --verbose \
516
470
  --major-verbs 'breaking,break,major' \
517
471
  --minor-verbs 'feature,minor,add,new' \
518
- --patch-verbs 'fix,patch,bug,improve,docs' \
472
+ --patch-verbs 'fix,patch,bug,improve,docs,make' \
519
473
  --version-file 'example/VERSION' \
520
474
  --changelog-file 'example/CHANGELOG.md' \
521
475
  --update-version-in 'example/CITATION.cff' '^version: (\d+\.\d+\.\d+)' \
File without changes
File without changes