Skip to content

feat(module): add openssh, apt-file, xdg-utils, snapd; fold pynvim into neovim - #388

Merged
ycpss91255 merged 1 commit into
mainfrom
auto/modules-leftovers
Jul 12, 2026
Merged

feat(module): add openssh, apt-file, xdg-utils, snapd; fold pynvim into neovim#388
ycpss91255 merged 1 commit into
mainfrom
auto/modules-leftovers

Conversation

@ycpss91255

Copy link
Copy Markdown
Owner

Summary

Fills the remaining apt-module gaps from the leftovers sweep plus one
provider fold-in. All modules satisfy the 10-function module contract
(ADR-0002), auto-verified by the #305 contract-conformance meta-test which
dynamically discovers every module/*.module.sh.

New apt modules (+ unit specs)

  • openssh — OpenSSH client/server (openssh-client / openssh-server).
  • apt-file — search for files inside apt packages.
  • xdg-utils — desktop integration helpers (xdg-open, etc.).
  • snapd — snap package manager daemon.

Neovim: pynvim folded in as a python provider

pynvim is a Python client library (not a standalone CLI), so it is not its
own module. It is now provisioned inside module/neovim.module.sh via the
python3-pynvim apt package as a documented dependency of the editor
(nvimdots' python-backed plugins and :checkhealth provider.python expect
it). Provisioning is best-effort: dry-run logs the step, a missing
apt-get or a failed install only warns and never aborts install() — the
editor is fully usable without the provider. Three new tests in
test/unit/module/neovim_spec.bats cover the dry-run log, the no-op when
apt-get is absent, and the never-abort-on-failure contract.

Skipped

  • bashtop — intentionally skipped; superseded by btop (already a
    module).

Test plan

  • just -f justfile.ci test-unit — green (7426 tests, 0 failures)
  • just -f justfile.ci test-integration — green (0 failures)
  • just -f justfile.ci lint — green (ShellCheck / fish / Hadolint OK)
  • test(module): module-iterating contract conformance meta-test #305 contract-conformance covers openssh / apt-file / xdg-utils / snapd
  • existing neovim spec still passes (not weakened) with the pynvim change

…to neovim

Final small-tools modularization leftovers. openssh (client+server), apt-file
(with best-effort cache seed), xdg-utils, snapd as apt modules with the 10
lifecycle contract + real doctor(). pynvim provisioned via the neovim module
(python provider) rather than a standalone module; bashtop skipped (superseded
by btop).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NX5H2vuMTv4mBmjpPYoS3s
@ycpss91255
ycpss91255 enabled auto-merge (squash) July 12, 2026 17:00
@ycpss91255
ycpss91255 merged commit 5944c83 into main Jul 12, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant