Add a make install target (issue #74) #75

Merged
adrian.tkacz merged 2 commits from feature/make-install-target into develop 2026-09-13 11:09:13 +00:00
Member

Closes #74.

What changed

  • Makefile: new install target running uv tool install --force . — the documented installation path (D-034) as a one-word command. --force makes it an idempotent install-or-upgrade; each run reinstalls from the current checkout state (the "newest = current checkout" semantics, since uv tool upgrade does not apply to path-installed tools and the package is on no index). Deliberately decoupled from the check gate.
  • Makefile (second commit, owner request): new help target, and bare make now prints it via .DEFAULT_GOAL. Target descriptions live as ## markers on the targets themselves and help extracts them from MAKEFILE_LIST, so the listing cannot drift from the targets; the duplicated per-target header list is removed.
  • README.md (Installation): make install added as the from-checkout alternative in the existing install command block; Makefile header documents the tooling notes.

Verification

  • make install ran twice consecutively: both succeed, tool shows scarcity-router v0.1.0 with the three executables (scarcity-router, scarcity-router-mcp, scarcity-router-server); scarcity-router --help smoke-tested.
  • Bare make and make help print the six-target listing; make -n install / make -n typecheck confirm the targets are intact.
  • make check passes (full suite + basedpyright 0 errors), git diff --check clean.
  • origin/develop..HEAD is exactly two commits touching only Makefile and README.md.

Human merge gate applies — leaving the PR open; do not merge by automation.

Closes #74. ## What changed - `Makefile`: new `install` target running `uv tool install --force .` — the documented installation path (D-034) as a one-word command. `--force` makes it an idempotent install-or-upgrade; each run reinstalls from the **current checkout state** (the "newest = current checkout" semantics, since `uv tool upgrade` does not apply to path-installed tools and the package is on no index). Deliberately decoupled from the `check` gate. - `Makefile` (second commit, owner request): new `help` target, and bare `make` now prints it via `.DEFAULT_GOAL`. Target descriptions live as `## ` markers on the targets themselves and `help` extracts them from `MAKEFILE_LIST`, so the listing cannot drift from the targets; the duplicated per-target header list is removed. - `README.md` (Installation): `make install` added as the from-checkout alternative in the existing install command block; Makefile header documents the tooling notes. ## Verification - `make install` ran twice consecutively: both succeed, tool shows `scarcity-router v0.1.0` with the three executables (`scarcity-router`, `scarcity-router-mcp`, `scarcity-router-server`); `scarcity-router --help` smoke-tested. - Bare `make` and `make help` print the six-target listing; `make -n install` / `make -n typecheck` confirm the targets are intact. - `make check` passes (full suite + basedpyright 0 errors), `git diff --check` clean. - `origin/develop..HEAD` is exactly two commits touching only `Makefile` and `README.md`. Human merge gate applies — leaving the PR open; do not merge by automation.
`make install` runs `uv tool install --force .`: an idempotent
install-or-upgrade of the three console commands into the isolated uv
tool environment, reinstalling from the current checkout state each run.
Decoupled from the `check` gate; documented in the Makefile header and
the README installation section.
Target descriptions move onto the targets as `## ` markers and the help
target extracts them from MAKEFILE_LIST, so the listing cannot drift
from the targets themselves. Bare `make` now prints the listing via
.DEFAULT_GOAL; the duplicated per-target header list is gone.
adrian.tkacz deleted branch feature/make-install-target 2026-09-13 11:09:13 +00:00
Sign in to join this conversation.
No description provided.