@wipcomputer/wip-ai-devops-toolbox 1.9.64 → 1.9.65
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/CHANGELOG.md +36 -0
- package/SKILL.md +1 -1
- package/package.json +1 -1
- package/tools/deploy-public/package.json +1 -1
- package/tools/post-merge-rename/package.json +1 -1
- package/tools/wip-branch-guard/package.json +1 -1
- package/tools/wip-file-guard/package.json +1 -1
- package/tools/wip-license-guard/package.json +1 -1
- package/tools/wip-license-hook/package.json +1 -1
- package/tools/wip-readme-format/package.json +1 -1
- package/tools/wip-release/core.mjs +18 -1
- package/tools/wip-release/package.json +1 -1
- package/tools/wip-repo-init/package.json +1 -1
- package/tools/wip-repo-permissions-hook/package.json +1 -1
- package/tools/wip-repos/package.json +1 -1
- package/tools/wip-universal-installer/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -31,6 +31,42 @@
|
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
|
|
34
|
+
|
|
35
|
+
## 1.9.65 (2026-03-29)
|
|
36
|
+
|
|
37
|
+
# Release Notes: wip-ai-devops-toolbox v1.9.65
|
|
38
|
+
|
|
39
|
+
**Fix release notes scaffold on protected branches**
|
|
40
|
+
|
|
41
|
+
When `wip-release patch` runs on main without a RELEASE-NOTES file, it used to scaffold a
|
|
42
|
+
template directly in the working tree. On repos with branch guards (pre-commit hooks that
|
|
43
|
+
block commits to main), this scaffolded file could not be removed or committed. It would
|
|
44
|
+
block `git pull` and leave the working tree dirty. This has happened multiple times across
|
|
45
|
+
different repos.
|
|
46
|
+
|
|
47
|
+
The fix adds a branch check before scaffolding. If the current branch is main or master,
|
|
48
|
+
wip-release now prints a clear error telling the user to write release notes on their
|
|
49
|
+
feature branch before merging, then exits non-zero without creating any files. The scaffold
|
|
50
|
+
behavior still works on feature branches, where it's actually useful.
|
|
51
|
+
|
|
52
|
+
## Issues closed
|
|
53
|
+
|
|
54
|
+
- Closes #223
|
|
55
|
+
|
|
56
|
+
## How to verify
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# On main, without release notes: should error, NOT scaffold
|
|
60
|
+
cd any-repo && git checkout main
|
|
61
|
+
wip-release patch
|
|
62
|
+
# Expected: "Release notes missing. Write RELEASE-NOTES-v*.md on your feature branch before merging."
|
|
63
|
+
# Expected: no RELEASE-NOTES file created in working tree
|
|
64
|
+
|
|
65
|
+
# On a feature branch: should scaffold as before
|
|
66
|
+
git checkout -b test/scaffold-check
|
|
67
|
+
wip-release patch
|
|
68
|
+
# Expected: scaffolded template created
|
|
69
|
+
```
|
|
34
70
|
|
|
35
71
|
## 1.9.64 (2026-03-29)
|
|
36
72
|
|
package/SKILL.md
CHANGED
|
@@ -5,7 +5,7 @@ license: MIT
|
|
|
5
5
|
interface: [cli, module, mcp, skill, hook, plugin]
|
|
6
6
|
metadata:
|
|
7
7
|
display-name: "WIP AI DevOps Toolbox"
|
|
8
|
-
version: "1.9.
|
|
8
|
+
version: "1.9.65"
|
|
9
9
|
homepage: "https://github.com/wipcomputer/wip-ai-devops-toolbox"
|
|
10
10
|
author: "Parker Todd Brooks"
|
|
11
11
|
category: dev-tools
|
package/package.json
CHANGED
|
@@ -1184,7 +1184,24 @@ export async function release({ repoPath, level, notes, notesSource, dryRun, noP
|
|
|
1184
1184
|
console.log(` ✗ Release notes blocked:`);
|
|
1185
1185
|
for (const issue of notesCheck.issues) console.log(` - ${issue}`);
|
|
1186
1186
|
console.log('');
|
|
1187
|
-
//
|
|
1187
|
+
// Only scaffold on feature branches. On main, scaffolding leaves an
|
|
1188
|
+
// untracked file that branch guards prevent removing (#223).
|
|
1189
|
+
let currentBranch = '';
|
|
1190
|
+
try {
|
|
1191
|
+
currentBranch = execFileSync('git', ['branch', '--show-current'], {
|
|
1192
|
+
cwd: repoPath, encoding: 'utf8'
|
|
1193
|
+
}).trim();
|
|
1194
|
+
} catch {}
|
|
1195
|
+
|
|
1196
|
+
const isProtectedBranch = currentBranch === 'main' || currentBranch === 'master';
|
|
1197
|
+
|
|
1198
|
+
if (isProtectedBranch) {
|
|
1199
|
+
console.log(` Release notes missing. Write RELEASE-NOTES-v${newVersion.replace(/\./g, '-')}.md on your feature branch before merging.`);
|
|
1200
|
+
console.log('');
|
|
1201
|
+
return { currentVersion, newVersion, dryRun: false, failed: true };
|
|
1202
|
+
}
|
|
1203
|
+
|
|
1204
|
+
// Feature branch: scaffold a template so the agent has something to fill in
|
|
1188
1205
|
const templatePath = scaffoldReleaseNotes(repoPath, newVersion);
|
|
1189
1206
|
console.log(` Scaffolded template: ${basename(templatePath)}`);
|
|
1190
1207
|
console.log(' Fill it in, commit, then run wip-release again.');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wipcomputer/universal-installer",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.65",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "The Universal Interface specification for agent-native software. Teaches your AI how to build repos with every interface: CLI, Module, MCP Server, OpenClaw Plugin, Skill, Claude Code Hook.",
|
|
6
6
|
"main": "detect.mjs",
|