Raw Development TODO Nov 2014

mini-buildd Development TODO

(1) 1.0.x stable

Subject for patching up stable 1.0.x.

No known issues atm (Nov 14 2014).

Fixes for the minor issues ("buglets" below) eventually may or may not be subjects for backports (depending of how invasive the patch is).

(2) 1.1.x development

(2.0) 1.2.0 release goals

  • Migrate to python3.
  • Secure data channels (HTTPS, maybe SFTP).
  • Speed optimizations (python code, algos, calls, reprepro, ...).

(2.1) Buglets (not bugs)

  • [BUG] Uploader: GPG, not on keyserver: Is removed when running prepare.

  • [BUG] when sbuild fails in setup stage, sbuild idles around (?)

  • [BUG] chroot removal fails when no appr. archive exists (example =>vm154)

  • [BUG] chroots: Sources used for bootstrapping stick. 'check' may fail when sources eventually become invalid.
    • => Use/update with current source when doing chroot 'check'.
  • [BUG] (?) 'mini-buildd-tool -q' does not suppress server logs like "[hellfield] I: API call 'getsourceslist' by user 'AnonymousUser'"

  • [BUG] Daemon change (for example: email regex): Needs start/stop to get active.

(2.2) Patches

New add-on like features, w/o need to change much of the infrastructure. These will most definitely come pretty soon in 1.2.x.

  • [WISH] Include "super-portext" example.

  • [REPOINFRA] use s.th. like "0SID" "0JESSIE" or "~SID" "~JESSIE" for non-numeric (unreleased) dist versions.

  • [SEC] chroot sudoers: Detect old chroots, WARN and remove sudoers anyway.

  • [WISH] Config option "mirrors"
    • API call 'mirrors'.
    • Bundle with API call getsourceslist (others?).
    • keyring package: sources.list library
  • [WISH] pylint: Move all disabled tests from pylintrc to source code

  • [WISH] Status: Add remove/migrate/?? to last packages

  • [CHECK] http://tools.ietf.org/html/rfc5147
    • Link to parts of the build log via fragment to text/plain
  • [WISH] Make passive ftp port range configurable.

  • [WISH] keyring: Auto-migrate keyring packages.

  • [WISH] Library of predefined sbuild --chroot-setup-command snippets (eatmydata, ccache)

  • [WISH] rm libeatmydata as default (?).

  • [WISH] Web API should work with POST; we should use POST by default.

  • [WISH] admin/model objects: Show "used by count" (so we can see what objects may be obsolete).

  • [WISH] Archive: Rethink Archive::mbd_ping (see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=740576)

  • DOC:
    • Remove doc/apidoc.py
  • Cleanup /usr/share/doc/examples/:
    • python-mini-buildd vs mini-buildd
    • examples versus actual package data
  • API: getsourceslist:
    • 'mini-buildd-tool vm154 getsourceslist --suite='(stable|stable-rollback0)' wheezy' should work
    • 'mini-buildd-tool vm154 getsourceslist --mirror=XXX
  • BTRFS chroot backend

  • 'Complete' per-upload config (More ways to influence build via changes magic lines):
    • New flags brainstorm:
  • [FISH] API: port/portext: --extra-changelog-entry

(3) Further Development Brainstorm

  • SQL schema migration (with django 1.7)

  • PYTHON API for mini-buildd API calls.

  • piuparts check functionality (sbuild?)

  • Sources/Archives: Support partial arch archives (?)

  • Better 'user role concept', better keyring management workflow:
    • Upload-Admin:
      • Liste der Uploader, die auf eine Upload-Queue zugreifen koennen

      • Uploader-Requests ("Anklopfen"):
  • notify: Admin notify on deactivated daemon. * ->Daemon.notify for admin messages, repo.notify for packages. * ->Daemon.notify for email, rest as before