@programinglive/commiter 1.2.8 β 1.2.16
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/.github/workflows/publish.yml +8 -5
- package/CHANGELOG.md +74 -0
- package/PRD.md +9 -4
- package/README.md +10 -4
- package/docs/release-notes/RELEASE_NOTES.md +70 -0
- package/index.js +7 -4
- package/package.json +3 -2
- package/scripts/release.cjs +11 -4
- package/web/index.html +3 -0
|
@@ -19,8 +19,13 @@ jobs:
|
|
|
19
19
|
- name: Setup Node.js
|
|
20
20
|
uses: actions/setup-node@v4
|
|
21
21
|
with:
|
|
22
|
-
node-version: '
|
|
23
|
-
|
|
22
|
+
node-version: '20'
|
|
23
|
+
|
|
24
|
+
- name: Update npm and configure registry
|
|
25
|
+
run: |
|
|
26
|
+
npm install -g npm@latest
|
|
27
|
+
npm config set registry https://registry.npmjs.org/
|
|
28
|
+
npm config set //registry.npmjs.org/:_authToken ""
|
|
24
29
|
|
|
25
30
|
- name: Install dependencies
|
|
26
31
|
run: npm ci
|
|
@@ -29,6 +34,4 @@ jobs:
|
|
|
29
34
|
run: npm test
|
|
30
35
|
|
|
31
36
|
- name: Publish to NPM
|
|
32
|
-
run: npm publish --access public
|
|
33
|
-
env:
|
|
34
|
-
NODE_AUTH_TOKEN: ${{ secrets.COMMITER_TOKEN }}
|
|
37
|
+
run: npm publish --provenance --access public
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,80 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [1.2.16](https://github.com/programinglive/commiter/compare/v1.2.15...v1.2.16) (2025-12-13)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### π· Continuous Integration
|
|
9
|
+
|
|
10
|
+
* upgrade to node 20 and update npm for OIDC ([5f7d9a0](https://github.com/programinglive/commiter/commit/5f7d9a0d668ab5702879841de2f9d0818fa8f6bd))
|
|
11
|
+
|
|
12
|
+
### [1.2.15](https://github.com/programinglive/commiter/compare/v1.2.14...v1.2.15) (2025-12-13)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### π· Continuous Integration
|
|
16
|
+
|
|
17
|
+
* remove registry-url to fix OIDC auth conflict ([c49b6e8](https://github.com/programinglive/commiter/commit/c49b6e81195c5b9dc40611ee87fd22d45c33e3a9))
|
|
18
|
+
|
|
19
|
+
### [1.2.14](https://github.com/programinglive/commiter/compare/v1.2.13...v1.2.14) (2025-12-13)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### π· Continuous Integration
|
|
23
|
+
|
|
24
|
+
* remove legacy auth token env ([8508deb](https://github.com/programinglive/commiter/commit/8508deb5ee725519848588780d897f03fdb725eb))
|
|
25
|
+
|
|
26
|
+
### [1.2.13](https://github.com/programinglive/commiter/compare/v1.2.12...v1.2.13) (2025-12-13)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### π· Continuous Integration
|
|
30
|
+
|
|
31
|
+
* enable npm trusted publishing (OIDC) with provenance ([5e1e852](https://github.com/programinglive/commiter/commit/5e1e852abfa6860e7e1533895ebf3f2996a11bfb))
|
|
32
|
+
|
|
33
|
+
### [1.2.12](https://github.com/programinglive/commiter/compare/v1.2.10...v1.2.12) (2025-12-13)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
### π§Ή Chores
|
|
37
|
+
|
|
38
|
+
* cleanup and add deployment scripts ([4124b5f](https://github.com/programinglive/commiter/commit/4124b5fc25f2975a62cccbfb3fa168c54e0058bf))
|
|
39
|
+
* **release:** 1.2.11 π ([2bbf62a](https://github.com/programinglive/commiter/commit/2bbf62a569546e06a7c27f0a2ecae838493161c6))
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
### π Bug Fixes
|
|
43
|
+
|
|
44
|
+
* resolve npm pkg warnings ([6d7a193](https://github.com/programinglive/commiter/commit/6d7a1937d70e6cf2f69edd6c7def8deba7a732d7))
|
|
45
|
+
* **setup:** surface first release commands ([8701e9a](https://github.com/programinglive/commiter/commit/8701e9ae75fde65f55ab956e0636bcff6c0672a9))
|
|
46
|
+
|
|
47
|
+
### [1.2.11](https://github.com/programinglive/commiter/compare/v1.2.10...v1.2.11) (2025-12-11)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
### π§Ή Chores
|
|
51
|
+
|
|
52
|
+
* cleanup and add deployment scripts ([4124b5f](https://github.com/programinglive/commiter/commit/4124b5fc25f2975a62cccbfb3fa168c54e0058bf))
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
### π Bug Fixes
|
|
56
|
+
|
|
57
|
+
* **setup:** surface first release commands ([8701e9a](https://github.com/programinglive/commiter/commit/8701e9ae75fde65f55ab956e0636bcff6c0672a9))
|
|
58
|
+
|
|
59
|
+
### [1.2.10](https://github.com/programinglive/commiter/compare/v1.2.9...v1.2.10) (2025-12-11)
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
### β¨ Features
|
|
63
|
+
|
|
64
|
+
* enhance release workflow with first release support and patch defaults ([d5f1334](https://github.com/programinglive/commiter/commit/d5f133425718eab44fd9d8cdc4fc50641697efd0))
|
|
65
|
+
|
|
66
|
+
### [1.2.9](https://github.com/programinglive/commiter/compare/v1.2.8...v1.2.9) (2025-12-05)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
### π§Ή Chores
|
|
70
|
+
|
|
71
|
+
* add release:first script ([0240fce](https://github.com/programinglive/commiter/commit/0240fceaaad231074f1525b9d5208697cfa9d5fa))
|
|
72
|
+
* update gitignore and release notes ([c12f935](https://github.com/programinglive/commiter/commit/c12f935aaeb56b412fdefdc888acea544bc83e3b))
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
### π Documentation
|
|
76
|
+
|
|
77
|
+
* document release:first command and update tests ([876a208](https://github.com/programinglive/commiter/commit/876a20893a6a1fd3433992ba62d62ed6bd09c0b0))
|
|
78
|
+
|
|
5
79
|
### [1.2.8](https://github.com/programinglive/commiter/compare/v1.2.6...v1.2.8) (2025-12-02)
|
|
6
80
|
|
|
7
81
|
|
package/PRD.md
CHANGED
|
@@ -21,13 +21,14 @@ Growing teams often struggle to keep release processes consistent: commit messag
|
|
|
21
21
|
## 5. Key Features
|
|
22
22
|
- **Setup CLI (`index.js`)**
|
|
23
23
|
- Installs dev dependencies (`standard-version`, `commitlint`, `husky`).
|
|
24
|
-
- Configures package scripts (`npm run release`, `release:major/minor/patch`).
|
|
24
|
+
- Configures package scripts (`npm run release`, `release:major/minor/patch`, `release:first`).
|
|
25
25
|
- Creates Husky hooks and commitlint configuration.
|
|
26
26
|
- Generates release helper script and ensures executable permissions (POSIX-friendly).
|
|
27
27
|
- **Release Helper (`scripts/release.js`)**
|
|
28
28
|
- Detects release type from CLI args or npm context.
|
|
29
29
|
- Runs project tests via detected package manager before releasing.
|
|
30
30
|
- Invokes `standard-version`, passing the preload script via `NODE_OPTIONS`.
|
|
31
|
+
- Supports first release mode that sets version to 0.0.1 for new projects.
|
|
31
32
|
- Stays focused on repository assets only (website updates are intentionally manual to avoid cross-project impacts).
|
|
32
33
|
- **Preload Patching (`scripts/preload/fs-f-ok.cjs`)**
|
|
33
34
|
- Hooks Nodeβs module loader to transparently replace deprecated `fs.F_OK` usages in `standard-version` without altering `node_modules`.
|
|
@@ -59,11 +60,15 @@ Growing teams often struggle to keep release processes consistent: commit messag
|
|
|
59
60
|
- Run `npx @programinglive/commiter`.
|
|
60
61
|
- Tool installs dependencies, updates `package.json`, and scaffolds Husky hooks.
|
|
61
62
|
- Maintainer confirms success message and new scripts.
|
|
62
|
-
2. **
|
|
63
|
-
- Developer runs `npm run release
|
|
63
|
+
2. **First Release**
|
|
64
|
+
- Developer runs `npm run release:first` for new projects.
|
|
65
|
+
- Commiter sets version to 0.0.1, runs tests, creates initial changelog and git tag.
|
|
66
|
+
- Project foundation established with proper semantic versioning.
|
|
67
|
+
3. **Standard Release**
|
|
68
|
+
- Developer runs `npm run release minor` or `npm run release` (defaults to patch).
|
|
64
69
|
- Commiter runs tests, ensures preload patch prevents deprecation warnings, executes `standard-version`.
|
|
65
70
|
- Release completes with updated changelog and git tag.
|
|
66
|
-
|
|
71
|
+
4. **CI Pipeline**
|
|
67
72
|
- CI job executes `npm run release -- --prerelease beta`.
|
|
68
73
|
- Logs show tests executed, no deprecation warnings, and release artifacts generated.
|
|
69
74
|
|
package/README.md
CHANGED
|
@@ -168,15 +168,21 @@ Valid types: `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `build`
|
|
|
168
168
|
|
|
169
169
|
Release commits generated by `standard-version` such as `chore(release): 1.0.0 π` are automatically ignored by `commitlint`.
|
|
170
170
|
|
|
171
|
-
### First
|
|
171
|
+
### First Release
|
|
172
172
|
|
|
173
|
-
|
|
173
|
+
For new projects without any version tags, use the first release command to start from version 0.0.1:
|
|
174
174
|
|
|
175
175
|
```bash
|
|
176
|
-
npm run release
|
|
176
|
+
npm run release:first
|
|
177
177
|
```
|
|
178
178
|
|
|
179
|
-
Running the
|
|
179
|
+
Running the first release command:
|
|
180
|
+
- Sets the initial version to **0.0.1**
|
|
181
|
+
- Creates the first git tag
|
|
182
|
+
- Generates the initial CHANGELOG.md
|
|
183
|
+
- Commits the release with proper formatting
|
|
184
|
+
|
|
185
|
+
This ensures your project starts with a clean, semantic version foundation. Replace the default test script with your real test command once available.
|
|
180
186
|
|
|
181
187
|
### Dry run
|
|
182
188
|
|
|
@@ -4,6 +4,14 @@ This document summarizes every published version of `@programinglive/commiter`.
|
|
|
4
4
|
|
|
5
5
|
| Version | Date | Highlights |
|
|
6
6
|
|---------|------|------------|
|
|
7
|
+
| 1.2.16 | 2025-12-13 | upgrade to node 20 and update npm for OIDC (5f7d9a0) |
|
|
8
|
+
| 1.2.15 | 2025-12-13 | remove registry-url to fix OIDC auth conflict (c49b6e8) |
|
|
9
|
+
| 1.2.14 | 2025-12-13 | remove legacy auth token env (8508deb) |
|
|
10
|
+
| 1.2.13 | 2025-12-13 | enable npm trusted publishing (OIDC) with provenance (5e1e852) |
|
|
11
|
+
| 1.2.12 | 2025-12-13 | cleanup and add deployment scripts (4124b5f) |
|
|
12
|
+
| 1.2.11 | 2025-12-11 | cleanup and add deployment scripts (4124b5f) |
|
|
13
|
+
| 1.2.10 | 2025-12-11 | enhance release workflow with first release support and patch defaults (d5f1334) |
|
|
14
|
+
| 1.2.9 | 2025-12-05 | add release:first script (0240fce) |
|
|
7
15
|
| 1.2.8 | 2025-12-02 | remove website auto updates (c6f2498) |
|
|
8
16
|
| 1.2.7 | 2025-12-02 | remove website auto updates (c6f2498) |
|
|
9
17
|
| 1.2.6 | 2025-11-30 | tests only run during release, not on commit (15600a0) |
|
|
@@ -58,6 +66,68 @@ This document summarizes every published version of `@programinglive/commiter`.
|
|
|
58
66
|
|
|
59
67
|
|
|
60
68
|
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
## 1.2.16 β π· Continuous Integration
|
|
78
|
+
|
|
79
|
+
Released on **2025-12-13**.
|
|
80
|
+
|
|
81
|
+
- upgrade to node 20 and update npm for OIDC (5f7d9a0)
|
|
82
|
+
|
|
83
|
+
## 1.2.15 β π· Continuous Integration
|
|
84
|
+
|
|
85
|
+
Released on **2025-12-13**.
|
|
86
|
+
|
|
87
|
+
- remove registry-url to fix OIDC auth conflict (c49b6e8)
|
|
88
|
+
|
|
89
|
+
## 1.2.14 β π· Continuous Integration
|
|
90
|
+
|
|
91
|
+
Released on **2025-12-13**.
|
|
92
|
+
|
|
93
|
+
- remove legacy auth token env (8508deb)
|
|
94
|
+
|
|
95
|
+
## 1.2.13 β π· Continuous Integration
|
|
96
|
+
|
|
97
|
+
Released on **2025-12-13**.
|
|
98
|
+
|
|
99
|
+
- enable npm trusted publishing (OIDC) with provenance (5e1e852)
|
|
100
|
+
|
|
101
|
+
## 1.2.12 β π§Ή Chores
|
|
102
|
+
|
|
103
|
+
Released on **2025-12-13**.
|
|
104
|
+
|
|
105
|
+
- cleanup and add deployment scripts (4124b5f)
|
|
106
|
+
- **release:** 1.2.11 π (2bbf62a)
|
|
107
|
+
- resolve npm pkg warnings (6d7a193)
|
|
108
|
+
- **setup:** surface first release commands (8701e9a)
|
|
109
|
+
|
|
110
|
+
## 1.2.11 β π§Ή Chores
|
|
111
|
+
|
|
112
|
+
Released on **2025-12-11**.
|
|
113
|
+
|
|
114
|
+
- cleanup and add deployment scripts (4124b5f)
|
|
115
|
+
- **setup:** surface first release commands (8701e9a)
|
|
116
|
+
|
|
117
|
+
## 1.2.10 β β¨ Features
|
|
118
|
+
|
|
119
|
+
Released on **2025-12-11**.
|
|
120
|
+
|
|
121
|
+
- enhance release workflow with first release support and patch defaults (d5f1334)
|
|
122
|
+
|
|
123
|
+
## 1.2.9 β π§Ή Chores
|
|
124
|
+
|
|
125
|
+
Released on **2025-12-05**.
|
|
126
|
+
|
|
127
|
+
- add release:first script (0240fce)
|
|
128
|
+
- update gitignore and release notes (c12f935)
|
|
129
|
+
- document release:first command and update tests (876a208)
|
|
130
|
+
|
|
61
131
|
## 1.2.8 β β»οΈ Refactors
|
|
62
132
|
|
|
63
133
|
Released on **2025-12-02**.
|
package/index.js
CHANGED
|
@@ -63,6 +63,7 @@ function setupCommiter() {
|
|
|
63
63
|
packageJson.scripts['release:major'] = 'node scripts/release.cjs major';
|
|
64
64
|
packageJson.scripts['release:minor'] = 'node scripts/release.cjs minor';
|
|
65
65
|
packageJson.scripts['release:patch'] = 'node scripts/release.cjs patch';
|
|
66
|
+
packageJson.scripts['release:first'] = 'node scripts/release.cjs --first-release';
|
|
66
67
|
|
|
67
68
|
// Add standard-version config
|
|
68
69
|
packageJson['standard-version'] = {
|
|
@@ -174,10 +175,12 @@ npx --no -- commitlint --edit "$1"
|
|
|
174
175
|
|
|
175
176
|
console.log('\nβ
Commiter setup complete!\n');
|
|
176
177
|
console.log('π Available commands:');
|
|
177
|
-
console.log(' npm run release major
|
|
178
|
-
console.log(' npm run release minor
|
|
179
|
-
console.log(' npm run release patch
|
|
180
|
-
console.log(' npm run release
|
|
178
|
+
console.log(' npm run release major - Create a major release (1.0.0 β 2.0.0)');
|
|
179
|
+
console.log(' npm run release minor - Create a minor release (1.0.0 β 1.1.0)');
|
|
180
|
+
console.log(' npm run release patch - Create a patch release (1.0.0 β 1.0.1)');
|
|
181
|
+
console.log(' npm run release - Auto-detect version bump');
|
|
182
|
+
console.log(' npm run release:first - Initialize the first release at 0.0.1');
|
|
183
|
+
console.log(' npm run release -- --first - Alternative first release flag (0.0.1 start)');
|
|
181
184
|
console.log(' npm run release -- --prerelease beta - Create a beta prerelease\n');
|
|
182
185
|
console.log('π― Commit format: type(scope): subject');
|
|
183
186
|
console.log(' Example: feat(auth): add user login\n');
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@programinglive/commiter",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.16",
|
|
4
4
|
"description": "Commiter keeps repositories release-ready by enforcing conventional commits, generating icon-rich changelog entries, and orchestrating semantic version bumps without manual toil. It bootstraps Husky hooks, commitlint rules, and release scripts that inspect history, detect framework-specific test commands, run them automatically, tag git releases, coordinate npm publishing, surface release metrics, enforce project-specific checks, and give maintainers observability across distributed teams. Plus!",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
7
|
-
"commiter": "
|
|
7
|
+
"commiter": "index.js"
|
|
8
8
|
},
|
|
9
9
|
"scripts": {
|
|
10
10
|
"test": "node --test",
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"release:major": "node scripts/release.cjs major",
|
|
14
14
|
"release:minor": "node scripts/release.cjs minor",
|
|
15
15
|
"release:patch": "node scripts/release.cjs patch",
|
|
16
|
+
"release:first": "node scripts/release.cjs --first-release",
|
|
16
17
|
"web": "npx serve web"
|
|
17
18
|
},
|
|
18
19
|
"keywords": [
|
package/scripts/release.cjs
CHANGED
|
@@ -26,18 +26,18 @@ const SEMVER_REGEX = /^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/;
|
|
|
26
26
|
const LOCKFILE_PREFERENCES = [
|
|
27
27
|
{ manager: 'pnpm', file: 'pnpm-lock.yaml' },
|
|
28
28
|
{ manager: 'yarn', file: 'yarn.lock' },
|
|
29
|
-
{ manager: 'bun', file: 'bun.
|
|
29
|
+
{ manager: 'bun', file: 'bun.lock' },
|
|
30
30
|
{ manager: 'npm', file: 'package-lock.json' }
|
|
31
31
|
];
|
|
32
32
|
|
|
33
33
|
function getCliArguments(argv = process.argv) {
|
|
34
34
|
const rawArgs = argv.slice(2);
|
|
35
35
|
if (rawArgs.length === 0) {
|
|
36
|
-
return { releaseType:
|
|
36
|
+
return { releaseType: 'patch', extraArgs: [] };
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
if (rawArgs[0].startsWith('-')) {
|
|
40
|
-
return { releaseType:
|
|
40
|
+
return { releaseType: 'patch', extraArgs: rawArgs };
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
const [firstArg, ...rest] = rawArgs;
|
|
@@ -60,7 +60,14 @@ function getNpmRunArgument(env = process.env) {
|
|
|
60
60
|
|
|
61
61
|
function buildStandardVersionArgs({ releaseType, extraArgs }) {
|
|
62
62
|
const args = [];
|
|
63
|
-
|
|
63
|
+
|
|
64
|
+
// Handle --first-release flag
|
|
65
|
+
const isFirstRelease = Array.isArray(extraArgs) && extraArgs.includes('--first-release');
|
|
66
|
+
if (isFirstRelease) {
|
|
67
|
+
args.push('--release-as', '0.0.1');
|
|
68
|
+
// Remove --first-release from extraArgs to avoid passing it to standard-version
|
|
69
|
+
extraArgs = extraArgs.filter(arg => arg !== '--first-release');
|
|
70
|
+
} else if (releaseType) {
|
|
64
71
|
const normalized = releaseType.trim();
|
|
65
72
|
const isValid = VALID_RELEASE_TYPES.has(normalized) || SEMVER_REGEX.test(normalized);
|
|
66
73
|
if (!isValid) {
|
package/web/index.html
CHANGED
|
@@ -275,6 +275,9 @@
|
|
|
275
275
|
<div class="step-content">
|
|
276
276
|
<h3>Release Your Changes</h3>
|
|
277
277
|
<p>Run the appropriate release command based on your changes</p>
|
|
278
|
+
<div class="code-block">
|
|
279
|
+
<code>npm run release:first # New project β 0.0.1</code>
|
|
280
|
+
</div>
|
|
278
281
|
<div class="code-block">
|
|
279
282
|
<code>npm run release:patch # 1.0.0 β 1.0.1</code>
|
|
280
283
|
</div>
|