@metalagman/semverctl-linux-arm64 0.0.6 โ†’ 0.0.8

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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Alexey Samoylov
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,165 @@
1
+ # semverctl
2
+
3
+ [![Go Report Card](https://goreportcard.com/badge/github.com/metalagman/semverctl)](https://goreportcard.com/report/github.com/metalagman/semverctl)
4
+ [![lint](https://github.com/metalagman/semverctl/actions/workflows/lint.yml/badge.svg)](https://github.com/metalagman/semverctl/actions/workflows/lint.yml)
5
+ [![test](https://github.com/metalagman/semverctl/actions/workflows/test.yml/badge.svg)](https://github.com/metalagman/semverctl/actions/workflows/test.yml)
6
+ [![codecov](https://codecov.io/github/metalagman/semverctl/graph/badge.svg)](https://codecov.io/github/metalagman/semverctl)
7
+ [![version](https://img.shields.io/github/v/release/metalagman/semverctl?sort=semver)](https://github.com/metalagman/semverctl/releases)
8
+ [![npm](https://img.shields.io/npm/v/%40metalagman%2Fsemverctl)](https://www.npmjs.com/package/@metalagman/semverctl)
9
+ [![PyPI](https://img.shields.io/pypi/v/semverctl)](https://pypi.org/project/semverctl/)
10
+ [![license](https://img.shields.io/github/license/metalagman/semverctl)](LICENSE)
11
+
12
+ CLI for bumping and setting SemVer values in JSON/YAML files
13
+
14
+ ## Features
15
+
16
+ - โœจ **Semantic Versioning** - Strict SemVer 2.0.0 compliance with prerelease and build metadata support
17
+ - ๐Ÿ“ **Multiple Formats** - JSON and YAML file support
18
+ - ๐ŸŽฏ **Path Navigation** - Dot-notation paths for nested version fields (e.g., `.app.version`)
19
+ - ๐Ÿ”ข **Numeric Bumping** - Bump individual numeric fields for object-style versions
20
+ - ๐Ÿงช **Dry-Run Mode** - Preview changes with unified diff output
21
+ - ๐ŸŒ **Cross-Platform** - Linux, macOS, and Windows support (CGO-free)
22
+ - โšก **Zero Dependencies** - Pure Go implementation with no runtime dependencies
23
+ - ๐Ÿ“ฆ **Multiple Distribution Channels** - Go install, npm, uv/PyPI, and GitHub Releases
24
+
25
+ ## Installation
26
+
27
+ ### Go
28
+
29
+ ```bash
30
+ go install github.com/metalagman/semverctl/cmd/semverctl@latest
31
+ ```
32
+
33
+ ### npm (Node.js)
34
+
35
+ ```bash
36
+ npx @metalagman/semverctl version
37
+
38
+ # Or install globally
39
+ npm install -g @metalagman/semverctl
40
+ semverctl version
41
+ ```
42
+
43
+ ### uv/Pip (Python)
44
+
45
+ ```bash
46
+ uvx semverctl version
47
+
48
+ # Or install
49
+ uv pip install semverctl
50
+ semverctl version
51
+ ```
52
+
53
+ ### Pre-built Binaries
54
+
55
+ Download pre-built binaries from [GitHub Releases](https://github.com/metalagman/semverctl/releases):
56
+
57
+ ```bash
58
+ # Linux/macOS
59
+ curl -L https://github.com/metalagman/semverctl/releases/latest/download/semverctl-linux-amd64 -o semverctl
60
+ chmod +x semverctl
61
+ sudo mv semverctl /usr/local/bin/
62
+
63
+ # Verify checksum (recommended)
64
+ curl -L https://github.com/metalagman/semverctl/releases/latest/download/checksums.txt -o checksums.txt
65
+ sha256sum -c checksums.txt
66
+ ```
67
+
68
+ ## Usage
69
+
70
+ ### Bump Version
71
+
72
+ Bump the semantic version at the specified path in JSON or YAML files:
73
+
74
+ ```bash
75
+ # Bump patch version in package.json (default target)
76
+ semverctl bump
77
+
78
+ # Bump specific version component in package.json
79
+ semverctl bump --minor
80
+ semverctl bump --major
81
+ semverctl bump --patch
82
+
83
+ # Bump version in a specific file at a custom path
84
+ semverctl bump --file config.yaml --path .app.version
85
+
86
+ # Bump all matching files in current directory tree
87
+ semverctl bump --glob "**/*.json"
88
+
89
+ # Preview changes without modifying files
90
+ semverctl bump --dry-run
91
+ ```
92
+
93
+ ### Set Version
94
+
95
+ Set an explicit version value:
96
+
97
+ ```bash
98
+ # Set version to 1.2.3 in package.json (default target)
99
+ semverctl set 1.2.3
100
+
101
+ # Set version in a specific file at a custom path
102
+ semverctl set 2.0.0 --file config.yaml --path .app.version
103
+
104
+ # Set version in all matching files under current directory
105
+ semverctl set 2.0.0 --glob "**/*.json"
106
+
107
+ # Preview changes
108
+ semverctl set 1.0.0 --dry-run
109
+ ```
110
+
111
+ ### Numeric Bump
112
+
113
+ For object-style version fields (e.g., `{ "Major": 1, "Minor": 2, "Patch": 3 }`),
114
+ you can bump numeric scalar values:
115
+
116
+ ```bash
117
+ semverctl bump --numeric --path .version.Patch --file config.json
118
+ ```
119
+
120
+ This increments the numeric value at the specified path by 1.
121
+
122
+ ## Path Syntax
123
+
124
+ Paths use dot notation to navigate nested structures:
125
+
126
+ - `.version` - Top-level version field
127
+ - `.app.version` - Nested version field
128
+ - `.package.version` - Deeply nested field
129
+
130
+ The leading dot is optional: `version` and `.version` are equivalent.
131
+
132
+ ## File Formats
133
+
134
+ Supported formats:
135
+
136
+ - **JSON** (`.json`)
137
+ - **YAML** (`.yaml`, `.yml`)
138
+
139
+ ## Strict SemVer
140
+
141
+ semverctl follows the [Semantic Versioning 2.0.0](https://semver.org/) specification:
142
+
143
+ - Versions must be in format `MAJOR.MINOR.PATCH`
144
+ - Prerelease and build metadata are supported: `1.0.0-alpha+build.123`
145
+ - Leading zeros are not allowed in numeric components
146
+ - When bumping, prerelease and build metadata are cleared
147
+
148
+ ## Dry-Run Mode
149
+
150
+ Use `--dry-run` to preview changes without modifying files:
151
+
152
+ ```bash
153
+ semverctl bump --dry-run package.json
154
+ ```
155
+
156
+ This outputs a unified diff showing what would change.
157
+
158
+ ## Exit Codes
159
+
160
+ - `0` - Success
161
+ - `1` - Error (invalid arguments, file not found, parse error, etc.)
162
+
163
+ ## License
164
+
165
+ MIT License - see [LICENSE](LICENSE) file for details.
package/bin/semverctl CHANGED
Binary file
package/package.json CHANGED
@@ -7,11 +7,14 @@
7
7
  ],
8
8
  "description": "@metalagman/semverctl binary for linux/arm64",
9
9
  "files": [
10
- "bin"
10
+ "bin",
11
+ "README.md",
12
+ "LICENSE"
11
13
  ],
14
+ "license": "SEE LICENSE IN LICENSE",
12
15
  "name": "@metalagman/semverctl-linux-arm64",
13
16
  "os": [
14
17
  "linux"
15
18
  ],
16
- "version": "0.0.6"
19
+ "version": "0.0.8"
17
20
  }