Skip to content

feat(module): add obs-studio, spotify-client, thunderbird, gping (repo-based) - #386

Merged
ycpss91255 merged 2 commits into
mainfrom
auto/modules-apps-e
Jul 11, 2026
Merged

feat(module): add obs-studio, spotify-client, thunderbird, gping (repo-based)#386
ycpss91255 merged 2 commits into
mainfrom
auto/modules-apps-e

Conversation

@ycpss91255

Copy link
Copy Markdown
Owner

Summary

Adds four repo-based application modules. Each installs from a third-party
apt source/PPA, and each fully cleans up its repository + signing key on
remove:

  • obs-studio — screen recorder / live streamer via the OBS Project PPA
    (ppa:obsproject/obs-studio); desktop-only; doctor: command -v obs.
  • spotify-client — music-streaming desktop client via the upstream
    Spotify apt repository (repository.spotify.com source in
    /etc/apt/sources.list.d); desktop-only; doctor: command -v spotify.
  • thunderbird — email client installed as a real .deb from the Mozilla
    Team PPA (ppa:mozillateam/ppa, not the snap), with a priority-1001 apt
    pin; doctor: command -v thunderbird.
  • gping — ping with a live terminal graph via the azlux apt repository
    (also recommended on servers); doctor: gping --version.

Each module wires the repository add on install and tears down its apt
source list + keyring on remove/purge, so no repo or key is left behind.

Included artifacts

  • 4 module scripts under module/
  • 4 unit spec files under test/unit/module/ (700+ tests each)
  • Regenerated doc/module/INDEX.md
  • doc/changelog/CHANGELOG.md entry

Merged latest main (bpytop / gpustat / thefuck pipx modules); the
INDEX.md conflict was resolved by regeneration and CHANGELOG unioned.

Gates (all green, Docker-only)

  • just -f justfile.ci test-unit — 7061 tests, 0 failures (exit 0)
  • just -f justfile.ci test-integration — 24/24 passing
  • just -f justfile.ci lint — ShellCheck / fish -n / Hadolint OK

The #305 contract-conformance meta-test dynamically discovers every module
and confirms all four new modules define all 10 mandatory lifecycle
functions (ADR-0002).

Test plan

Generated with Claude Code.

https://claude.ai/code/session_01NX5H2vuMTv4mBmjpPYoS3s

ycpss91255 and others added 2 commits July 11, 2026 23:27
…o-based)

Repo-installed apps for the small-tools modularization: obs-studio (PPA),
spotify-client (Spotify apt repo), thunderbird (Mozilla PPA), gping (azlux repo).
Each hand-defines the 10 lifecycle contract with a real doctor() and a clean
repo/key removal on remove().

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 16:23
@ycpss91255
ycpss91255 merged commit a99041c into main Jul 11, 2026
15 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