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.

Open Issues
~~~~~~~~~~~

.. attention:: **2.0**: Test and document new ``setup`` feature

	* after bootstrap all, setup line wrong???
	* Fixup HTML: rather put it all to admin
	* sync config w/ defaults
	* [WISH] admin/model objects: Show "used by count" (so we can see what objects may be obsolete).
	* maybe: sync config between instances

.. attention:: **2.0**: HTML

	* Fix up repositories view (at least, make it load faster)

.. attention:: **2.0**: Bugs (maybe)

	* (unverified) Can't change user upload permissions?
	* UNREPRODUCIBLE: sbuild_kill, package building keeps running
	* UNREPRODUCIBLE: twisted: events: deadlock just calling events several times(?).

.. attention:: **2.0**: Documentation

	* Add news, changelog

.. attention:: **2.0**: Last steps && QA

	* Test mini-buildd-ssh-\*-command setup.
	* Check all warnings/errors in daemon.log after bootstrap.
	* General GAU tests.
	* Test upgrading from 1.0.x.
	* debconf update (as late as possible, merge local branch).
		* debconf, auto SSL?
	* Keep status of packages/builds between shutdowns

2.2
---
.. attention:: **2.2**: [CHECK]: Release: Alternatives for NotAutomatic, ButAutomo...)?? Can we use more finegrainded PRIOS on archives?
.. attention:: **2.2**: [WISH] *Dependency check on package migration.*
.. attention:: **2.2**: [WISH] Archive: Rethink Archive::mbd_ping (see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=740576)

.. attention:: **2.2**: External user management (ldap, sso?)

	* python3-django-casclient?

.. attention:: **2.2**: QA

	* Make piuparts actually work (non-EXPERIMENTAL)

.. attention:: **2.2**: gnupg: Switch to 'python3-gpg' (*NOT* 'python3-gpgme').
.. attention:: **2.2**: [WISH]: Auto ports and/or Port-Alarm on Debian Package Updates
.. attention:: **2.2**: SQL schema migration (with django >= 1.7)
.. attention:: **2.2**: Extended User Role Concept, with advanced right management workflows.
.. attention:: **2.2**: [FEAT]: Add suite "wildwest", including some way to add pre-build packages.
.. attention:: **2.2**: API: debdiff
.. attention:: **2.2**: [WISH] Automatic SSH upload support, either by scripting the setup or integrating SSH w/ twisted.

.. attention:: **2.2**: REPOSITORY

	* sid-test-nakedgoose: Add extra suite for arbitrary package (deb+src) installs.

Bummers
-------
.. important:: http://tools.ietf.org/html/rfc5147: This, in theory, could be some way to create a TOC for text/plain (buildlogs and such). However

	* RFC only describes line/char based links, not text matching based (so scanning the text file would be needed still)
	* As it seems, main browsers simply don't support it
		* https://bugzilla.mozilla.org/show_bug.cgi?id=660583
		* https://bugs.chromium.org/p/chromium/issues/detail?id=77024

.. important:: twisted:

	* 'apt-get update'@squeeze HTTPS broken; HTTP triggers twisted exception on apt-get update:
		RuntimeError: Cannot register producer <twisted.web.static.NoRangeStaticProducer object at 0x7f56a856b8b0>, because producer <twisted.internet._producer_helpers._PullToPush object at 0x7f56a8574040> was never unregistered.
