Skip to content

v0.3.0: The Count finds his server from a checkout, resolves mise tools through mise, and ships a container image

Latest

Choose a tag to compare

@github-actions github-actions released this 23 Oct 20:03
· 7 commits to main since this release
6b1258d

The Count can now find his own server from a checkout, asks the pinned mise for every tool's versions, and publishes a container image. Two changes need your attention: mise tool branch names and the docs URLs.

Added

  • A checkout finds the Count's server (#15, @sweepies). patchula lookup, run and tui in a checkout, with no repository named, look for the server's marker in the newest 500 open issues and PRs. If they find one, they ask once whether to run there and remember the answer for that repository in ~/.config/patchula/repositories.json. Use --no-server to run locally for one command. Without a terminal there is no request and no prompt, so CI is unaffected.

    The server writes its URL into each PR and dependency dashboard it manages. Set publicUrl if the App's webhook goes through a relay such as smee.io, which has no /webhook path to derive the URL from. Set advertise = false to keep the URL out of what the Count writes. Turning advertising on or off edits each open PR once.

  • A read-only repository API (#16, @sweepies). The server exposes GET /api/v1/repositories and GET /api/v1/repositories/{owner}/{repo} for a dashboard. It needs no sign-in, allows any origin, and shows only public repositories. It reports each repository's last run, its dependencies and updates, its open PRs (with headSha, for a merge through GitHub's own API) and up to 20 PRs the Count merged. Set publicApi = false to turn it off.

  • A container image (#19, @sweepies). Each release publishes ghcr.io/sweepies/count-patchula for linux/amd64 and linux/arm64, tagged with the version without the v and latest (not for prereleases). The image starts patchula serve as user 10001 and includes mise. See the container image guide.

  • Setup prompt on the getting started page (#12, @sweepies). The page opens with a prompt you can paste into a coding agent to set up the Count for a repository.

  • Packslip tools in the short form work (#17, @sweepies). packslip:owner/repo is now accepted as well as packslip:github.com/owner/repo. Other hosts are still refused.

Changed

  • Every mise tool is looked up with mise ls-remote (#18, @sweepies). The Count runs the pinned mise in a sandbox, so any backend mise lists works, including packslip monorepo paths, go:, gem:, dotnet:, spm:, conda: and http:. Node's LTS line comes from mise ls-remote node lts. Listings are cached for an hour per tool and token scope, and a manual retry asks mise again.
  • Prereleases follow the Count's prerelease rules. mise's listing now includes prereleases. A pin on a stable version is not offered a prerelease, and a pin on a prerelease is offered later ones. Previously a prerelease pin was not offered any later version.
  • Names are refused before mise starts when they use asdf: or vfox: (plugin backends), a leading -, bracketed tool options, or a tool@version selector such as prettier@3. The @ sign is allowed only to open an npm scope, as in npm:@types/node.
  • A cargo: tool pinned to a Git URL reports a warning, since mise lists only HEAD for it and there is no release to move to.
  • A failed or empty Node lts listing no longer fails the whole catalog. Only a dependency on the LTS channel reports the missing evidence.
  • Docs site is built from main alone (#13, @sweepies). The /next/ and /vX.Y.x/ paths and the version picker are gone. The site always shows the main branch's docs at the root.

Breaking Changes

  • mise tool branch names use the tool name (#18). For example, patchula/jq-1.x replaces patchula/jqlang-jq-1.x. If you match update branches by name in branch protection rules, rulesets or automation, update those patterns.
  • mise must be on PATH for lookups as well as for lockfile tools. Install it as the installation guide describes before upgrading.
  • Versioned docs links no longer resolve. Links to /next/ or /vX.Y.x/ pages on the docs site need the root path instead.

Full Changelog: v0.2.0...v0.3.0