devrites 5.13.0 → 5.13.1
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
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to DevRites are documented here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and DevRites adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Releases are generated automatically by [semantic-release](https://semantic-release.gitbook.io/) from Conventional Commits on `main`.
|
|
4
4
|
|
|
5
|
+
## [5.13.1](https://github.com/ViktorsBaikers/DevRites/compare/v5.13.0...v5.13.1) (2026-09-25)
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
* **uninstall:** keep global engine binary when DEVRITES_NO_BINARY=1 ([20bcfcb](https://github.com/ViktorsBaikers/DevRites/commit/20bcfcb887fbf10944daf0f916b9fcce019deff4))
|
|
10
|
+
|
|
5
11
|
## [5.13.0](https://github.com/ViktorsBaikers/DevRites/compare/v5.12.0...v5.13.0) (2026-09-25)
|
|
6
12
|
|
|
7
13
|
### Added
|
package/README.md
CHANGED
|
@@ -34,7 +34,7 @@ project-conventional push, tag, or PR action, and archive the workspace.
|
|
|
34
34
|
Unattended runs may create local WIP checkpoint commits along the way, but they
|
|
35
35
|
remain local unless Ship's disclosed plan includes an approved remote action.
|
|
36
36
|
|
|
37
|
-
**Status:** [`v5.13.
|
|
37
|
+
**Status:** [`v5.13.1`](https://github.com/ViktorsBaikers/DevRites/releases/tag/v5.13.1): see [`CHANGELOG.md`](CHANGELOG.md) for release notes.
|
|
38
38
|
|
|
39
39
|
This is the latest published release; `main` may contain unreleased work.
|
|
40
40
|
|
|
@@ -167,6 +167,10 @@ func (r *runner) removeBinary() error {
|
|
|
167
167
|
fmt.Fprintln(r.opts.Stdout, " kept the global devrites-engine binary (--keep-binary).")
|
|
168
168
|
return nil
|
|
169
169
|
}
|
|
170
|
+
if os.Getenv("DEVRITES_NO_BINARY") == "1" {
|
|
171
|
+
fmt.Fprintln(r.opts.Stdout, " kept the global devrites-engine binary (DEVRITES_NO_BINARY=1).")
|
|
172
|
+
return nil
|
|
173
|
+
}
|
|
170
174
|
for _, p := range binaryCandidates() {
|
|
171
175
|
if p == "" || !exists(p) {
|
|
172
176
|
continue
|
|
@@ -1231,6 +1231,28 @@ func runInstall(t *testing.T, target, payload string, mutate func(*Options)) {
|
|
|
1231
1231
|
}
|
|
1232
1232
|
}
|
|
1233
1233
|
|
|
1234
|
+
func TestUninstallNoBinaryEnvKeepsGlobalBinary(t *testing.T) {
|
|
1235
|
+
t.Setenv("DEVRITES_NO_BINARY", "1")
|
|
1236
|
+
home := t.TempDir()
|
|
1237
|
+
t.Setenv("HOME", home)
|
|
1238
|
+
t.Setenv("DEVRITES_BIN_DIR", t.TempDir())
|
|
1239
|
+
bin := filepath.Join(home, ".local", "bin", engineBinaryName())
|
|
1240
|
+
testutil.WriteFile(t, bin, "engine\n")
|
|
1241
|
+
target := t.TempDir()
|
|
1242
|
+
runInstall(t, target, testPayload(t), func(*Options) {})
|
|
1243
|
+
|
|
1244
|
+
opts := DefaultOptions(ModeUninstall)
|
|
1245
|
+
opts.Target = target
|
|
1246
|
+
opts.Stdout = &bytes.Buffer{}
|
|
1247
|
+
opts.Stderr = &bytes.Buffer{}
|
|
1248
|
+
if err := Apply(opts); err != nil {
|
|
1249
|
+
t.Fatal(err)
|
|
1250
|
+
}
|
|
1251
|
+
if _, err := os.Stat(bin); err != nil {
|
|
1252
|
+
t.Fatalf("uninstall with DEVRITES_NO_BINARY=1 removed global binary: %v", err)
|
|
1253
|
+
}
|
|
1254
|
+
}
|
|
1255
|
+
|
|
1234
1256
|
func runUninstall(t *testing.T, target string) {
|
|
1235
1257
|
t.Helper()
|
|
1236
1258
|
opts := DefaultOptions(ModeUninstall)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devrites",
|
|
3
|
-
"version": "5.13.
|
|
3
|
+
"version": "5.13.1",
|
|
4
4
|
"description": "DevRites: a disciplined senior-engineer workflow pack for Claude Code, Codex, omp, pi, and Devin CLI",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"homepage": "https://github.com/ViktorsBaikers/DevRites#readme",
|