dev-prune-windows-x86 1.7.0 → 1.9.0
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/README.md +79 -4
- package/bin/dev-prune.exe +0 -0
- package/bin/devp.exe +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -119,6 +119,7 @@ problem.
|
|
|
119
119
|
### From a package manager
|
|
120
120
|
|
|
121
121
|
```bash
|
|
122
|
+
npm install -g dev-prune # or: npx dev-prune status
|
|
122
123
|
uv tool install dev-prune # or: uvx dev-prune status
|
|
123
124
|
pipx install dev-prune
|
|
124
125
|
pip install dev-prune
|
|
@@ -126,9 +127,15 @@ cargo binstall dev-prune # fetches the prebuilt release archive
|
|
|
126
127
|
cargo install dev-prune # builds from source, needs Rust 1.88+
|
|
127
128
|
```
|
|
128
129
|
|
|
129
|
-
The PyPI packages **contain the binary** — there is no download step at install
|
|
130
|
-
so they work behind a registry mirror and offline.
|
|
131
|
-
a prebuilt executable.
|
|
130
|
+
The npm and PyPI packages **contain the binary** — there is no download step at install
|
|
131
|
+
time, so they work under `npm ci --ignore-scripts`, behind a registry mirror and offline.
|
|
132
|
+
Everything but `cargo install` ships a prebuilt executable.
|
|
133
|
+
|
|
134
|
+
npm delivers it the way esbuild and Biome do: one small `dev-prune` package that lists
|
|
135
|
+
seven platform packages as optional dependencies, of which npm installs exactly the one
|
|
136
|
+
matching your machine. That is why there is no download step to block. Windows works from
|
|
137
|
+
1.8.0 onwards — earlier versions installed and then reported no binary to run, so a
|
|
138
|
+
machine still holding `dev-prune@1.7.0` needs `npm install -g dev-prune@latest`.
|
|
132
139
|
|
|
133
140
|
crates.io stores source and nothing else, so `cargo install` has no binary to fetch and
|
|
134
141
|
always compiles. [`cargo binstall`](https://github.com/cargo-bins/cargo-binstall) is the
|
|
@@ -280,6 +287,7 @@ A few more worth knowing on day one:
|
|
|
280
287
|
```bash
|
|
281
288
|
devp stats # how much has been reclaimed so far, and by which repositories
|
|
282
289
|
devp caches # every package manager cache, sized. The report deletes nothing
|
|
290
|
+
devp caches docker # what Docker holds, and the prune commands. Read-only, permanently
|
|
283
291
|
devp status --drift # anything installed that the lockfiles don't record?
|
|
284
292
|
devp doctor . # why is this repository not being pruned?
|
|
285
293
|
devp doctor --fix # repair a broken integration — never a first-time install
|
|
@@ -372,6 +380,13 @@ Package manager caches
|
|
|
372
380
|
Total 21.99 GiB across 12 caches
|
|
373
381
|
|
|
374
382
|
→ Nothing above was deleted, and dev-prune never deletes any of it.
|
|
383
|
+
|
|
384
|
+
Container engines
|
|
385
|
+
|
|
386
|
+
docker 47.64 GiB 36.69 GiB reclaimable · devp caches docker
|
|
387
|
+
|
|
388
|
+
Container images, volumes and build cache are not package manager caches and are not in
|
|
389
|
+
the total above — dev-prune reports them and never deletes them.
|
|
375
390
|
```
|
|
376
391
|
|
|
377
392
|
A cache lives outside every repository and is shared by all of them, so no single
|
|
@@ -388,6 +403,64 @@ a registered repository, and each such row names its store in the command it pri
|
|
|
388
403
|
|
|
389
404
|
</details>
|
|
390
405
|
|
|
406
|
+
<details>
|
|
407
|
+
<summary><b><code>devp caches docker</code></b> — the engine that is usually bigger than all of them</summary>
|
|
408
|
+
|
|
409
|
+
```console
|
|
410
|
+
$ devp caches docker
|
|
411
|
+
|
|
412
|
+
Container engines
|
|
413
|
+
|
|
414
|
+
docker
|
|
415
|
+
|
|
416
|
+
Images 37.36 GiB 29.28 GiB reclaimable 41 items, 9 in use
|
|
417
|
+
Containers 1.19 GiB 1.12 GiB reclaimable 12 items, 3 in use
|
|
418
|
+
Local Volumes 2.79 GiB 0 B reclaimable 5 items, 2 in use
|
|
419
|
+
Build Cache 6.29 GiB 6.29 GiB reclaimable 41 items, 0 in use
|
|
420
|
+
|
|
421
|
+
Total 47.64 GiB 36.69 GiB reclaimable
|
|
422
|
+
|
|
423
|
+
Reclaim it yourself what it takes with it
|
|
424
|
+
docker builder prune the build cache; costs a slower next build
|
|
425
|
+
docker image prune dangling images no tag points at any more
|
|
426
|
+
docker container prune stopped containers and each writable layer
|
|
427
|
+
docker system prune the three above at once; volumes untouched
|
|
428
|
+
docker system prune --volumes adds unused volumes — the one that deletes data
|
|
429
|
+
|
|
430
|
+
Nothing above was deleted, and nothing dev-prune runs on a schedule will ever delete it.
|
|
431
|
+
An image has no lockfile to prove it can be rebuilt, and a named volume is the one thing
|
|
432
|
+
here that cannot be rebuilt at all — so this command measures, prints the commands, and
|
|
433
|
+
leaves the decision with you.
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
Clearing 6 GiB of npm cache while a Docker install nobody has looked at in a year sits on
|
|
437
|
+
40 GiB is the mistake this exists to prevent. `devp caches podman` and `devp caches
|
|
438
|
+
nerdctl` are the same report for those engines, and `devp caches containers` runs every
|
|
439
|
+
one it finds and lists any local Kubernetes clusters (kind, k3d, minikube) by name.
|
|
440
|
+
|
|
441
|
+
**It is read-only, permanently.** There is no flag and no `clear` verb that makes
|
|
442
|
+
dev-prune run one of those commands — `devp caches clear docker` is a usage error that
|
|
443
|
+
says so — and no scheduler or Git hook reaches this code at all. That is the same rule
|
|
444
|
+
as everywhere else rather than extra caution: an image has no lockfile to prove it can be
|
|
445
|
+
rebuilt, the Dockerfile that built it may not be on this disk, and a named volume is the
|
|
446
|
+
one thing on the machine that cannot be rebuilt at all.
|
|
447
|
+
|
|
448
|
+
The figures come from the engine's own `system df`, not a walk of the disk. On Docker
|
|
449
|
+
Desktop and Podman the store lives inside a VM disk image the host filesystem cannot see,
|
|
450
|
+
so a size taken off the disk would be wrong by orders of magnitude in the reassuring
|
|
451
|
+
direction — and asking is the only way to learn what is *reclaimable*, which is the
|
|
452
|
+
figure that decides anything. 40 GB of images with 38 GB dangling is a different
|
|
453
|
+
situation from 40 GB with 2 GB dangling.
|
|
454
|
+
|
|
455
|
+
An engine that is installed with its daemon stopped is reported as exactly that, quoting
|
|
456
|
+
the engine's own first line, and contributes no figures: a blank, not a zero. An engine
|
|
457
|
+
that is not installed is absent from the report rather than listed as missing. Local
|
|
458
|
+
Kubernetes clusters are named and deliberately not sized — their nodes are containers
|
|
459
|
+
belonging to an engine already in the table, so a figure beside the cluster name would be
|
|
460
|
+
the same gigabytes counted twice.
|
|
461
|
+
|
|
462
|
+
</details>
|
|
463
|
+
|
|
391
464
|
<details>
|
|
392
465
|
<summary><b><code>devp doctor .</code></b> — the one reason a repository is being skipped</summary>
|
|
393
466
|
|
|
@@ -461,6 +534,7 @@ process that leaves a dirty working tree is a surprise.
|
|
|
461
534
|
| 🧩 **Any number of ecosystems per repository** | uv, npm and cargo in one root, or spread across `frontend/`, `services/api/` and `tools/cli/` — each discovered, verified and pruned on its own terms |
|
|
462
535
|
| ↩️ **One-command restore** | `devp restore .` reinstalls a tree; `devp restore --last-run` puts back exactly what the most recent pass deleted, across every repository it touched |
|
|
463
536
|
| 🕒 **Activity-aware** | Combines `git log` timestamps with source-file `mtime`, so uncommitted work protects a repository just as a commit does |
|
|
537
|
+
| 🐳 **Container report** | `devp caches docker` (also `podman`, `nerdctl`, or `containers` for all of them plus local Kubernetes clusters) breaks a container engine's disk into images, containers, local volumes and build cache, each with what the engine itself calls reclaimable, and prints the prune commands narrowest first with what each takes with it. **Read-only, permanently** — `devp caches clear docker` is a usage error, and no scheduler or hook reaches this code: an image has no lockfile to prove it can be rebuilt, and a named volume cannot be rebuilt at all. `devp caches` carries a one-line summary per engine, outside its own total |
|
|
464
538
|
| 📊 **Cache report** | `devp caches` sizes every package manager cache and store on the machine — npm to cargo to conda, Maven, Gradle, NuGet, vcpkg, Conan, Composer, CocoaPods and Hex — and prints the command that clears each. The report is read-only; `devp caches clear <manager>` runs that command for you, after asking. `devp config set cache_max_gb uv=10,npm=10` says how big is too big, per manager, and marks the ones past it — `devp caches clear --over-cap all` then empties exactly those, still only when you type it. Each manager also says how many of your registered repositories use it and what that works out to per repository, and `devp caches clear --unused all` empties the ones nothing uses at all. pnpm is reported once per filesystem, because a store it hardlinks into `node_modules` cannot cross one and projects kept off the system disk get a store of their own. Nothing on a schedule ever touches a cache, and Maven's `~/.m2/repository` is never cleared at all — it holds artifacts `mvn install:install-file` put there that no remote can hand back |
|
|
465
539
|
| 🩺 **`devp doctor`** | One read-only pass that ends by naming the *single* reason a repository would or would not be pruned. Runs no package manager, repairs nothing, safe to run twice. `devp doctor --fix` then mends what it found — installed-but-broken only |
|
|
466
540
|
| 🤖 **Self-installing automation** | OS-native scheduler (Task Scheduler, LaunchAgent, systemd user timer) and non-blocking Git hooks, installed at install time and restored after an upgrade. `auto_setup`, `auto_hooks`, `auto_daemon` or `DEV_PRUNE_NO_AUTO_SETUP=1` turn it off |
|
|
@@ -484,9 +558,10 @@ process that leaves a dirty working tree is a surprise.
|
|
|
484
558
|
| `devp undo` | :------------------------------------------------------------------ | Reverts the most recent `init` or `link` |
|
|
485
559
|
| `devp run [PATH]` | `--dry-run`, `--only`, `--skip`, `--except`, `--min-size`, `--json` | Prunes every registered repository, or one target |
|
|
486
560
|
| `devp status` | `--top N`, `--drift`, `--json` | Interactive dashboard; a plain table when there is no TTY. `--top N` shows only the N biggest repositories; `--drift` lists every environment holding packages its lockfile never recorded |
|
|
487
|
-
| `devp stats` | `--json` | What has already been reclaimed: lifetime total, prune passes, the last pass, and the biggest contributors |
|
|
561
|
+
| `devp stats` | `--json` | What has already been reclaimed: lifetime total from pruning, a separate lifetime total from `devp caches clear`, prune passes, the last pass, and the biggest contributors |
|
|
488
562
|
| `devp completions` | `bash`, `zsh`, `fish`, `powershell`, `elvish` | Prints a shell completion script to stdout, generated from the same argument definitions the binary parses with |
|
|
489
563
|
| `devp caches` | `clear <manager\|all>`, `--json` | Sizes every package manager cache on the machine and prints the command that clears each. The report deletes nothing and nothing on a schedule ever will; `clear` empties one when you type it, after asking |
|
|
564
|
+
| `devp caches docker` | `podman`, `nerdctl`, `containers [ENGINE]`, `--json` | What a container engine holds — images, containers, volumes, build cache — each sized, with what the engine calls reclaimable, then the prune commands. Read-only permanently: it prints them, you run them |
|
|
490
565
|
| `devp trust` | `--json` | What dev-prune may do on this machine: the guarantees the code enforces, then the scheduler, hooks and settings read live. Read-only |
|
|
491
566
|
| `devp restore [PATH]` | `--last-run` | Reinstalls dependencies for every project in a tree; `--last-run` undoes the last prune pass |
|
|
492
567
|
| `devp doctor [PATH]` | `--fix` | Diagnoses the installation, or one repository — ending with the single reason a pass would or would not touch it. `--fix` repairs what the checks found; it never performs a first-time install |
|
package/bin/dev-prune.exe
CHANGED
|
Binary file
|
package/bin/devp.exe
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dev-prune-windows-x86",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"description": "Prebuilt dev-prune binary for windows x86. Installed automatically by the 'dev-prune' package; not meant to be depended on directly.",
|
|
5
5
|
"os": ["win32"],
|
|
6
6
|
"cpu": ["ia32"],
|