@metalagman/semverctl-linux-x64 0.0.5 โ†’ 0.0.7

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.
Files changed (3) hide show
  1. package/README.md +162 -0
  2. package/bin/semverctl +0 -0
  3. package/package.json +3 -2
package/README.md ADDED
@@ -0,0 +1,162 @@
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 (default)
76
+ semverctl bump package.json
77
+
78
+ # Bump specific version component
79
+ semverctl bump --minor package.json
80
+ semverctl bump --major package.json
81
+ semverctl bump --patch package.json
82
+
83
+ # Bump version at a custom path
84
+ semverctl bump --path .app.version config.yaml
85
+
86
+ # Bump all JSON files in a directory
87
+ semverctl bump --glob "**/*.json" .
88
+
89
+ # Preview changes without modifying files
90
+ semverctl bump --dry-run package.json
91
+ ```
92
+
93
+ ### Set Version
94
+
95
+ Set an explicit version value:
96
+
97
+ ```bash
98
+ # Set version to 1.2.3
99
+ semverctl set 1.2.3 package.json
100
+
101
+ # Set version at a custom path
102
+ semverctl set 2.0.0 --path .app.version config.yaml
103
+
104
+ # Preview changes
105
+ semverctl set 1.0.0 --dry-run package.json
106
+ ```
107
+
108
+ ### Numeric Bump
109
+
110
+ For object-style version fields (e.g., `{ "Major": 1, "Minor": 2, "Patch": 3 }`),
111
+ you can bump numeric scalar values:
112
+
113
+ ```bash
114
+ semverctl bump --numeric --path .version.Patch config.json
115
+ ```
116
+
117
+ This increments the numeric value at the specified path by 1.
118
+
119
+ ## Path Syntax
120
+
121
+ Paths use dot notation to navigate nested structures:
122
+
123
+ - `.version` - Top-level version field
124
+ - `.app.version` - Nested version field
125
+ - `.package.version` - Deeply nested field
126
+
127
+ The leading dot is optional: `version` and `.version` are equivalent.
128
+
129
+ ## File Formats
130
+
131
+ Supported formats:
132
+
133
+ - **JSON** (`.json`)
134
+ - **YAML** (`.yaml`, `.yml`)
135
+
136
+ ## Strict SemVer
137
+
138
+ semverctl follows the [Semantic Versioning 2.0.0](https://semver.org/) specification:
139
+
140
+ - Versions must be in format `MAJOR.MINOR.PATCH`
141
+ - Prerelease and build metadata are supported: `1.0.0-alpha+build.123`
142
+ - Leading zeros are not allowed in numeric components
143
+ - When bumping, prerelease and build metadata are cleared
144
+
145
+ ## Dry-Run Mode
146
+
147
+ Use `--dry-run` to preview changes without modifying files:
148
+
149
+ ```bash
150
+ semverctl bump --dry-run package.json
151
+ ```
152
+
153
+ This outputs a unified diff showing what would change.
154
+
155
+ ## Exit Codes
156
+
157
+ - `0` - Success
158
+ - `1` - Error (invalid arguments, file not found, parse error, etc.)
159
+
160
+ ## License
161
+
162
+ MIT License - see [LICENSE](LICENSE) file for details.
package/bin/semverctl CHANGED
Binary file
package/package.json CHANGED
@@ -7,11 +7,12 @@
7
7
  ],
8
8
  "description": "@metalagman/semverctl binary for linux/amd64",
9
9
  "files": [
10
- "bin"
10
+ "bin",
11
+ "README.md"
11
12
  ],
12
13
  "name": "@metalagman/semverctl-linux-x64",
13
14
  "os": [
14
15
  "linux"
15
16
  ],
16
- "version": "0.0.5"
17
+ "version": "0.0.7"
17
18
  }