Skip to content

feat(module): add vlc, ibus-rime, cheese, v4l-utils, gnome-shell-extension-manager desktop modules - #384

Merged
ycpss91255 merged 2 commits into
mainfrom
auto/modules-desktop-d1
Jul 11, 2026
Merged

feat(module): add vlc, ibus-rime, cheese, v4l-utils, gnome-shell-extension-manager desktop modules#384
ycpss91255 merged 2 commits into
mainfrom
auto/modules-desktop-d1

Conversation

@ycpss91255

Copy link
Copy Markdown
Owner

Summary

Adds five desktop-only apt-archetype modules for the small-tools modularization program, each as module/<name>.module.sh + test/unit/module/<name>_spec.bats:

Module apt package Binary probed by doctor
vlc vlc command -v vlc
ibus-rime ibus-rime command -v ibus + Rime engine data dir
cheese cheese command -v cheese
v4l-utils v4l-utils command -v v4l2-ctl (binary != package)
gnome-shell-extension-manager gnome-shell-extension-manager command -v extension-manager (binary != package)

All five are optional, RISK_LEVEL=low, VERSION_PROVIDED=apt-managed, wired via module_use_apt_archetype, and scoped SUPPORTED_PLATFORMS=("desktop") with SUPPORTED_UBUNTU=("22.04" "24.04" "26.04").

Details

  • Module-defined detect() (apt-get present) and a desktop-gated is_recommended() — recommended only on the desktop form factor, nonzero on headless / SBC / unknown factors (mirrors the anydesk Q49 pattern).
  • Real doctor() on every module: beyond the dpkg is_installed check, it verifies the runtime binary actually resolves on PATH (catching a half-configured package where the binary name differs from the package name). ibus-rime ships no like-named binary, so its doctor probes the ibus framework binary plus the Rime engine data directory.
  • Each declares en + zh-TW DESCRIPTION; TEST_VERIFY_CMD matches the doctor probe.
  • Both standalone- and engine-invocable; all satisfy the 10-function module contract (ADR-0002, enforced by test/unit/module/contract_conformance_spec.bats / test(module): module-iterating contract conformance meta-test #305).
  • doc/module/INDEX.md regenerated via ./script/gen-module-index.sh (69 modules); [Unreleased] CHANGELOG updated.

Test plan

All three CI gates run green blocking-foreground in Docker:

  • just -f justfile.ci test-unit — full unit tree, 0 failures (vlc/cheese/v4l-utils/gnome-shell-extension-manager 58 each, ibus-rime 59; contract-conformance test(module): module-iterating contract conformance meta-test #305 green)
  • just -f justfile.ci test-integration — 0 failures
  • just -f justfile.ci coverage — exit 0, AC-17 gate satisfied

Generated with Claude Code

https://claude.ai/code/session_01NX5H2vuMTv4mBmjpPYoS3s

ycpss91255 and others added 2 commits July 11, 2026 22:26
…nsion-manager desktop modules

Five desktop-only apt-archetype modules for the small-tools modularization
program (module/<name>.module.sh + test/unit/module/<name>_spec.bats each).
All are SUPPORTED_PLATFORMS=("desktop") optional modules wired via
module_use_apt_archetype, installing their named apt package (vlc, ibus-rime,
cheese, v4l-utils, gnome-shell-extension-manager).

Each has a module-defined detect() and a desktop-gated is_recommended()
(recommended only on the desktop form factor), plus a real doctor() that goes
beyond the dpkg check by verifying the runtime binary resolves on PATH:
command -v vlc / cheese / v4l2-ctl / extension-manager (the last two have a
binary name that differs from the package). ibus-rime is a data/engine package
with no like-named binary, so its doctor probes the ibus framework binary plus
the Rime engine data directory.

Each declares an en + zh-TW DESCRIPTION, SUPPORTED_UBUNTU=("22.04" "24.04"
"26.04"), and a TEST_VERIFY_CMD matching its doctor probe. All satisfy the
10-function module contract (ADR-0002, enforced by
test/unit/module/contract_conformance_spec.bats / #305). doc/module/INDEX.md
regenerated (69 modules); [Unreleased] CHANGELOG updated. All three CI gates
(test-unit / test-integration / coverage) pass in Docker.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NX5H2vuMTv4mBmjpPYoS3s
# Conflicts:
#	doc/module/INDEX.md
@ycpss91255
ycpss91255 enabled auto-merge (squash) July 11, 2026 14:28
@ycpss91255
ycpss91255 merged commit e889fc2 into main Jul 11, 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