Skip to content

Commit 3aae7cb

Browse files
committed
docs: address review feedback for README and ADRs
- Fix test count from 493+ to 490+ in README - Fix fd.json example in ADR-007 to use shfmt (actual github_release_binary user) - Add missing installers to ADR-007 Tier 2 table (docker_plugin, github_clone, npm_self_update) - Document auto/reconciliation install method in ADR-007 - Add upgrade/update naming note to ADR-008 Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
1 parent ed631f7 commit 3aae7cb

3 files changed

Lines changed: 17 additions & 6 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@ python3 -m pyflakes cli_audit.py
453453

454454
- Run tests:
455455
```bash
456-
make test # Run all 493+ tests
456+
make test # Run all 490+ tests
457457
make test-unit # Unit tests only
458458
make test-coverage # With coverage report
459459
make test-parallel # Parallel via pytest-xdist

docs/adr/ADR-007-generic-tool-installation-architecture.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,16 @@ Each tool is described by a `catalog/<tool>.json` file containing metadata and i
2525

2626
```json
2727
{
28-
"name": "fd",
28+
"name": "shfmt",
2929
"install_method": "github_release_binary",
30-
"binary_name": "fd",
31-
"github_repo": "sharkdp/fd",
32-
"download_url_template": "https://github.com/sharkdp/fd/releases/download/v{version}/fd-v{version}-{arch}-unknown-linux-gnu.tar.gz",
33-
"tags": ["core", "search"]
30+
"binary_name": "shfmt",
31+
"github_repo": "mvdan/sh",
32+
"download_url_template": "https://github.com/mvdan/sh/releases/download/{version}/shfmt_{version}_linux_{arch}",
33+
"arch_map": {
34+
"x86_64": "amd64",
35+
"aarch64": "arm64",
36+
"armv7l": "arm"
37+
}
3438
}
3539
```
3640

@@ -48,8 +52,13 @@ Generic installer scripts under `scripts/installers/` implement each installatio
4852
| `uv_tool.sh` | `uv tool install` for Python packages | semgrep, ruff, black |
4953
| `npm_global.sh` | `npm install -g` | eslint, prettier |
5054
| `package_manager.sh` | System package managers (apt/brew/dnf) | sponge, pipx |
55+
| `docker_plugin.sh` | Docker plugins | compose |
56+
| `github_clone.sh` | Clone and build from source | rbenv, ruby-build |
57+
| `npm_self_update.sh` | NPM self-update | npm |
5158
| `dedicated_script.sh` | Delegate to a tool-specific script | python, node, docker |
5259

60+
**Note on `auto` install method:** 11 tools (including fd, ripgrep, bat, and hyperfine) use `"install_method": "auto"` instead of specifying a fixed installer. The `auto` method uses the reconciliation system (`scripts/lib/reconcile.sh`) to detect existing installations and choose the best available method from the tool's `available_methods` list in the catalog. This allows the system to adapt to the user's environment (e.g., preferring a GitHub binary release over cargo over apt, depending on what is already installed and available).
61+
5362
### Tier 3: Orchestrator
5463

5564
`scripts/install_tool.sh` is the central orchestrator that:

docs/adr/ADR-008-makefile-pattern-target-fallback.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@ These are evaluated at Makefile parse time, not at target execution time. The `i
104104
| `uninstall-%` | `uninstall` |
105105
| `reconcile-%` | `reconcile` |
106106

107+
**Note on upgrade/update naming:** The user-facing Make target is `upgrade-%`, but it passes `update` as the action parameter to the underlying scripts. This is for historical compatibility -- the installer scripts originally used `update` as the action name. The Makefile uses the more intuitive `upgrade` terminology for the user interface.
108+
107109
### Testing the fallback
108110

109111
```bash

0 commit comments

Comments
 (0)