dev-prune-darwin-arm64 1.17.0 → 1.19.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.
Files changed (3) hide show
  1. package/README.md +36 -20
  2. package/bin/dev-prune +0 -0
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -52,7 +52,7 @@ gigabytes hostage for a build you are not running.
52
52
 
53
53
  `dev-prune` finds those directories across every Git repository you register, and deletes
54
54
  them — but only after proving the exact command that puts them back would succeed. It
55
- knows twenty-four package managers, not just the obvious four: Composer, Bundler, Mix,
55
+ knows twenty-five package managers, not just the obvious four: Composer, Bundler, Mix,
56
56
  CocoaPods and Terraform are as first-class as npm and pip. It is a single Rust binary,
57
57
  installs its own background schedule, and answers to two names: `dev-prune` and `devp`.
58
58
 
@@ -115,6 +115,11 @@ All three download the prebuilt binary for your platform, verify its published S
115
115
  put it on `PATH`, and run `dev-prune setup`. Pass `--no-auto-setup` / `-NoAutoSetup` to
116
116
  skip that last step.
117
117
 
118
+ A binary you download and run by hand asks first instead: the first attended run opens
119
+ the settings walkthrough before anything is installed, finishing it is the yes, and
120
+ quitting it means nothing is installed — durably, until you say otherwise with
121
+ `devp setup`.
122
+
118
123
  Re-run any of them whenever you like. An install that is already current, complete and on
119
124
  `PATH` is left exactly as it is and exits `0` without downloading; an older one is updated
120
125
  in place; a newer one is not downgraded. `--force` / `-Force` writes it again regardless.
@@ -127,17 +132,23 @@ problem.
127
132
  ### From a package manager
128
133
 
129
134
  ```bash
130
- npm install -g dev-prune # or: npx dev-prune status
131
- bun add -g dev-prune # same package, through bun
132
- pnpm add -g dev-prune
133
- yarn global add dev-prune # Yarn 1.x
134
- uv tool install dev-prune # or: uvx dev-prune status
135
- pipx install dev-prune
136
- pip install dev-prune
137
- cargo binstall dev-prune # fetches the prebuilt release archive
138
- cargo install dev-prune # builds from source, needs Rust 1.88+
135
+ npm install -g dev-prune@latest # or: npx dev-prune status
136
+ bun add -g dev-prune@latest # same package, through bun
137
+ pnpm add -g dev-prune@latest
138
+ yarn global add dev-prune@latest # Yarn 1.x
139
+ uv tool install dev-prune@latest # or: uvx dev-prune status
140
+ pipx install --force dev-prune
141
+ pip install --upgrade dev-prune
142
+ cargo binstall dev-prune # fetches the prebuilt release archive
143
+ cargo install dev-prune # builds from source, needs Rust 1.88+
139
144
  ```
140
145
 
146
+ Each command installs the latest version *and* updates an existing copy — the same
147
+ line works for both. That is what the `@latest`, `--force` and `--upgrade` spellings
148
+ are for: the bare forms report "already installed" and change nothing, which looks
149
+ like an update and isn't. (`cargo install` rebuilds on its own whenever a newer
150
+ version exists.)
151
+
141
152
  The [npm](https://www.npmjs.com/package/dev-prune) and
142
153
  [PyPI](https://pypi.org/project/dev-prune/) packages **contain the binary** — there is no
143
154
  download step at install time, so they work under `npm ci --ignore-scripts`, behind a
@@ -185,8 +196,8 @@ brew install https://raw.githubusercontent.com/Life-Experimentalist/dev-prune/ma
185
196
  scoop install https://raw.githubusercontent.com/Life-Experimentalist/dev-prune/main/packaging/scoop/dev-prune.json
186
197
  ```
187
198
 
188
- WinGet is [submitted and in review](https://github.com/microsoft/winget-pkgs/pull/422809);
189
- `winget install VKrishna04.dev-prune` starts resolving when that pull request merges.
199
+ dev-prune is not in WinGet yet — `winget install VKrishna04.dev-prune` does not
200
+ resolve. On Windows, use Scoop or the install script instead.
190
201
 
191
202
  The two Python entry points differ in where they land. `pip install` follows whichever
192
203
  environment is active, so inside a virtualenv `devp` lives in that venv's `Scripts`/`bin`
@@ -320,8 +331,8 @@ so they are worth copying rather than typing.
320
331
  | [Open VSX](https://open-vsx.org/extension/VKrishna04/dev-prune) | **`VKrishna04.dev-prune`** | The same extension, for VSCodium, Cursor, Windsurf, Positron and Kiro. |
321
332
  | [SchemaStore](https://www.schemastore.org/) | **`.devprune.json`** | The config schema, by filename. No extension and no `$schema` key needed. |
322
333
 
323
- [WinGet](https://github.com/microsoft/winget-pkgs/pull/422809) is submitted and in
324
- review. It is not in the table because it does not resolve yet.
334
+ WinGet is not in the table because dev-prune is not in `winget-pkgs` yet, so
335
+ `winget install VKrishna04.dev-prune` does not resolve.
325
336
 
326
337
  Two of those rows are not installs of dev-prune at all. SchemaStore is why JetBrains
327
338
  IDEs, Visual Studio, Neovim and Zed validate `.devprune.json` with nothing installed —
@@ -617,7 +628,7 @@ process that leaves a dirty working tree is a surprise.
617
628
  | 🐳 **Container report** | `devp caches docker` (also `podman`, `nerdctl`, `finch`, Apple's `container`, 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. `devp caches clear docker` then runs the narrow ones for you, after asking, and counts them in `devp stats` — **never a volume**, and never from a scheduler or a hook. `devp caches` carries a one-line summary per engine, outside its own total |
618
629
  | 📊 **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, Hex, Bundler, pub, SwiftPM, Terraform, Poetry, PDM and Deno — and prints the command that clears each. It also finds the stores that belong to no package manager at all and are routinely the largest things in the list: the Playwright and Puppeteer browser bundles, the Cypress binary cache, the Electron and electron-builder download caches, and the HuggingFace hub — a whole browser or model per version, and nothing ever removes the old one. The report is read-only; `devp caches clear <manager>` runs that command for you, after asking. `devp config set cache_max_gb default=10` says how big is too big — for every manager at once, or per manager with `default=10,npm=4` — 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 |
619
630
  | 🩺 **`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 |
620
- | 🤖 **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 |
631
+ | 🤖 **Self-installing automation** | OS-native scheduler (Task Scheduler, LaunchAgent, systemd user timer) and non-blocking Git hooks, installed once the first run’s walkthrough is accepted (quitting it installs nothing) and restored after an upgrade. `auto_setup`, `auto_hooks`, `auto_daemon` or `DEV_PRUNE_NO_AUTO_SETUP=1` turn it off |
621
632
  | ⚡ **0ms opt-out** | An `ignore.devprune.json` in a repository root is honoured by file presence alone — no read, no parse. It applies at registration as well: a bulk scan (`devp init`, and the scheduled pass's own discovery) will not register a repository that holds it, so a repository can decline before it ever reaches `devp status`. `devp link <path>` still registers one, because naming a single repository is not a bulk scan |
622
633
  | 🔌 **`--json` on every reporting command** | `run`, `status`, `stats`, `trust` and `caches` each emit one versioned document on stdout, diagnostics on stderr. Built for scripts and agents |
623
634
  | 🧠 **AI agent skill** | A token-lean `SKILL.md` embedded in the binary; `devp skill` exports it and prints onboarding prompts for Claude Code, Gemini Antigravity, Cursor, Windsurf, Copilot and OpenClaw, and the repository doubles as a Claude Code plugin marketplace |
@@ -648,7 +659,7 @@ process that leaves a dirty working tree is a surprise.
648
659
  | `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 |
649
660
  | `devp config [ACTION]` | `get`, `set`, `show`, `wizard`, `project`, `daemon`, `hook`, `icon` | Global settings, per-repository `.devprune.json`, scheduler, Git hooks, file manager icons |
650
661
  | `devp setup` | `--status` | Installs any missing integration; `--status` only reports |
651
- | `devp update` | `--offline`, `--install` | Prints the installed version, checks GitHub for a newer release, shows the upgrade command for your install channel; `--install` runs that upgrade through the channel that owns this copy |
662
+ | `devp update` | `--offline`, `-y`, `--install` | Prints the installed version, checks GitHub for a newer release, shows the upgrade command for your install channel, then asks `[y/N]` before installing when there is one; `-y` answers yes, `--install` skips the report and installs straight away |
652
663
  | `devp skill` | `--agent <editor>` | Exports `SKILL.md` and prints AI agent onboarding prompts; `--agent` writes per-repository rules for 16 editors — Cursor, Windsurf, Antigravity, Cline, Roo, Kilo Code, Continue, Amazon Q, Kiro, Trae, Junie, Gemini CLI, Zed, Copilot, Aider or `AGENTS.md` |
653
664
  | `devp man` | `--dir <dir>` | The manual as man pages, generated from the same argument definitions `--help` prints; alone it emits `devp(1)` to stdout, `--dir` writes the full set |
654
665
  | `devp uninstall` | `--deep` | Removes the scheduler, hooks, both binaries and every other installed copy it can find on the machine; `--deep` also clears configuration |
@@ -702,11 +713,11 @@ Adapters detect the project, verify the lockfile, and own the bloat directories:
702
713
  A required binary that is missing is a reason to skip, never a reason to delete: if `npm`
703
714
  is not on `PATH`, the `node_modules` it owns is left exactly where it is.
704
715
 
705
- The eight build-tool adapters ship **disabled**, because a build tree is regenerated
716
+ The nine build-tool adapters ship **disabled**, because a build tree is regenerated
706
717
  by recompiling, not downloading — it costs more to get back. `devp config set
707
718
  enable_cargo true` / `enable_gradle true` / `enable_maven true` / `enable_swift true` /
708
719
  `enable_dart true` / `enable_mix_build true` / `enable_vcpkg true` /
709
- `enable_cmake_build true` switches them on, and their candidates wait for
720
+ `enable_cmake_build true` / `enable_dotnet_build true` switches them on, and their candidates wait for
710
721
  `build_idle_days` (45 by default), applied as the *maximum* of it and `idle_days` — the
711
722
  build-tool gate only ever makes pruning later, never earlier.
712
723
 
@@ -816,7 +827,7 @@ once on a first install — so the defaults are something you agreed to rather t
816
827
  inherited — and again after an upgrade adds a setting you have never been shown.
817
828
 
818
829
  If you already know what you want, `devp config recommended` is the one-command version:
819
- it turns on the eight adapters and build trees that are off by default because they are
830
+ it turns on the nine adapters and build trees that are off by default because they are
820
831
  not universally wanted, and leaves `allow_manifest_rewrite` — the one recommendation
821
832
  that edits files Git tracks — named, explained and off unless you add
822
833
  `--with-cautious`. `devp config show` lists whatever you have not taken yet.
@@ -854,7 +865,7 @@ rather than downloading. That is the whole reason each one is a switch.
854
865
 
855
866
  | Key | Default | Meaning |
856
867
  | :--- | :---: | :--- |
857
- | `enable_cargo` … `enable_cmake_build` | `false` | Turn on an opt-in build-tool adapter; `build_idle_days` (`45`) gates all eight |
868
+ | `enable_cargo` … `enable_dotnet_build` | `false` | Turn on an opt-in build-tool adapter; `build_idle_days` (`45`) gates all nine |
858
869
 
859
870
  **Shared download caches** — one key, because the cap only ever marks.
860
871
 
@@ -1002,6 +1013,11 @@ non-blocking `post-commit`, `post-checkout` and `post-merge` Git hooks that regi
1002
1013
  repositories as you visit them. Both are reinstated after an upgrade if anything went
1003
1014
  missing.
1004
1015
 
1016
+ None of it arrives unasked. A machine that has never agreed opens the settings
1017
+ walkthrough on its first attended run, before anything is installed: finishing the
1018
+ walkthrough is the yes, quitting it is a durable no, and `devp setup` changes the
1019
+ answer whenever you like.
1020
+
1005
1021
  ```bash
1006
1022
  devp setup --status # what is installed, what is not, and why
1007
1023
  devp config set auto_setup false # stop the unattended pass entirely
package/bin/dev-prune CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dev-prune-darwin-arm64",
3
- "version": "1.17.0",
3
+ "version": "1.19.0",
4
4
  "description": "Prebuilt dev-prune binary for darwin arm64. Installed automatically by the 'dev-prune' package; not meant to be depended on directly.",
5
5
  "os": ["darwin"],
6
6
  "cpu": ["arm64"],