RoadMap

2.0

Overall state: ‘Test && polish period’.

Milestones

  • New deb package layout: mini-buildd (the service), mini-buildd-utils (for users), python3-mini-buildd, mini-buildd-doc

  • Code migration to python 3.

  • Update to django 2.2 (minimal version).

  • Switch to twisted as http backend.

  • Support secure data channels (HTTPS && SFTP).

  • API upgrade to json.

  • Event message queue.

  • Periodic task scheduler (cron, internal use).

  • Automated repository snasphots (weekly, monthly, yearly).

  • WEB UI rewrite.

2.0 will

  • be ‘upgrade-compatible’ with 1.0 (especially, there is no SQL scheme change).

  • not be run-time compatible with 1.0.

Upgrading from 1.0.x

Package upgrade

Your 1.0.x installation will typically run on a buster-based system.

You may simply dist-upgrade that system (to bullseye or rather bookworm) – just make sure the mini-buildd package is never purged during that process.

Extra APT sources needed:

  • bookworm: Debian Backports (bookworm-backports)available after Debian bookworm release

  • bullseye: Debian Backports (bullseye-backports-sloppy)available after Debian bookworm release

Alternatively: buster-based upgrade

For convenience, it’s still possible to run 2.0.x under buster with some tweaks:

Extra APT sources needed:

  • Debian Backports (buster-backports)

  • Hellfield Archive (buster-ab-stable) 3rd party

To upgrade, aptitude is imho the easiest way. Select the suggestion that de-installs py2 variants, and upgrades all the rest:

aptitude install mini-buildd/buster-ab-stable

Attention

[buster-based install] 500 Internal Error: [Errno 2] No such file or directory: 'S.gpg-agent.extra'

We see this error seemingly random on buster installations (w/ 2.2.27-1~bpo10+1) only so far.

  • Removing a very old left-over ~/.gnupg/gpg.conf seem to have helped so far on an actual host

  • In test suite / chroot, it usually pops up with profile ‘_all’

  • Never yet seen with default (no) profile or ‘_debian’

Post-install checklist

  • mini-buildd command line arguments (dpkg-reconfigure) – see command ‘mini-buildd’
    • --httpd-bind is now deprecated in favor of --http-endpoint

    • --verbose, --quiet are now deprecated in favor of --log-level. Also, giving none of these options now yields the recommended production log level (before --verbose was default)

    • --debug now has some options removed (see man page). In general, never use it for production, --log-level=DEBUG should be good enough

  • Decide if you want switch to https/ftps: See Running encrypted

  • DB field Daemon.ftpd_bind now also deprecates ‘non-endpoint’ notation

  • DB field Daemon.gnupg_keyserver: Please change to traditional keyserver (like keyserver.ubuntu.com) to retain functionality

  • Inspect/extend your setup, see API call setup (regenerate reprepro repositories will enable new Content support (else you need to wait for internal cron))

  • Recommended to re-create all chroots – see API call ‘remake_chroots’, mini-buildd’s ‘builders’ page

  • File ~/.mini-buildd.pid is no longer used, and may be removed (unless you use a custom setup using the old initv start/stop script)

  • In case you have a custom upload setup, you can now add a custom dput snippet for convenience – see API call ‘dput_conf’

  • In case you hate the autogenerated complicated “Origin” text, you may now customize it – see DB field Daemon.extra_options

2.2 Brainstorm

New Features

  • Dependency check on package migration

  • Watcher support: Autoport and/or alarm on Debian Package Updates

  • Automatic SSH upload support, either by scripting the setup or integrating SSH w/ twisted

  • Make piuparts actually work (non-EXPERIMENTAL)

  • Cron: ccache expire

django

  • SQL schema migration: Get rid of all the workarounds in models just to stick to old schema.

  • Integrate CAS/SSO-like features (python3-django-casclient?)

Refactoring

  • gnupg: Switch completely to ‘python3-gpg’ (NOT ‘python3-gpgme’)

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

Repository

  • Release: Alternatives for NotAutomatic, ButAutomo…)?? Can we use more finegrained PRIOS on archives?

  • sid-test-wildwest: Add extra suite for arbitrary package (deb+src) installs?