Skip to content

build(aur): add PKGBUILD for installing taskdog via pacman/yay#957

Draft
Kohei-Wada wants to merge 1 commit into
mainfrom
packaging/aur-pkgbuild
Draft

build(aur): add PKGBUILD for installing taskdog via pacman/yay#957
Kohei-Wada wants to merge 1 commit into
mainfrom
packaging/aur-pkgbuild

Conversation

@Kohei-Wada
Copy link
Copy Markdown
Owner

What

Adds contrib/aur/ with a PKGBUILD so taskdog can be installed on Arch Linux via pacman/yay, as an alternative to make install (which uses uv tool install into ~/.local).

Putting this up for review — not necessarily for merge. It's the venv-bundled approach; merging means committing to maintain it.

Approach (venv-bundled, -venv suffix)

Surveyed how comparable Python apps ship on the AUR. Two routes exist:

  • Native (depends=('python-*')): idiomatic but several deps (python-uvicorn + uvicorn[standard] extras) aren't in the official repos/AUR, so you'd have to package and maintain them too.
  • venv-bundled (this PR): vendors deps into a venv. Non-idiomatic but self-contained and low-maintenance. This is what aider-chat-venv and paperless-ngx-venv do.

Followed the AUR convention: package name taskdog-venv with provides/conflicts=('taskdog'), reserving the plain taskdog name for a possible future native package.

What the PKGBUILD does

  • Builds a relocatable virtualenv on the system Python (uv venv --relocatable), installs taskdog's 5 packages from the release tarball (non-editable), third-party deps from PyPI.
  • Ships the venv under /usr/lib/taskdog, symlinks taskdog / taskdog-server / taskdog-mcp into /usr/bin.
  • Installs the systemd user service to /usr/lib/systemd/user/.
  • UV_NO_INSTALLER_METADATA=1 (no direct_url.json / no $srcdir refs) + compileall --invalidation-mode unchecked-hash so the read-only /usr install never recompiles at runtime.

Verified locally

  • makepkg builds cleanly; pacman -U installs; pacman -Q taskdog-venv registered.
  • All three binaries run; taskdog table reads the existing per-user DB end-to-end.
  • Startup parity with the uv tool install (--version ~0.25s) thanks to shipped bytecode — without it, the read-only /usr venv recompiled every run (~1.3s).
  • Per-user data in $XDG_DATA_HOME/taskdog/ is never touched by the package.

Caveats (documented in contrib/aur/README.md)

  • arch=('x86_64') (bundled wheels like pydantic-core are platform-specific).
  • venv is built against the system Python → a major Python upgrade needs a rebuild.
  • Build pulls deps from PyPI at build time (outside makepkg's source control) — fine for personal/AUR use, not official-repo quality.
  • Not published to the AUR yet; that's a separate manual step (needs an AUR account + SSH key).

Build artifacts (src/, pkg/, *.tar.gz, *.pkg.tar.zst) are gitignored.

🤖 Generated with Claude Code

Adds contrib/aur/ with a venv-bundled PKGBUILD as an alternative to
`make install`. It builds a relocatable virtualenv on the system Python,
ships it under /usr/lib/taskdog, exposes taskdog/taskdog-server/
taskdog-mcp in /usr/bin, installs the systemd user service, and
precompiles bytecode so the read-only /usr install starts fast.

Uses the `-venv` naming + provides/conflicts=('taskdog') convention from
aider-chat-venv / paperless-ngx-venv. Build artifacts are gitignored.
Not published to the AUR yet (separate manual step).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@amazon-q-developer amazon-q-developer Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PKGBUILD implementation follows Arch Linux packaging conventions correctly. The venv-bundled approach is well-documented with appropriate caveats. The build and package functions properly handle virtualenv creation, bytecode precompilation, and systemd service installation. The .gitignore appropriately excludes build artifacts. No blocking defects found.


You can now have the agent implement changes and create commits directly on your pull request's source branch. Simply comment with /q followed by your request in natural language to ask the agent to make changes.

@Kohei-Wada Kohei-Wada marked this pull request as draft June 4, 2026 06:46
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