Back to mini-buildd PTS page

Accepted mini-buildd 1.9.0 (source) into experimental



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Sun, 30 Aug 2020 16:49:17 +0200
Source: mini-buildd
Architecture: source
Version: 1.9.0
Distribution: experimental
Urgency: medium
Maintainer: Stephan Sürken <absurd@debian.org>
Changed-By: Stephan Sürken <absurd@debian.org>
Closes: 790056
Changes:
 mini-buildd (1.9.0) experimental; urgency=medium
 .
   ** 1.9.x are _development_ releases, use for testing only. **
 .
   Issue Soup, plate VII: Armageddon
    This release updates to 1.9.x versioning scheme (indicating
    that next stable will be 2.0.x, and we are getting closer;). It
    addresses various mixed issues -- some of which demanded severe
    internal refactoring.
 .
    Let's try to summarize what's user-visible:
 .
    - Further improves 'events' format and handling; merges 'notify'
      (E-Mail).
    - REJECT on uploads with unfinalized changelog.
    - testsuite now tests far more use cases.
    - threads: Faster shutdown (remove polling).
    - Builds may now be killed manually (via API call).
    - Removes SIGHUP capability (there really is no use case).
    - Command line args syntax for lists is now '--list a b' (was
      '--list a --list b').
    - API 'getsourceslist' overhauled, added ability to set apt line
      options.
    - Simplify default apt 'archive id' (origin), and add ability to
      customize.
 .
   [ Stephan Sürken ]
   * [c5d4f48] builder.py (Build.mbd_run): Indent fixes.
   * [0d76cc0] repository.py: Minor formal code improvements around package
     install.
   * [4b4ee21] builder.py: More reasonable debug logs on live logs
     expiration.
   * [0ac756d] builder.py: No need to use django timezone util for UTC (any
     more).
   * [6f3062c] repository.py (Repository.mbd_package_install): On binary
     package install failure, revert to rollback0 (Fixes possibly partially
     installed packages).
   * [9497ba3] changes.py (Upload.__init__): Forbid 'unfinalized' changelog
     entries.
   * [bab4bc9] changes.py: With dedicated 'Upload' class, Options parser
     can now be initialised in constructor.
   * [0c45875] daemon.py: Re-order code.
   * [6621224] daemon.py (DaemonThread.mbd_run): Simplify code.
   * [50d211a] daemon.py: Rename start, stop, restart: Prefix _mbd (prepare
     class Daemon to be Thread itself).
   * [d07dd94] misc.py: Alternative Thread impl Thread1.
   * [8268706] httpd.py: Update to Thread1.
   * [a3d3a6c] ftpd.py (FtpD): Update to Thread1.
   * [8eeb43f] daemon.py (DaemonThread): Update to Thread1.
   * [235cbda] cron.py (Tab): Update to Thread1.
   * [42a7f0c] builder.py (Build): Update to Thread1.
   * [f1b1e99] builder.py (Builder): Update to Thread1.
   * [2b44add] Merge Thread1 -> Thread.
   * [98b91c6] daemon.py: Merging DaemonThread w/ Daemon (sort of carnage
     atm; not all works again).
   * [192dba8] misc.py: Add (commented) debug log for temp use.
   * [1a15833] misc.py: Add Singleton class (following metaclass template).
   * [a8a6c88] daemon.py: Use Singelton class (instead of using globals).
   * [d2b00ce] daemon.py: Daemon: Treat Daemon class naturally as Thread;
     start/join in mini-buildd, mbd_start/mbd_stop now only handles
     incoming (most things continue to work ;)
   * [10383a4] packager.py: Fix stray build result error wording: Rather
     "not packaging" than "not building".
   * [a29cad9] builder.py: Fix: Don't use event Thread class for building.
   * [6e4418e] daemon.py: Thread: Make *most* class vars '__init__ only'.
   * [28e9329] ftpd.py: Instead of (mis)using __del__, properly overwrite
     join().
   * [7ed555d] misc.py (Singleton.destroy): Add destroy method.
   * [f11c6ed] daemon.py (Daemon): Get rid of extra mbd_start(),
     mbd_stop().
   * [b422c70] daemon.py (Daemon): Get rid of extra is_running() (just use
     thread's is_alive()).
   * [2c546b3] daemon.py (Daemon): Remove (now no-op) is_busy().
   * [b63b8ae] daemon.py: Move model getter to models.daemon.
   * [b37dfac] daemon.py: Don't start subthreads in __init__ -- rather
     overwrite start().
   * [22451d0] daemon.py (Daemon): Use dict for subthreads.
   * [1f8e521] daemon.py/cron.py: Switch to nicer notation for tab.add().
   * [4c1023e] builder.py: Convert _expire_live_buildlogs() hack to weekly
     daemon cronjob.
   * [48d9558] daemon.py: Rather use list for threads.
   * [a93a508] debian/control: Need twisted >=20 to make events work.
   * [19a4ad5] daemon.py: Daemon class: Order methods.
 .
   [ Stephan Suerken ]
   * [10e797e] devel: Use auto codename ${MBD_CODENAME} consistently (Fix:
     sid/buster still occasionally hardoded).
 .
   [ Stephan Sürken ]
   * [23c2a0d] misc.py: Rename Thread -> EventThread.
   * [c67714a] misc.py (EventThread.__init__): Get rid of explicit daemon
     arg.
   * [f71d297] misc.py: Call task_done from EventThread.
   * [4d28e32] builder.py: Get rid of extra func build_close() (used only
     once, here).
   * [627baab] misc.py: Add PollerThread.
   * [c2e09d8] builder.py: Use Daemon singleton.
   * [3ecd267] packager.py: Use Daemon singleton.
   * [33bebbd] daemon.py: Remove get() in favour of Daemon() (singleton
     call).
   * [5ce9211] models/daemon.py: Re-fix Daemon save (we still need extra
     update_model() method).
   * [1e6ce79] models/daemon.py: Remove two unneeded calls to mbd_daemon().
   * [6a6ce3d] daemon.py (Daemon.get_active_remotes): Remove, not used.
   * [4f924d1] daemon.py: Fix in-code wording: builds -> building, packages
     -> packaging.
   * [2350749] Revert "misc.py: Call task_done from EventThread."
   * [3b52472] Web home.html: Move crontab && toolbox down.
   * [e987cf7] builder.py (Build): Add support to kill() sbuild run.
   * [6ff3a5b] builder.py (Build): Add event log 'info'.
   * [bd88cf5] builder.py: Move 'building' dict to Builder.
   * [d578bbb] packager.py, daemon.py: Make 'Packager' its own thread
     (analogous to 'Builder').
   * [366abac] builder.py: build_queue: Feed with Changes instance directly
     (no need to init Changes again).
   * [4a60b21] builder.py: Conformly rename "build_queue"->"builder_queue".
   * [f6dea7a] src: Bulk-remove some unnecessary f-strings (new pyflakes
     warning).
   * [a6f0c58] call.py: Fix pyflakes warning.
   * [61e97a8] mini-buildd-super-portext: Fix is_satisfied() method calling
     (triggered by pylint 2.5.3 warnings).
   * [70ba415] pylint: repository.py, source.py: Fix four invalid-str-
     returned warnings for __str__().
   * [daf6cfe] daemon.py: Workaround for pylint crash
     (https://github.com/PyCQA/pylint/issues/3742).
   * [67fbbb0] API: New command "kill": Stop ongoing build arbitrarily.
   * [c99fa9a] HTML: mbd_building.html: Add "kill" API call to 'currently
     building' table.
   * [4475b53] builder.py: sbuild: Retrieve retval from wait() directly.
   * [d9eb58b] builder.py: Make Build thread non-daemon, and properly
     join().
   * [e0f90e0] daemon.py: Fix thread order; do shutdown()+join() both at
     once.
   * [97fa94e] builder.py: Remove the (historic) extra status of a Build
     object.
   * [cf55e06] packager.py: Remove the (historic) extra status of a Package
     object (some compat still).
   * [e51fb96] misc.py: Rm (now unused) class Status.
   * [c8507f6] builder.py: Some structural changes (obsoletes extra
     BuildQueue class, and stops fiddling with 'globals' in Build class).
   * [b69c486] packager.py: Move packager queue to Packager class.
   * [e1b8c85] builder.py: Drop sleep(), use maxsize queue to limit
     parallel builds.
   * [621994e] packager.py: Fix/regression: Make new class vars not
     conflict w/ heritage.
   * [f202a84] .prospector.yaml: Sanitize pylint 'max-public-methods'
     (after Changes refac).
   * [b1d5110] events.py: Event: Support additional fields: 'maintainer',
     'changed_by' and 'urls'.
   * [4aade81] .prospector.yaml: pylint: Adapt max-public-methods, max-args
     to more worldly values.
   * [e81e76d] changes.py (Changes.get_pkglog_url): New method to get pkg
     log URL (currently manually assembled in template only).
   * [bfab77a] models/daemon.py (Daemon.mbd_notify_event): New method
     (currently wrapping mbd_notify()).
   * [e3a101c] events.py (Events.logchanges): New convenience method (to
     get most fields from changes automatically).
   * [b2b8d58] config.py: Add HTTP_PATH_LOG constant.
   * [6dd5917] events.py (Events.logevent): Enable (email) notify for
     events.
   * [22d5d86] Event: Update all (but) one event log call.
   * [99e817e] devel: Adapt testsuite (MIGRATE will now show the "from"
     distribution).
   * [0b94bb7] packager.py (Package.install): Move INSTALLED event log to
     packager.
   * [2f9d2c8] packager.py (Package.autoports): Give automatic ports it's
     own method.
   * [16b1c62] devel: Add convenience shortcuts to build one test/keyring
     package.
   * [99b904d] packager.py: Install: Slightly re-design to make hacky
     EventException workaround obsolete.
   * [5c67bd8] packager.py: Improve logic of 'installer part' (avoids
     double package_close()).
   * [a4bd40b] packager.py (Packager.run_event): Rather check explicitly
     for 'Upload' type.
   * [abe61cf] models/repository.py (Repository._mbd_package_migrate):
     Switch back to deliver destination dist on MIGRATE event.
   * [909b5c8] models/repository.py: Rm mbd_package_notify() (and calls for
     events MIGRATE and REMOVE).
   * [c376b1f] devel: package build shortcuts: Add support for additional
     arguments.
   * [b595605] daemon.py (TestPackage): Add support to test auto-ports.
   * [8696254] api.py (TestPackages): Support auto-ports.
   * [584f27f] devel: Add auto-ports test to test suite.
   * [0ca7af9] packager.py: Code cleanup: Puts event logs at same "level"
     and makes 'port report' available in events.
   * [226293c] packager.py: Remove extra (email) notify code.
   * [cc59d75] daemon.py: Remove extra (email) notify code (for 'invalid
     changes').
   * [7387a73] models/daemon.py: Rm all "msglog" code from mbd_notify().
   * [f4ebed4] models/daemon.py: Merge mbd_notify() into
     mbd_notify_event().
   * [ff6a8eb] models/daemon.py (Daemon.mbd_notify_event): Make this never
     fail, just log on error.
   * [8e69056] models/chroot,repository.py: mbd_reprepro, mbd_path: Rather
     use class vars than method.
   * [8ca24f3] src/*: Bulk-replace misleading field name "sourceversion" by
     "version".
   * [8ebc233] misc.py: Add commmon Thread class, Mandates shutdown()
     method only.
   * [41a94b3] ftpd.py: Update to new basic Thread class w/ shutdown()
     method (eliminates polling).
   * [6633b09] httpd.py: Update to new basic Thread class w/ shutdown()
     method (eliminates polling; actually call reactor.stop()).
   * [a7fc2d3] config.py: Add global "SHUTDOWN" object (so it may be used
     outside Thread context as well).
   * [b26daff] config.py: SHUTDOWN: Use str object (just more handy for
     logging) && fix Thread to always use object comparison ("is").
   * [ee0945c] events.py: Send SHUTDOWN to clients (fixes httpd shutdown
     when event clients are connected).
   * [4fe4296] httpd.py (Events._render): On SHUTDOWN, issue resp. error
     via HTTP status.
   * [0e3b45f] Add debug logs when threads are finished.
   * [fbda719] cron.py: Decrease polling timeout from 5 to 3 seconds
     (improves shutdown delay).
   * [6c91093] mini-buildd: Properly start(), shutdown() and join() httpd
     thread.
   * [f15b321] mini-buildd: Remove support for SIGHUP (reload) (no real-
     world use case, proper service restart is nearly the same).
   * [ba9e084] devel: Add helper 'signal'.
   * [978c1e8] mini-buildd: Simplify signal handling: Overwrite TERM, INT,
     HUP: Proper shutdown, everything else default.
   * [f836ba0] mini-buildd: Merge run_daemon() into runcli().
   * [f964c35] misc.py (Thread.__init__): Add subthreads support.
   * [3860a50] daemon.py (Daemon): Use subthreads.
   * [5aab9ad] httpd.py (HttpD): Don't run as daemon thread.
   * [21d47c9] devel: Add 'pid' helper shortcut.
   * [525f213] src: Remove two left-over task_done() calls (we don't join
     any queues).
   * [2e6f37c] packager.py (Package.extra): Merge changes.extra().
   * [0d191bb] events.py: Fix: Event log replay should be reversed.
   * [1f9a93b] events.py (Event): Remove field "urls": Now in extra.
   * [cf8ab03] src/*: Bulk update wording: "package"->"source" for all uses
     of "package(s)" as "source package(s)".
   * [459f9bb] events.py: Move position for timestamp arg.
   * [85e0e2a] events.py (Event): Move all non-mandatory fields to field
     "extra".
   * [9c175b3] events.py: Harden event code.
   * [b4caa83] misc.py (PollerThread.get_event): Renice implementation.
   * [a4b8bad] devel: signal: Make work for multiple pids.
   * [5974c3b] misc.py (PollerThread): Return w/o delay on shutdown()
     (fixes (idle) daemon stop delay due to crontab).
   * [cdc280f] misc.py (DeferredThread): Adopted from builder.Build.
   * [3365be9] threads.py: Grant 'threads' their own module.
   * [21a01dd] builder.py (Build): Simplify upload code.
   * [71d3a6b] Fix three forgotten spots for the package->source renaming.
   * [a8d691d] Bulk-update naming convention for 'changes' vars: Use
     "upload", "buildrequest", "buildresult" where appropriate.
   * [b7f53e8] packager.py (Package.precheck): Move "Changed-By empty?"
     check here (for now, this is the correct place).
   * [a31bb0e] daemon.py..: Queue incoming events (changes file names)
     only, construct Changes objects later.
   * [9323c86] changes.py (Upload.__init__): Move "Changed-By empty?" check
     back here now (and let m-b-dput profit from early error).
   * [4375757] builder.py (Build): Make buildrequest class var "public".
   * [a4c9a81] events.py: Cosmetics: Put (automated) timestamp field last.
   * [beb2ade] changes.py (Changes.key): Bulk-replace confusing
     'get_pkg_id' method by 'key' property.
   * [18c7b13] packager.py: Don't use extra var for key.
   * [6020729] devel: extra-packages: Don't fail if m-b-dput fails (as we
     now catch 'unfinalized' in user space already).
   * [e98e3f3] Add 'share/testsuite-packages' (static packages for
     testsuite): Add inital package 'unfinalized-changelog'.
   * [f9e4d81] devel: Add support for testsuite-packages.
   * [2d3785c] events.py: Add 'REJECTED' log event.
   * [b4fa1c8] packager.py: Let master exception handler try to add changes
     data to log.
   * [31ebe64] packager.py: Use new type REJECTED for master handler fail.
   * [2dd0efa] devel: testsuite: unfinalzed-changelog: Automatically test
     for correct behaviour.
   * [91ad5b8] .gitignore: Update for new testsuite dir.
   * [9d6694f] share/testsuite-packages: New package test 'unknown-
     repository'.
   * [e80d7fc] devel: testsuite: Auto checking 'unknown-repository'.
   * [d7f2ca0] share/testsuite-packages: Make package name prefix with
     event to expect.
   * [86e4bdc] devel: testsuite: Fully automate (albeit exception cases
     handling) package tests.
   * [9456466] packager.py: Initial fix for FAILED, REJECTED separation.
   * [d3d110d] packager.py (Package): Make Package construct from event
     directly.
   * [2e1d96e] packager.py: Deletion from packaging dict must be in
     Packager itself.
   * [1ee20d4] packager.py (Package.__init__): Remove superfluous 'pid'
     class var.
   * [f7f764b] packager.py (Package.__init__): Merge validate() into
     constructor.
   * [9591991] packager.py: Get rid of package_close().
   * [a757dfa] views.py: API: Don't 'weblog' json results line by line.
   * [3ea4d57] builder.py: BUILT event: Use "architecture" (like in
     changes), not "arch".
   * [6765e3a] mini_buildd_tags.py (mbd_get): Add 'arbitrary key getter'.
   * [f4267ef] builder.py: Remove all buildrequest shortcuts via properties
     (superflous, code more concise when access directly via buildrequest
     changes).
   * [5cefefc] templates: Match include file names with internal names and
     use singular: 'package', 'build', 'event'.
   * [88213ff] builder.py(Build): Make misc.Distribution class var (prepare
     mv/merge Compat).
   * [84f4017] misc.py (Distribution): Merge Compat class from builder
     here.
   * [5e4e32f] distribution.py: New module.
   * [fba2a7f] events.py: Rather always expect proper Type enums internally
     (i.e., remove implicit 'str' conversion).
   * [128ec34] distribution.py: Add "Codename" class.
   * [e1ed176] distribution.py (Distribution): Simplify code (use class
     vars, not properties).
   * [d98ae5e] distribution.py (Distribution): Make self.codename of class
     Codename.
   * [ff34b6f] distribution.py (Distribution.has_lintian_suppress): Remove,
     superfluous (this is already in Codename).
   * [32a068d] devel: Fix dput call (-v is --version only, not --verbose).
   * [2d583a4] mini-buildd-events: Fix behaviour when no type is given.
   * [87e0564] mini-buildd-events: Rather use '--type', not '--types' (arg
     needs to be given mult. times for a list).
   * [b35f520] distribution.py: Import apt_transport_,.. compat into
     Codename.
   * [5486721] misc.py (datetime_stamp): Add shortcut for all interal UTC
     stamps.
   * [abfd715] devel (mbd_testpackage): General func for testpackages
     (fixes redundancy).
   * [b582efe] misc.py (StopWatch): New class (for later use in
     builder/packager).
   * [b34c037] threads.py (DeferredThread): Use StopWatch() (as
     self.running) to control and measure deferred_run().
   * [0d7af06] packager.py (Package): Use StopWatch (as self.running) to
     measure and control packager run.
   * [31a71c0] changes.py (Changes): Add generic "distribution" property,
     and a mapping variant for 'Upload'.
   * [ac1c1d4] builder|changes.py: Use new 'distribution' property.
   * [cac5833] models/repository.py (parse_distribution): Move here (from
     daemon.py).
   * [bfc7d2a] packager.py (Package): Obsolete extra
     self.distribution_string.
   * [adadb2e] misc.py (StopWatch): Add to_json(); replace "took" by this.
   * [b37122b] packager.py: Better names for internal class vars
     (installed, rejected, failed).
   * [2363681] builder.py: Rm obsoleted started+built stamps.
   * [ffcedb7] builder.py (Build): Mv auth to constructor.
   * [e1ac3a1] builder.py (Build): Drop extra _build_dir class var.
   * [077a191] builder.py: Rename some class vars (like in packager).
   * [7d4beb2] builder.py: Rm compat status, and simplify __str__().
   * [a333def] builder.py (Build.__init__): key: Remove cruft '$' before
     arch.
   * [4db3da1] misc.py (StopWatch.__str__): Renice output.
   * [e6ed492] changes.py: Renice key format (@distribution).
   * [0c9492b] builder.py (Build.__str__): Drop. We will only need .key.
   * [d16d741] packager.py (Package.__str__): Drop (we will only need
     .key). Also drop superfluous status property.
   * [be14870] templates/includes/mbd_build|package.html: Simplify.
   * [b3fc66b] gnupg.py: Fix import order (cosmetic).
   * [52e32de] modesl/gnupg.py: Fix missing import (mini_buildd.client).
   * [2e9e6ac] config.py: Put constant for HTTP_MESSAGE_PREFIX here. Also
     add generic "field" prefix for later use in 'changes'.
   * [6ff6feb] daemon.py: Fix missing explicit import (config).
   * [9ba92c0] daemon|events.py: Use new global for X-*-Originally-Changed-
     By.
   * [32cf3b8] packager.py: Fix missing import.
   * [3c5fad7] models/repository.py: Three overlooked updates for
     'distrinution.py/codename compat merger'.
   * [d44d7c6] api.py: logcat: Fix wrong bulk-update (from introducing
     'events').
   * [a44c385] api.py (Find): Fix one forgotten bulk-update
     ("package"->"source" update).
   * [84dd604] api.py (GetUploaders): Trigger keyring update.
   * [d250957] devel: testsuite: apicalls->api-getters: Test _all_ getter
     calls and move below build-port-migrate.
   * [a4a4ece] devel: testsuite: Add "portext" test.
   * [f3ff300] package.py: New modules for package classes.
   * [80141ec] changes.py: Add config.cfield(), changes.cget|set(): Helper
     for custom fields.
   * [6fb4569] devel (mbd_pythonkeyringtestconfig): Fix for python3-keyring
     21.3.0.
   * [cbcfc9f] builder.py: Make all custom fields (for buildresult,
     buildrequest) actually use our custom prefix.
   * [12bc11a] builder.py (Build.build): Update "Arch-All" to custom
     getter.
   * [9c7dc46] misc.py (apt_line[p]): Add generic tool functions to
     generate an apt line (see man sources.list).
   * [d38c1a0] mini_buildd_tags.py: Log stack on error.
   * [31d588d] models/source.py (Component): Make class Component 'python-
     sortable' (skip extra compare function, just use sorted() on
     iterables).
   * [c6e26ab] models/source.py (Source.mbd_get_apt_line): Only one getter
     function, use general formatter function from misc.
   * [f310a52] models/repository.py: Update to new Source.mbd_get_apt_line
     && sorted(components).
   * [311b9e6] models/chroot.py (Chroot.mbd_check): Update to new
     Source.mbd_get_apt_line().
   * [88b06bf] mini_buildd/daemon.py: Update to new
     Souces.mbd_get_apt_line().
   * [70434b2] misc.py (apt_line): Fix unit tests (we no longer sort here).
   * [f04a5aa] models/repository.py (Distribution.mbd_get_apt_line): Use
     generic formatter function.
   * [ca9f47d] models/repository.py
     (Distribution.mbd_get_apt_sources_list): Update result to be a list of
     tuples (internally only for now).
   * [ca8483e] daemon.py (Daemon.mbd_get_sources_list): Use list of tuples
     internally.
   * [ea03a42] misc.py (AptLine): Upgrade apt_line() func to class (this
     will need to do more).
   * [4122442] misc.py (SourcesList): Fixes for AptLine class, add
     SourcesList class.
   * [0423e15] package.py: Fix apt_line usage.
   * [bda2692] models/chroot.py: Fix apt_line usage.
   * [c96ecc3] api.py (GetSourcesList): Rather use '--types' list than '--
     with-deb-src'.
   * [5fbe8d6] models/repository.py (SuiteOption): Move all tool methods
     needing 'repository' to class Repository.
   * [a09604f] models/repository.py (Layout): Move all tool methods needing
     'repository' to class Repository.
   * [66fdd0a] models/repository.py (Distribution): Move all tool methods
     needing 'repository' to class Repository.
   * [1a714ea] models/repository.py (Repository): Better name
     mbd_get_apt_sources_list->mbd_get_apt_build_sources_list.
   * [0a8ce7a] models/distribution.py: Move Suite, Architecture, Layout,
     Distribution to separate module.
   * [a51bf79] models/daemon.py (Daemon): Move (non-build)
     get_sources_list() to model.
   * [395bfa9] api.py (MultiSelectArgument): Add 'choices' argparse args
     (fixes argparse-completion).
   * [9175da8] api.py (MultiSelectArgument): Make this argparse 'append'
     type.
   * [37a423d] api.py (AutoSetup): Update for new MultiSelect.
   * [738df91] api.py (KeyringPackages): Update for new MultiSelect.
   * [d06c9b4] api.py (TestPackages): Update for new MultiSelect.
   * [be09c0d] api.py (GetSourcesList): Update for new MultiSelect.
   * [2349b3b] api.py (Find): Update for new MultiSelect.
   * [d031801] api.py (Port): Update for new MultiSelect.
   * [a9eaaba] api.py (PortExt): Update for new MultiSelect.
   * [952bd63] devel: Update to latest API changes.
   * [a09ba0c] api.py, mini-buildd-api: Add dedicated api_args() function,
     move to api.py.
   * [5215d5f] api.py (GetSourcesList): Add --options.
   * [227d8fd] api.py (GetSourcesList): --with-rollbacks -> rollbacks (this
     is just the number of rollbacks, not bool).
   * [20e10d5] api.py (GetSourcesList): --with-extra-sources -> --with-
     extra (we already are in "sources context').
   * [d8e6aa7] api.py (GetSourcesList): Add --with-comment.
   * [d7fa569] api.py (GetSourcesList): Mv least important flags down
     (with-comment, with-extra).
   * [1bfb910] api.py (TestPackages): PACKAGES->TEMPLATES (naming in line
     with package.py).
   * [c74f183] api.py (MultiSelectArgument): argparse/non-positionals: Drop
     'append', instead go for 'store' + 'nargs=+'.
   * [6cd2ade] misc.py (AptLine): Add 'mirror' support.
   * [2fa2c9e] mini-buildd, mini-buildd-events: Convert two 'append' args
     to 'store nargs=+' (to be consistent across all tools).
   * [cd66d08] misc.py (AptLine): 'options' and 'mirrors' via getter only.
   * [f81a8e8] models/source.py (Source.mbd_get_apt_line): 'uri' no
     (longer) needed.
   * [64fd7f4] models/source.py (Source.mbd_get_apt_line): Autogeneration
     of 'comment'; components->limit_components.
   * [44cbef1] mini_buildd_tags.py (mbd_distribution_apt_sources_list):
     Display 'with_comment'.
   * [b31b900] misc.py (AptLine): Disallow components as str, and do
     compnents sorting once, here.
   * [a7ff70f] models/repository.py (Repository.mbd_get_apt_line): Auto-
     generate comment.
   * [4a3c870] api.py (GetSourcesList): Move impl. here ('getsourceslist'
     is special and will not be further generalized).
   * [e72fe43] models/daemon.py (Daemon.mbd_get_archive_origin): Simplify
     to 'Mini-Buildd <identity>'.
   * [33f989e] models/daemon.py (Daemon): Make archive 'Origin'
     configurable via extra option. (Closes: 790056)
   * [b1b4a7c] devel (auto-setup): Fix for new --vendor arg syntax.
   * [d9a19e4] misc.py (AptLine.get): Add "no component" apt line support.
   * [5b518ec] devel: apt-tofu-bootstrap: Update to use apt line w/
     'trusted=yes' (this also moves the snapshot test code to a separate
     test case).
   * [077a8ac] mini_buildd_tags.py (mbd_cget): Analogous to mbd_get(), but
     for custom fields.
   * [1343117] changes.py: buildrequests: Better name for custom field:
     "Upload-Result-To" -> "Client".
   * [e7e28b1] changes.py (Buildrequest): Obsolete custom field "Base-
     Distribution".
   * [e69b2f6] changes.py (Buildrequest.upload_buildrequest.add_builder):
     Rename remote(s) -> builder(s).
   * [1837fde] changes.py (Buildrequest.upload_buildrequest): Remove live-
     buildlog monkey-patch of status (we now just can use new "http" field
     of status).
   * [dd87886] changes.py (Buildrequest): Move all 'live buildlog' code
     here; add new custom field "Builder", replacing class var hacks.
   * [572e18c] mbd_package|builds.html: Update to new live buildlog setup.
   * [4acdfc2] builder.py (Build): Remove extra live_buildlog class var
     (now obsolete).
   * [09dc48f] mini_buildd/home.html: Merge build.html, event.html,
     package.html.
   * [dd58364] mini_buildd/home.html: Update/simplify live building,
     packaging.
   * [729a402] changes.py (Buildresult.buildresult_stat): Merge this
     unsused method to into __str__() (and use as build.info).
   * [fe664c7] builder.py (Build): Make 'buildrequest' class var public.
   * [5ce0bfa] config.py: Add HTTP_PATH_LOG_RENDER (Fixes: HTTP_PATH_LOG
     set twice, overwriting).
   * [300549f] events.py (Events.logchanges): Also set "architecture"
     automagically.
   * [7b4aad9] packager.py (Package.extra): Remove obsoleted stuff.
   * [4564579] builder.py: BUILT event: Complete 'extra' part.
   * [9a35454] home.html: events display: Show depending on type.
   * [8cb944a] home.html: Remove bad "Go to" wording.
   * [49c61f5] mini_buildd_tags.py (mbd_cget): Now obsolete.
   * [374610e] events.py (Events.logchanges): Can't use cget() here (needs
     to work for dicts also).
   * [d536eb7] devel (mbd_supertestall): Test for all vendors.
   * [7c5c6e5] devel (mbd_supertestall): Make non-interactive.
   * [3ea53e4] home.html: BUILT event: Show sbuild result.
   * [ba9a45a] Revert "api.py (AutoSetup): Update for new MultiSelect."
   * [726e450] Revert "api.py (KeyringPackages): Update for new
     MultiSelect."
   * [ca1183e] Revert "api.py (TestPackages): Update for new MultiSelect."
   * [a5aff4e] Revert "api.py (GetSourcesList): Update for new
     MultiSelect."
   * [80c4b6c] Revert "api.py (Find): Update for new MultiSelect."
   * [75c7c3f] Revert "api.py (Port): Update for new MultiSelect."
   * [5cb7bff] Revert "api.py (PortExt): Update for new MultiSelect."
   * [a379809] Revert "devel: Update to latest API changes."
   * [b4fe608] api.py: MultiSelect: Fix several default values.
   * [4a17521] home.html: Renice extra raw view.
   * [d5c6d34] home.html: Extra view: Use 'details summary'.
   * [9937387] home.html: Add summary for MIGRATED, REMOVED, FAILED,
     REJECTED.
   * [4803926] mini-buildd.css: minor tab/spaces fix.
   * [d7994e4] mini-buildd.css: Add general error class.
   * [49c6b53] Events: extra.info -> extra.error: This is only used for
     (human readable) *error* strings.
   * [1dae21b] mini_buildd_tags.py (mbd_jsonpp): Add filter to json pretty-
     print objects.
   * [557042a] home.html: Events view: Make "extra" content full jso
     pretty-printed event.
   * [e45ec38] view.py, log.html: 'Brute-force fix' package logs (but that
     code should not stand ;).
   * [1972965] packager.py (Package.extra()): Simplify.
   * [c9e720b] packager.py (Package): Replace 'is_installed',
     'was_rejected', 'has_failed' by (event) status.
   * [9afd168] packager.py (Package.extra): No need for 'installed' arg any
     more.
   * [228eaff] packager.py (Package.extra): Add error class var --
     obsoletes redundant log event call.
   * [a2353db] packager.py (Packager.run_event): Get rid of superflous
     context exception handler && go with one run_event() method again.
   * [b018bca] changes.py (load): Rm obsolete load() and simplify file
     match functions.
   * [2c1047b] changes.py: Move build key here (as "bkey" property).
   * [b7c76ac] packager.py (run_event): Mv package internal code back to
     add_buildresult.
   * [358ce74] devel (build-port-migrate): Add failing port to check error
     handling (manually)
   * [e9d7b07] packager.py: Add 'extra' class var; drop "port_report",
     doing extra port reporting via "auto_ports".
   * [3f0b637] packager.py (Package.auto_ports): Use tuple <success,
     result|error> for extra info.
   * [28b6d08] packager.py: Mv error to self.extra.
   * [b00aa08] packager.py (Package): Get rid of obsolete _extra() method.
   * [140453d] packager.py (Package.auto_ports): Minor doc wording update.
   * [814e827] devel (mbd_supertestall): Rather do non-SSL profile last.
Checksums-Sha1:
 907e2d2a808cfce36797c9cf0b27d7e7d6ff9cf6 2259 mini-buildd_1.9.0.dsc
 c1aba946fe5f6f4b9526e6fa5bf4fadfa6604e0c 546116 mini-buildd_1.9.0.tar.xz
 4a219462a70f4211a4d2f42dfe8444816c06885f 10132 mini-buildd_1.9.0_source.buildinfo
Checksums-Sha256:
 3fdb71b484ac5b74e3e41539f6890cdc1ff9205b4ddd61b49eff24477ac102d7 2259 mini-buildd_1.9.0.dsc
 599fa437411793fa02fa6c9617663036e869e6ceee2582910c75291664111258 546116 mini-buildd_1.9.0.tar.xz
 5224fa0f6030717ef02678c0a97510fcd9dfa793c6096e4a47aef32ca9decf37 10132 mini-buildd_1.9.0_source.buildinfo
Files:
 6f8551ab5c87bc11bf1d822d08ffc375 2259 devel optional mini-buildd_1.9.0.dsc
 e560f575ec8f0f156df41b36f424511f 546116 devel optional mini-buildd_1.9.0.tar.xz
 21651f0d04cd16e3b82c2c3701dd475b 10132 devel optional mini-buildd_1.9.0_source.buildinfo

-----BEGIN PGP SIGNATURE-----

iQJGBAEBCgAwFiEEVOttCJ+jfBmmRZCzBm3oAX4rYdkFAl9LxXISHGFic3VyZEBk
ZWJpYW4ub3JnAAoJEAZt6AF+K2HZRZ4QAKIlKdsmOKLH1ylFCMJl9oqVrzUdmt7S
H5XdGYlVG4vMa37sgWM71yT2F0+4cr6+8LjdGqCKSyrdj5Dd69XXxB5J6BO//3by
zCXCoSrN+2UVSmiBWQUl/FOEr3KaygQlYF08VIqbTpCdhpZfbtUgsf9oA53hiuBH
GYSU2a6qNOouf9Fpza7Mzspt128cRtBcDS6LgKw0ccynp9fyloAk/WcGqgtpFuxr
CxGzdmjlee019Iavf6tltq7sN82jp80NpZNUnjdUJvtnbts/tIuG3TilNvD2uYFQ
Yz8n+eMGbeF6gZyE9A8Lj7Pb3e4YnEu46pENzw7NDjqEinSGHDQjyglD5n51t75P
jHkFAtlEZ44Oje9epgusTN1lELQn9q6Q+z/zU9Nnd7rAIV/cDS4A5cEjjD9mRUDR
QOtP9arcWH76IUVFcVTWDaBTOYMZl2dtBOskMkUUDU9n0SKXGcn55OPYu6e5Bwt2
IuJu/s+k/tGO7LrTJIKB36ALmEMjZbwIL1byRlpJItnaCjctKVt8NDf+2V8CSIle
EAmBPJfiSklKLTX143+YwAvWtJJ6JRA45lNqov6EyPdvM8K++boilt5XZEkvpuNO
Oie6Sp++X5xU+jFNaQnWXQn8Fhcqt2APcSdkU0M91bFL8zmYYzjHq9F+R+DIx2I2
7uUbXcP/hltk
=/RaB
-----END PGP SIGNATURE-----