-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Format: 1.8 Date: Thu, 25 Feb 2021 20:25:04 +0100 Source: mini-buildd Architecture: source Version: 1.9.16 Distribution: experimental Urgency: medium Maintainer: Stephan Sürken <absurd@debian.org> Changed-By: Stephan Sürken <absurd@debian.org> Changes: mini-buildd (1.9.16) experimental; urgency=medium . "Check please" release: * Replaces old "pkg log" (var/log/<repo>/...) by "events log" (var/events-log/<dist>/...): - Avoid possible conflicts with actual log files in log/. - Consistent file hierarchy && gets rid of extra '_failed/' dir. - Now includes all item's events, so they can be replayed. - Time-based expiration via internal crontab (weekly deletion of items older 1 year). * Sbuild checks: - Add support for piuparts, autopkgtest. - generic 'sbuild check' modes (upload options && config) - generic 'sbuild check' result handling. . Detailed changes: . * [eb75e9a] control (Depends): twisted dep must be in module package (fixes missings deps for *-util). * [d51d0a9] building: Add autopkgtest support (needs to be enabled explicitly in Distribution's extra options). * [e76feff] models/distribution.py: Doc cosmetics (add missing spaces). * [2c36004] Add (experimental) piuparts support. * [4445be1] package-templates/mbd-test-cpp: Add simple autopkgtest. * [cb79bc5] models/distribution.py: Rename LINTIAN_* constants to CHECK_* (for later generalisation for piuparts and autopkgtest). * [72d8165] models/distribution.py: Update piuparts mode to generic constants. * [faae147] autopkgtest: Move to upcoming generic mode. * [a84ffbe] lintian: Update to generic check mode (buildrequest). * [59ec2de] distribution.py: build checks: Add CheckMode class and put other generic code here. * [cae5a86] builder.py (Build._buildlog_to_buildresult): Also parse status for Piuparts && Autopkgtest. * [d53401e] buildresult: Rename Sbuildretval -> Sbuild-Retval. * [86ce0b1] distribution.py: Add PASS, WARN, FAIL status name list constants as parsed from sbuild source (unused for now). * [d6b88af] changes.py: Add to_json(): json converter for Changes. * [bfc6bac] changes.py (Upload.gen_buildrequests): Remove arg "daemon" (now handled as singleton). * [ee960ca] changes.py (Changes.to_json): Only consider simple values (str). * [6ebffd7] packager/builder events: Temporarily add "json" extra with the new changes.to_json() values. * [e6be751] Replace 'mini_buildd.config.primary_http_endpoint' by 'mini_buildd.http_endpoint' (shorter, better name && location). * [1ad2f17] events: Cosmetic: 'timestamp first, not last'. * [4b5021f] events: Use initial proposed new format, and put proposed old down. * [3889691] changes.py: Set "Packager" for buildrequests, "Builder" for buildresults (instance's HTTP url). * [f1086a8] packager.py: Harden corner-case error handling. * [5fb3064] misc.py: Add class "Snake" for all conversions to snake case. * [db90bbb] api.py: Use Snake() class. * [bf9cfb2] misc.py: Add Field class. * [89d5717] *.py: Update code to new Field class. * [155deb1] changes.py (Changes.to_json): Use Field class, and only select custom fields. * [4cd3de3] events.py: logchanges(): "changes" may be python dict, so we cannot use cget(). * [7499a84] builder.py: buildresult: Add live_buildlog. * [34ef54e] builder|changes.py: Rename custom field "Client" -> "Upload- To". * [290fde7] events.py: Cosmetic ordering: timestamp should be after main fields, before extra. * [15bcd97] builder.py: buildresult: Add Runtime-Start+Delta, and put setters before file save. * [fdddcb0] packager.py: Cosmetic: Indent fix. * [8fd6ec2] builder.py: Add Buildlog-Name && remove non-buildresult values from extra (events). * [5584735] packager.py: Remove all non-buildresults values from extra (except 'log' and 'auto_ports'). * [dad299d] events.py: Update to new extra syntax. * [065426c] snippets/events.html: Update for new extra syntax. * [b3a00fc] includes/mbd_api*.html: Fix some wrong usages of "in" (sort of worked anyhow). * [2886c70] events.html: Exclude build and check short status from buildlog link. * [0cbcd6a] templatetags/mini_buildd.py: Add tag to show short sbuild status. * [6b6b030] packager.py (Package.add_buildresult.check_lintian): Use CheckMode.PASS|WARN. * [85ffe4b] packager.py (Package.add_buildresult.check): check_lintian -> check: Make generic. * [8aa8b24] distribution.py: Integrate actual check run into CheckMode class. * [4765d61] distribution.py (CheckMode): Add human-readable option strings. * [6b88f63] changes.py (Upload.Options): _OPTIONS: Update to diff- friendly notation. * [088348e] devel (testsuite-packages): Auto-rebuild DSC when local changes are newer. * [9111cb8] changes.py (Upload.Options): Support new "lintian|piuparts|autopkgtest-mode" options, deprecate "ignore- lintian", "run-lintian". * [b1ab7eb] changes.py (Upload.Options): We should use 'errfail', not 'warnfail' (when handling deprecated options). * [c23b00e] Rename testdata for options parsing (deprecated, 1.0). * [f0c690d] changes.py (Upload.Options): Add doctest for current set of options. * [46d9b51] test-data/changes.magic|options_1.0: Remove unneeded content. * [99f377d] changes.py (Upload.Options): Rename "magic" to "options_0.8". * [138fd33] builder.py (Build._buildlog_to_buildresult): Fix regex to catch status w/ spaces (like autopkgtest's "no tests"). * [fc4f21b] templatetags/mini_buildd.py: Add tag mbd_cssify (needed solely for "no tests" status from autopkgtest). * [d6b13b7] mini_buildd.css: Slightly adapt colors for check status. * [1eac2f4] distribution.py (CheckMode): Make actual status value arg for check only (should not be a value of a CheckMode instance). * [169fbfe] packager.py: Update buildresult check to check piuparts and autopkgtest as well. * [f51cf32] changes.py (Upload.gen_buildrequests): Update to produce correct check modes (lintian, piuparts, autopkgtest). * [d08120e] testsuite: Add new package 'installed-all-checks': w/ autopkgtest configured and all tests enabled as per user upload options. * [7b85c21] changes.py (Upload.Options._parse_ancient): codespell fix (doc only). * [9fa29f5] models/repository.py (Repository.mbd_package_precheck): Fix typo in public error message. * [878920b] doc/user.rst: Update "Upload Options". * [3a0aa4b] distribution.py (CheckMode): Doc && naming updates. * [2d282e1] distribution.py (CheckMode): Add validation checking and public error messages && resp. doctests. * [721af12] builder.py (Build.build): Fix: Explicitly set the "--no- run-<checker>" for piuparts && autopkgtest as well. * [8c77869] distribution.py (CheckMode.__init__): Make default mode DISABLED. * [8996ae5] testsuite-packages/installed-all-checks: For all checks: default is errfail, disabled for i386. * [b8d5752] Rename testsuite package: installed-all-checks -> installed- sbuild-checks. * [c940fa3] changes.py (Upload.check_mode): Update to return actual CheckMode object. * [7199e95] changes.py (Upload.gen_buildrequests): Fix wrong use of "or" using new check_mode() method. * [114132e] packager.py (Package.add_buildresult.check): Fix && simplify using new check_mode() method. * [b6836c9] changes.py (Upload.gen_buildrequests): Fix autpkgtest mode config retrieval. * [664ab55] testsuite-packages/installed-sbuild-checks: Actually also rename file contents. * [86ebc4d] distribution.py: Update CheckMode to use enum.Enum. * [03b9186] distribution.py: Rename CheckMode -> SbuildCheck (Mode is now SbuildCheck.Mode). * [2d71fe1] *.py: Bulk-fix error-prone use of "or". * [1ef961f] devel: (convenience): Try to avoid "connection refused" warnings by appr. pre-sleep. * [00576ca] changes.py: (rpl PkgLog): Add select() tool func && LogPath, Log classes * [62667c6] misc.py (rpl PkgLog): Update old PkgLog to deal with new log dirs w/o subdirs. * [c65c2f7] snippets/events.html: Add "migrate" and "remove" actions for INSTALLED. * [f602950] views.py (rpl PkgLog): LogView: Add new Log() to context. * [048af3f] packager.py (rpl PkgLog): Update to new Log(). * [abac481] log.html: Add data from new Log() in POC (yes, can do what PkgLog can and more) style. * [a074c24] events.py (Event): Add from_changes(), update Events logger functions. * [702497b] events.py (Event.from_json): Rather use "data", not "json" for "json data" (conflict with module). * [1cbb770] events.py (Event.save): Add support to save even (as json file). * [09be165] packager.py: Write event file (as json) to (pkg) log. * [07d5229] Put new (pkg) logs to var/logs (not /var/log). * [dc1b9a2] Rename log_index.html -> logs.html (and update for new Log). * [7d828e3] New Log: Start dir hierarchy with <dist>/ (not repo id), and get rid of '_failed' dir workaround. * [7f11fe9] snippets/events.html: Offer "retry" on FAILED. * [ab2a001] events.py (Event.save): Save to logs as default. * [296710f] events.py (Event.load): Add load() method. * [75cc64b] events.py (Events.log): Always save event to logs. * [68d76be] changes.py (LogPath): Add option to create fullpath. * [88ba6bc] changes.py (Log): Support multiple events. * [b70b37b] packager.py (Package.move_to_pkglog): No longer save event here (done implicitly now). * [835625e] api.py (Retry): Fix for multiple events in log. * [1f4461a] views.py (LogsView.get_context_data): Use actual Event objects, not json. * [0d38b63] includes/mbd_events.html: Make events datatable available via include; update throughout html. * [262ae3f] Rename "logs" -> "events-log". * [11e945c] events.py: "distribution first" (in-line with other interrfaces). * [5911b98] devel (testsuite-packages): Build these w/ artifacts (just so we have the scenario "non source-only upload" as well). * [cc19ebb] changes.py (Upload.Options.usage): Add usage() helper. * [64544be] api.py (UploadOptions): Fixup usage && default (still used deprecated ignore-lintian=True). * [773dcd4] mini_buildd/log.html: Fixup browse link for multi-events. * [2ab27cb] templates/mini_buildd/log[s].html: Fixes, add event table to lof. * [c56385a] events.py (Event.save): BUILT saves need arch in file name. * [d7cf964] events.py (Event.log_path): Add log_path method. * [4df8c6f] includes/mbd_events.html: Add event log link for all events but REJECTED. * [3b1954d] event log: Adapt template files to new naming. * [ff01b12] django_settings.py: Make our custom templatetags and "static" builtin. * [6d36fc0] daemon.py: Add expire cronjob for new events log (delete itmes older one year every week). * [a6f060b] models/repository.py: Remove 'purge_orphaned' code for old- style package log. * [4950b93] misc.py: Actually remove old PkgLog class. Checksums-Sha1: d044373ce60160681fe084c71f7530a2b9b05f74 2269 mini-buildd_1.9.16.dsc c70c89cb456485587599305b3507507adceaceea 475772 mini-buildd_1.9.16.tar.xz 07798b9543ba2840cd19209fb130fa9efb291173 10666 mini-buildd_1.9.16_source.buildinfo Checksums-Sha256: b571b73a0a5b039244134c2dfcc4f6f7b1e63e2c920ee67764ab17349c051dfd 2269 mini-buildd_1.9.16.dsc 0445e97a419a67090d1e594a3b181adfc546b41bb6a4bacb87f1ed5447b437f8 475772 mini-buildd_1.9.16.tar.xz f18f0352191357bdf6ba083692630a918bca1d57154c5c815b8a805e323d84a7 10666 mini-buildd_1.9.16_source.buildinfo Files: d460f94a4c935c95dc121932045fcddd 2269 devel optional mini-buildd_1.9.16.dsc 6939c67132da8ffe958ae1e9e296a8a9 475772 devel optional mini-buildd_1.9.16.tar.xz 520bd6fd30ea339bf04594760d19ddb6 10666 devel optional mini-buildd_1.9.16_source.buildinfo -----BEGIN PGP SIGNATURE----- iQJGBAEBCgAwFiEEVOttCJ+jfBmmRZCzBm3oAX4rYdkFAmA3/gcSHGFic3VyZEBk ZWJpYW4ub3JnAAoJEAZt6AF+K2HZ8rsQAIXhD31aAT/+wILCaqKMR3AE2qvq3/2P Zumn2kWtggV4N6+6vu3KX7cTpIeHow9wGDl+aV2SBurukmkU76tkV633YEf9nX52 jYJIPhNTwoC7mwESEZQ/TOoG+vMXZp/9Yt+zEUe5OMTFoJqI5jalGrkATwe3bi+7 P28zMV9fOX36IitCxRXj3HVlZCuZzmnrrtaN6cbhuMnsP6StZCX+rt/uehzijEs+ cV+GrBoHg1SMV1Z4KuJfP7UMz5JNyEOeWju42L4/0NX7u8UJbleZftRxajba2gOG YkZXNM+jgrriNi07hQLB3FEqhmtW/v3ieNAMWnNYeJxe3kCx4G4rNBU5EO3cLp34 MUyaVnTYndLGBnfnYLIaPZ84DDQCg3PiB+jilZ0plZ5JCiR9yPFKOdJCiOkh5dsa 5tKb+hHkg5PrMu/+dN9vnirtmpPycxs5OE5kImmDuQUcwGISABx4BKHG7fbAH0r4 q8rPuG+ttCft8DmpEpXy6BdmnSFMXRE5/Q5efPf9iMOU7/Mw38ky9xGfP/Cvhx14 4BmmUggdnINX98Nrgs3C+ZDlPZP/vkGaCt83cYh4v1FmD9ir18fwLt338wUcelZK 1IKfpFHaGCJyy0dUzYLrappe/D7IXLMV0pzpedHvaVuVp0Wol8W0Z+HSpi6cppXa yeaHuhBjqe5l =nHsY -----END PGP SIGNATURE-----