vcswatch reports that
this package seems to have new commits in its VCS but has
not yet updated debian/changelog. You should consider updating
the Debian changelog and uploading this new version into the archive.
Here are the relevant commit logs:
commit 7dfeab4c3f9ad476512698c3b3e712ba64f4be6c
Merge: 0fa3cbe60 2db93fa32
Author: Enrico Zini <enrico@debian.org>
Date: Thu Oct 16 18:11:13 2025 +0000
Added debusine collection list (MR !2317)
The backend was there, let's use it.
This is also an experiment to add a bit more of porcelain: when the list goes to a terminal, it's formatted with rich and it has clickable links pointing to the web UI
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2317
commit 2db93fa3257aa4d690cef296149efe497bb911a4
Author: Enrico Zini <enrico@enricozini.org>
Date: Thu Oct 16 17:57:13 2025 +0200
Announce the change
commit e7e04fcc585f197b56e53d07226e7d1ae0383a01
Author: Enrico Zini <enrico@enricozini.org>
Date: Thu Oct 16 16:34:10 2025 +0200
Added debusine collection list
commit 0fa3cbe60646fded5f9c8e6835de781c66cfd8c2
Merge: d6e32f4fa 0fabf02a2
Author: Colin Watson <cjwatson@debian.org>
Date: Thu Oct 16 16:44:52 2025 +0000
debian_pipeline: Implement enable_confirmation parameter (MR !2315)
I decided to change the design slightly to have the
`make_signed_source`, `package_upload`, and `package_publish`
sub-workflows depend on the `Confirm` task, rather than having their
first work requests depend on the `Confirm` task. Digging around inside
the populated sub-workflows was complicated and error-prone, and the
downside (that those sub-workflows won't be populated until after
confirmation) is minor.
Fixes: #573
Closes #573
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2315
commit d6e32f4fa4b1ce089e66dec63aff1ab466cb6446
Merge: 719c06661 5dc1fd0b4
Author: Enrico Zini <enrico@debian.org>
Date: Thu Oct 16 16:35:08 2025 +0000
Implemented debusine collection show and debusine collection manage (#788) (MR !2308)
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2308
commit 719c066615b9b62b899436b1e9b2d133c883223d
Merge: cfb93c936 9ad547dd4
Author: Colin Watson <cjwatson@debian.org>
Date: Thu Oct 16 15:46:15 2025 +0000
Allow "_" to pass validation as a collection name (MR !2316)
Singleton collections failed validation with "'_' is not a valid
collection name". This mostly didn't matter because we never validated
them anyway, but it meant that `debusine-admin create_collection _
debian:archive` couldn't be used to create a singleton collection after
running into #1114, and it might have other effects.
I think it makes more sense to allow this; there's already a database
constraint to ensure that it can only be used with singleton collection
categories.
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2316
commit 0fabf02a22d299e34b9cda42594a04ac82f4bdc5
Author: Colin Watson <cjwatson@debian.org>
Date: Thu Oct 16 13:55:23 2025 +0100
debian_pipeline implements publish_target/publish_replace now
commit 7b795bc1b97729910bbdc0c933d952d0b21de342
Author: Colin Watson <cjwatson@debian.org>
Date: Thu Oct 16 13:55:10 2025 +0100
debian_pipeline: Implement enable_confirmation parameter
I decided to change the design slightly to have the
`make_signed_source`, `package_upload`, and `package_publish`
sub-workflows depend on the `Confirm` task, rather than having their
first work requests depend on the `Confirm` task. Digging around inside
the populated sub-workflows was complicated and error-prone, and the
downside (that those sub-workflows won't be populated until after
confirmation) is minor.
Fixes: #573
commit 9ad547dd4d761cc3d11337af08787d472553f59b
Author: Colin Watson <cjwatson@debian.org>
Date: Thu Oct 16 15:05:35 2025 +0100
Allow "_" to pass validation as a collection name
Singleton collections failed validation with "'_' is not a valid
collection name". This mostly didn't matter because we never validated
them anyway, but it meant that `debusine-admin create_collection _
debian:archive` couldn't be used to create a singleton collection after
running into #1114, and it might have other effects.
I think it makes more sense to allow this; there's already a database
constraint to ensure that it can only be used with singleton collection
categories.
commit 5dc1fd0b43cba21b90e6c1b8cad7f6171cfab011
Author: Enrico Zini <enrico@enricozini.org>
Date: Thu Oct 16 14:36:34 2025 +0200
Round up when reducing timedelta to days
commit 20ab1498c894a5471960f2d8378f582711a70b1f
Author: Enrico Zini <enrico@enricozini.org>
Date: Thu Oct 16 14:30:25 2025 +0200
Implemented debusine collection manage --rename
commit 257abbd394eec98079f41130f08124de575a81f5
Author: Enrico Zini <enrico@enricozini.org>
Date: Tue Oct 14 12:35:23 2025 +0200
Implement partial collection CRUD-ding on the command line
commit cfb93c9362af2919e405e75f0b28bcd841f00b83
Merge: a3f3d30a1 153e39c91
Author: Colin Watson <cjwatson@debian.org>
Date: Thu Oct 16 12:44:29 2025 +0000
Add API and web UI for Confirm task (MR !2311)
The UI is basic, but it works well enough.
Part of #573.
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2311
commit a3f3d30a17ea1c152d1fc742e3460b2fd565e7e1
Merge: 8162198e2 8ce9513df
Author: Enrico Zini <enrico@debian.org>
Date: Thu Oct 16 12:39:39 2025 +0000
Renamed 'debusine workflow create' to 'debusine workflow start' (#871) (MR !2314)
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2314
commit 153e39c914130880c8ccce700a53ed99109c5693
Author: Colin Watson <cjwatson@debian.org>
Date: Sun Oct 12 14:30:27 2025 +0100
Show confirmation details in web UI
commit 0b22838eab39239221de44e43c10d380e6d1b13b
Author: Colin Watson <cjwatson@debian.org>
Date: Fri Oct 10 14:44:57 2025 +0100
Add web form to confirm/deny Confirm tasks
commit 8ce9513dfc65917830978c925bb3d12a434c68e3
Author: Enrico Zini <enrico@enricozini.org>
Date: Thu Oct 16 11:58:50 2025 +0200
Renamed 'debusine workflow create' to 'debusine workflow start'
commit 8162198e2a1f4b56d8b66923415f508bc32759da
Merge: 9e35244f8 25a10b39c
Author: Enrico Zini <enrico@debian.org>
Date: Thu Oct 16 08:23:33 2025 +0000
Instantiate Places from UI helpers, and use them for page titles (#444) (MR !2290)
This replaces `get_title` with `get_place`, and uses UI helpers, as mentioned in !2289, to create `Place` instances.
I added multiple rendering methods to Place, so it can render the `<title>` tag, the `<h1>` tag, and the links in the navbar from the same information.
An immediate bonus is that we get icons in page titles.
Once the transition to `Place` is done, I plan to introduce lists of places and replace page titles with breadcrumbs.
This is an early MR to validate the design before going on and refactoring all views.
Visible at https://playground-2290.debusine.dev/debusine/Playground/
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2290
commit 25a10b39c007011de6bf54aef7b0848254357b7d
Author: Enrico Zini <enrico@enricozini.org>
Date: Thu Oct 16 08:35:59 2025 +0200
Simplify Place icon handling
commit a714282b957e167cfdfe1c2d98e67be7cc57cb53
Author: Enrico Zini <enrico@enricozini.org>
Date: Thu Oct 2 16:53:58 2025 +0200
Use Place and get_place instead of str and get_title to generate page headers
commit 9e35244f8b91c1da65c36432f55bd14968165a31
Merge: 54513216a 90fadc392
Author: Carles Pina i Estany <carles@pina.cat>
Date: Thu Oct 16 04:33:19 2025 +0000
Rename classes: add suffix ArtifactPlugin or WorkRequestPlugin (MR !2310)
Related #810
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2310
commit 54513216a35004198368ff0d35664ceb5fdf6e89
Merge: 8244079c0 a2ff50751
Author: Enrico Zini <enrico@debian.org>
Date: Wed Oct 15 12:47:15 2025 +0000
Make WorkRequest.mark_* methods raise on error (MR !2278)
This should have everything covered, except for !2282 and !2283
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2278
commit a2ff507519249e0719b4a5f4b48460632ea730d1
Author: Enrico Zini <enrico@enricozini.org>
Date: Tue Oct 14 14:45:24 2025 +0200
Test coverage
commit de7aa8f31f1a093fdd8ec0990c51ea2bdd0773f5
Author: Enrico Zini <enrico@enricozini.org>
Date: Tue Oct 14 11:31:21 2025 +0200
Fix the rest of the test fallout
commit 487959b5a7eff90128be8231ad2bd4b31d48c027
Author: Enrico Zini <enrico@enricozini.org>
Date: Tue Oct 14 10:56:38 2025 +0200
Stop checking status change methods for success
commit 4e9dc8fa30d9fc1574411c6faf05a7665101927d
Author: Enrico Zini <enrico@enricozini.org>
Date: Tue Oct 14 11:05:49 2025 +0200
Update playground to new status change behaviour
commit 7b3c28eb9b673e5f3545faefac6288fed94b5913
Author: Enrico Zini <enrico@enricozini.org>
Date: Tue Oct 14 11:03:00 2025 +0200
Raise StatusChangeError instead of returning False when a state change fails
commit 31c878852a4c09f357cee09d2236be3b493e2781
Author: Colin Watson <cjwatson@debian.org>
Date: Fri Oct 10 14:14:00 2025 +0100
Add API to confirm/deny Confirm tasks
commit 8244079c06c4a113b75750b2dbd496eecf55402e
Merge: 0cd78cb2c c4b8618aa
Author: Enrico Zini <enrico@debian.org>
Date: Wed Oct 15 09:08:58 2025 +0000
Expose two tests that fail to fail (MR !2282)
This MR has two commits: the first is a minimal reproducer of a test that failed to fail. The second is an imperfect attempt at making it successfully fail: I can prove that the right callback is scheduled, but I cannot get it to run.
Unfortunately I cannot seem to get the `update_workflows` callback to run, so this is a request for help. Other tests use `captureOnCommitCallbacks` and see its side effects, so I'm confused
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2282
commit 0cd78cb2cc6a6321dd5ea208a84e7a51ea5b0f57
Merge: 5e6bdd74a 81adae9b5
Author: Colin Watson <cjwatson@debian.org>
Date: Wed Oct 15 09:06:35 2025 +0000
Add Confirm task (MR !2305)
So far these can only be auto-confirmed (in the `auto_confirm_if_no_failure=True` case), but the next MR in this series will add API and web UI to allow interacting with them manually.
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2305
commit 5e6bdd74a455d684a8be556fcb77e9d23e649c40
Merge: 8a176b1d4 332145650
Author: Enrico Zini <enrico@debian.org>
Date: Wed Oct 15 06:27:09 2025 +0000
Fixed documentation (MR !2307)
Fixup for the towncrier snippet in !2287
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2307
commit 90fadc3926367ed166570c1244212064144a944b
Author: Carles Pina i Estany <carles@pina.cat>
Date: Tue Oct 14 16:18:47 2025 +0200
Rename classes: add suffix ArtifactPlugin or WorkRequestPlugin
Related #810
commit c4b8618aad16c13254b105c9adba9550d2b37bad
Author: Enrico Zini <enrico@enricozini.org>
Date: Mon Sep 29 21:07:31 2025 +0200
Fix the test
commit 641349844f0bab84f4b95f0409f58619617f2830
Author: Enrico Zini <enrico@enricozini.org>
Date: Mon Sep 29 21:04:03 2025 +0200
Uncover that the test was not working as expected
commit 3321456502104516f8813d2dc1d50f32e3394dc6
Author: Enrico Zini <enrico@enricozini.org>
Date: Tue Oct 14 10:05:46 2025 +0200
Fixed documentation
commit 8a176b1d4129d4609caa1d7c924578e5b75ba8e3
Merge: 8e5122dfd 8bcfc1347
Author: Stefano Rivera <stefanor@debian.org>
Date: Tue Oct 14 01:10:42 2025 +0000
unshare executor: Set PATH even when env=None was explicitly passed (MR !2306)
Because RunCommandTask.run_cmd() defaults to env=None that will make its way to the unshare executor.
No NEWS as we already have an item for this bug. We just didn't actually fix it.
Fixes: #1084
Closes #1084
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2306
commit 8bcfc13477e953d94e7ec300c1173e0780e29868
Author: Stefano Rivera <stefano@freexian.com>
Date: Mon Oct 13 19:04:28 2025 +0200
unshare executor: Set PATH even when env=None was explicitly passed
Because RunCommandTask.run_cmd() defaults to env=None that will make its
way to the unshare executor.
Fixes: #1084
commit 8e5122dfda009aa306181629f8490710361cd803
Merge: 99854a2d1 690b972ea
Author: Enrico Zini <enrico@debian.org>
Date: Mon Oct 13 12:58:58 2025 +0000
Add a class-based way to define subcommands in submodules (#1064, #788) (MR !2287)
Since it was decided to start using a 'object verb' syntax for the debusine client, before adding a new command for #788 I'm trying to set up that possibility.
This MR is filed early for design review: if you like the way it's going, I'll port the rest of the command line argument implementations and fix their tests.
There is code duplication between `debusine.client.cli.Cli` and `debusine.client.commands.base.DebusineCommand`, and the idea is that it all gets removed from `Cli` once all commands are ported.
This MR introduces:
* The ability to define groups of commands in their own separate modules and have them automatically be picked up
* The ability to group commands in sub-subparsers
* The ability to have the same command implementation show in multiple ways (in particular, as a "object verb" and as the legacy compatibility version)
* The ability for commands to run with different set of prerequisites (compare work-request ones with setup, which doesn't need a debusine client)
* Significant more DRY-ness
argcomplete seems to understand sub-subparsers, according to the following command, but I don't have argcomplete set up in my system to test it fully:
```sh
_ARGCOMPLETE=1 _ARGCOMPLETE_STDOUT_FILENAME=/dev/stdout COMP_LINE="debusine work-request " COMP_POINT=22 python3 -m debusine.client
```
Let me know if I can go ahead down this path
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2287
commit 690b972ea42ad15730753bf20babe63a8b4dc2ef
Author: Enrico Zini <enrico@enricozini.org>
Date: Mon Oct 13 14:04:06 2025 +0200
Announce the change
commit 4b36b920310aec72def4a6e04022a2bc19e0e5cd
Author: Enrico Zini <enrico@enricozini.org>
Date: Mon Oct 13 13:11:54 2025 +0200
Refactor Command classes to merge the trampoline methods carried over from the earlier Cli
commit 4234b6acad1e531630832a9f2d7d4404a7664b5d
Author: Enrico Zini <enrico@enricozini.org>
Date: Mon Oct 13 13:02:16 2025 +0200
fixup! Add a class-based way to define subcommands in submodules, and port existing code to it
commit d79c06aa1637f9c5a4fa8851e38ed9967388a3f1
Author: Enrico Zini <enrico@enricozini.org>
Date: Mon Oct 13 12:16:22 2025 +0200
Mark legacy options as deprecated, and hide them from the main command line help
commit 2fd16046028063eb76029fea5ba30aa7b59e9e46
Author: Enrico Zini <enrico@enricozini.org>
Date: Wed Oct 1 15:32:20 2025 +0200
Add a class-based way to define subcommands in submodules, and port existing code to it
commit 81adae9b5a6f3a4167a460a499716bbb8f7274dd
Author: Colin Watson <cjwatson@debian.org>
Date: Fri Oct 10 14:11:01 2025 +0100
Auto-confirm Confirm tasks where appropriate
I considered handling this the way that the tip in the design suggested,
but I think it makes more sense for Delay and Confirm tasks to be
auto-completed in the same place.
commit 2e3e379e80e6e1406d26f0044f7850fc0b2104e4
Author: Colin Watson <cjwatson@debian.org>
Date: Fri Oct 10 13:24:18 2025 +0100
Add Confirm task (#573)
commit daffc14bfc221c4882a360c65a063432e9b1fdc3
Author: Colin Watson <cjwatson@debian.org>
Date: Fri Oct 10 13:19:47 2025 +0100
Add can_confirm permission on work requests
commit e758669af5693519f393f6c208d8742b1b492d12
Author: Colin Watson <cjwatson@debian.org>
Date: Fri Oct 10 13:13:51 2025 +0100
Allow setting/merging output data when aborting a work request
commit 8253ef095c99fc23f7eda1ba500ca7ac27a66b4e
Author: Colin Watson <cjwatson@debian.org>
Date: Fri Oct 10 13:09:25 2025 +0100
Add data models for Confirm task and corresponding output data
commit e62e96054486d306f7677bf41d9cecf7eafeb286
Author: Colin Watson <cjwatson@debian.org>
Date: Fri Oct 10 13:03:39 2025 +0100
Improve some naming in the Confirm task's design
`do_not_confirm_*` is too passive: it sounds as though it corresponds to
no action at all being taken. `deny_*` is more explicit.
commit 99854a2d1f25f2d34a0d7261518a05354d32ad26
Merge: deaadef56 edc9cc724
Author: Colin Watson <cjwatson@debian.org>
Date: Mon Oct 13 09:03:47 2025 +0000
Add WorkRequest.completed_by (MR !2304)
The design for the `Confirm` task (#573) says that the web UI should
display the user who took the decision to confirm or deny such a work
request. To do this, we need to track that information.
`WorkRequest.aborted_by` already exists, but there was no equivalent for
completed work requests. Add `WorkRequest.completed_by` for the cases
where marking a work request as completed is manual rather than
automatic.
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2304
commit edc9cc72481467f2d4744672ff52f3e6f8e3e5fc
Author: Colin Watson <cjwatson@debian.org>
Date: Fri Oct 10 12:57:34 2025 +0100
Add WorkRequest.completed_by
The design for the `Confirm` task (#573) says that the web UI should
display the user who took the decision to confirm or deny such a work
request. To do this, we need to track that information.
`WorkRequest.aborted_by` already exists, but there was no equivalent for
completed work requests. Add `WorkRequest.completed_by` for the cases
where marking a work request as completed is manual rather than
automatic.
commit deaadef562cdaccd72f0a1fc388b952546bc7670
Merge: 31d2bbf3e d8bd850f7
Author: Colin Watson <cjwatson@debian.org>
Date: Sun Oct 12 12:54:22 2025 +0000
Add user_link template tag (MR !2303)
This factors out some common code in a couple of templates.
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2303
commit d8bd850f76a68cdeba58459b5296af520a5e091a
Author: Colin Watson <cjwatson@debian.org>
Date: Fri Oct 10 11:42:29 2025 +0100
Add user_link template tag
This factors out some common code in a couple of templates.
commit 31d2bbf3e3cd8e744c926c630b9d300addd3ec94
Merge: a0be0f7fe 802f4ebb8
Author: Carles Pina i Estany <carles@pina.cat>
Date: Thu Oct 9 11:22:05 2025 +0000
Task labels review (MR !2300)
Docstring improvements, delete non-needed code, re-sort functions
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2300
commit 802f4ebb8e2251b1210e80a3fee8d4f995e5bb10
Author: Carles Pina i Estany <carles@pina.cat>
Date: Thu Oct 9 11:22:05 2025 +0000
Docstring improvements, delete non-needed code, re-sort functions
commit a0be0f7fecf5e01e08efe3ccfc6b7115ec396951
Merge: 17d9d14f8 fe66cde5d
Author: Colin Watson <cjwatson@debian.org>
Date: Thu Oct 9 11:18:09 2025 +0000
Update YubiHSM 2 documentation links (MR !2302)
They seem to have reorganized their documentation slightly again.
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2302
commit 17d9d14f8bcd20e7e65c21c160fee395af037316
Merge: 554e08ca9 540248f72
Author: Colin Watson <cjwatson@debian.org>
Date: Thu Oct 9 10:01:25 2025 +0000
Drop sbuild group usage (from schroot times) (MR !2301)
sbuild 0.91.0 drops the sbuild group which is not needed by the unshare
backend. This drops the related bits in debusine to make the
autopkgtests pass.
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2301
commit fe66cde5d946512f3c9c520dd60dc98d16340649
Author: Colin Watson <cjwatson@debian.org>
Date: Thu Oct 9 10:59:20 2025 +0100
Update YubiHSM 2 documentation links
They seem to have reorganized their documentation slightly again.
commit 540248f72f8acb96054e756b20a9e577cfe87383
Author: Jochen Sprickerhof <jspricke@debian.org>
Date: Thu Oct 9 08:59:39 2025 +0200
Drop sbuild group usage (from schroot times)
sbuild 0.91.0 drops the sbuild group which is not needed by the unshare
backend. This drops the related bits in debusine to make the
autopkgtests pass.
commit 554e08ca92137af21cfc5b9c5bfc7b693b1a77a1
Merge: de54eb225 4ec149099
Author: Colin Watson <cjwatson@debian.org>
Date: Thu Oct 9 05:31:42 2025 +0000
Change qa fail_on default to "never" for now (MR !2299)
We may eventually want this default to be "failure", but that will be
annoying until regression tracking is finished.
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2299
commit de54eb22520d13fb90b0491d1c9c4da595830a69
Merge: cc7c83d6d c83c4183e
Author: Carles Pina i Estany <carles@pina.cat>
Date: Thu Oct 9 05:19:19 2025 +0000
Tasks: delete `get_label()` from sub-classes and use `Task.get_label()` (Closes #687) (MR !2277)
For each subclass of Task in debusine.tasks:
- Delete `get_label()` (often only returned the name of the sub task)
- In each `build_dynamic_data()`: add `parameter_summary` (with the `subject`) so `Task.get_label()` returns `TaskName(parameter_summary)` (provides more information than previous `get_task()`)
- Delete non-relevant `get_label()` tests
Relevant change is in `MergeUploads.build_dynamic_data`: returns either three package names (too long already?) or elided. Subject returns only one package name if all from the same source.
Closes #687
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2277
commit c83c4183e437b1eccd81a9aced8016493c911f08
Author: Carles Pina i Estany <carles@pina.cat>
Date: Thu Oct 9 05:19:19 2025 +0000
Task labels: make them consistent
Delete `get_label()` methods from sub-classes in order to use `Task.get_label()`. Implement/fix `SubTask.build_dynamic_data` to return a useful `parameter_summary`.
commit 4ec1490990400a8a7a101ab87616e426638048ed
Author: Colin Watson <cjwatson@debian.org>
Date: Wed Oct 8 16:42:14 2025 +0100
Change qa fail_on default to "never" for now
We may eventually want this default to be "failure", but that will be
annoying until regression tracking is finished.
commit cc7c83d6dabcd5ea9af666704c8477192cb5f313
Merge: 3ce117fd5 551695d5e
Author: Stefano Rivera <stefanor@debian.org>
Date: Wed Oct 8 09:37:21 2025 +0000
Don't do critical work inside an assertion (MR !2297)
If `PYTHONOPTIMIZE` is exported or Python is run with `-O`, `assert`
statements are skipped. Don't do critical work in an assert statement.
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2297
commit 3ce117fd5a63b937882751af5e5b989ff866b6ca
Merge: 90c0eb2f8 00b894a3d
Author: Stefano Rivera <stefanor@debian.org>
Date: Wed Oct 8 09:33:07 2025 +0000
sbuild --chroot-mode=unshare requires iproute2 (MR !2296)
Recommend it for `debusine-worker` and Depend on it for the `integration-tests-workflow-debian-pipeline` autopkgtest.
Discovered while investigating #1092
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2296
commit 90c0eb2f87d03735f358529782d7d016fb58273d
Merge: 10b570703 de0ab4e32
Author: Colin Watson <cjwatson@debian.org>
Date: Wed Oct 8 09:16:16 2025 +0000
Add HTTP request/response metrics using django-prometheus (MR !2293)
Part of #1098.
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2293
commit 551695d5e347492e403e885e75f17cff504bc2ba
Author: Stefano Rivera <stefano@freexian.com>
Date: Tue Oct 7 21:41:46 2025 +0200
Don't do critical work inside an assertion
If `PYTHONOPTIMIZE` is exported or Python is run with `-O`, `assert`
statements are skipped. Don't do critical work in an assert statement.
commit 00b894a3d3e00b82ca7a8e05afe15854163cad74
Author: Stefano Rivera <stefano@freexian.com>
Date: Tue Oct 7 13:09:17 2025 +0200
sbuild --chroot-mode=unshare requires iproute2
Recommend it for debusine-worker and Depend on it for the
integration-tests-workflow-debian-pipeline autopkgtest.
Discovered while investigating #1092
commit 10b570703c3cb96e100b560b99b8c455c3b8a164
Merge: a625276eb 9547fde56
Author: Stefano Rivera <stefanor@debian.org>
Date: Tue Oct 7 09:43:09 2025 +0000
Open Metrics tests: Really freeze time (MR !2295)
Django's (undocumented) `freeze_time` test utility only mocks `time.time` not `timezone.now`, which is what everything uses in
practice.
Fixes a failure observed in #1092
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2295
commit a625276eb1f524cc29b53a67933b9466102bc21a
Merge: a99f922d6 25722c108
Author: Stefano Rivera <stefanor@debian.org>
Date: Mon Oct 6 22:14:28 2025 +0000
Create a FIFO if we win the race (MR !2294)
Follow on to !2285
@enrico's comments on !2285 made me realize that we were still effectively busy-looping, as select() will always tell us that our fd is readable (for the empty EOF read).
To avoid blocking, only write a single line to this file, and read the line from the test. In practice the kernel's buffer should be big enough
to hold a little unrelated output, but let's be systematic.
Related to #1065
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2294
commit 25722c1086abb6989184ac6af3a4b021b4d42a37
Author: Stefano Rivera <stefanor@debian.org>
Date: Mon Oct 6 19:39:33 2025 +0000
Fix typo
commit 9547fde560cd44790c88fbde467e98649d518062
Author: Stefano Rivera <stefano@freexian.com>
Date: Mon Oct 6 19:24:09 2025 +0200
Open Metrics tests: Really freeze time
Django's (undocumented) `freeze_time` test utility only mocks
`time.time` not `timezone.now`, which is what everything uses in
practice.
Fixes a failure observed in #1092
commit 1b12a2e05a7fc53c38e19481a270a9adb70cbd76
Author: Stefano Rivera <stefano@freexian.com>
Date: Mon Oct 6 13:58:03 2025 +0200
Avoid busy-loops in shell scripts
This requires GNU Coreutils sleep that supports floating-point
timescales.
commit 5f11cee68bfcd764f82878959b45cf12d2c50e9a
Author: Stefano Rivera <stefano@freexian.com>
Date: Mon Oct 6 13:08:00 2025 +0200
Create a FIFO if we win the race
Otherwise we're effectively busy-looping, as select() will always tell
us that our fd is readable (for the empty EOF read).
To avoid blocking, only write a single line to this file, and read the
line from the test. In practice the kernel's buffer should be big enough
to hold a little unrelated output, but let's be systematic.
commit a99f922d69d2af05c15ddb8b83695ee60f00f3e7
Merge: e4ed8933f 065c0f0bf
Author: Enrico Zini <enrico@debian.org>
Date: Mon Oct 6 12:27:26 2025 +0000
Check mark_running in orchestrate_workflow (MR !2283)
`orchestrate_workflow` was silently ignoring `mark_running` errors.
This MR adds an assertion and fixes the small test fallout accordingly. I defer to !2278 raising an appropriate exception and catching it in the tests
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2283
commit e4ed8933fbf7190b69b27867444c867ac4550660
Merge: 1d16e959e 7f522e1fd
Author: Enrico Zini <enrico@debian.org>
Date: Mon Oct 6 11:51:50 2025 +0000
Make UI helpers more easily accessible (MR !2289)
This is an attempt to make UI helpers easier to use, in view of using them to generate `Place` instances (see `docs/reference/devel-blueprints/page-title-refactoring.rst`) and why not eventually also ui shortcuts, sidebar items and so on.
This would have the advantage of not having to have a module full of factory methods that needs to import basically all of Debusine's DB model types, and moving the factory methods in model-specific modules (the UI helper ones), with the additional possibility of caching.
The idea is that a collection view uses the UI helper to get the `Place` instance for the parent `Workspace`, and then that remains cached in the UI helper should something else need it. Neat!
This MR has two commits:
1. Rename `*UIHelper` to `*UI`: once I started using UI helpers, "Helper" felt like noise
2. Add a `ui(request)` method to *models* to instantiate the UI helper for that instance and request
Now, point 2 is controversial, as passing a request to a Model method feels ick to me. Looking at things in detail, what the model is doing is only picking the UI helper class and delegating everything else to it (we don't have `type_traits` like C++ where we could configure helper classes corresponding to module classes in a way that typing gets it, and here I miss it), and one could argue it's a similar dependency ick as the `get_absolute_url` methods.
In other words, I could swing either way, and if you end up not seeing a big problem with it, I don't want to be the obstacle on my own path
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2289
commit de0ab4e3212cb28d35d498766066eaa5ccb95d9d
Author: Colin Watson <cjwatson@debian.org>
Date: Mon Oct 6 12:16:36 2025 +0100
Add HTTP request/response metrics using django-prometheus
Part of #1098.
commit 065c0f0bfa00a5eb72a5763548b9be7d854259a5
Author: Enrico Zini <enrico@enricozini.org>
Date: Mon Sep 29 21:58:42 2025 +0200
Check mark_running in orchestrate
commit 7f522e1fd88979f6cd37a23726093c305964c6dc
Author: Enrico Zini <enrico@enricozini.org>
Date: Thu Oct 2 16:53:21 2025 +0200
Instantiate UI helpers from model instances
commit 9849fe78cd878609e8adb9918a44572111e5824b
Author: Enrico Zini <enrico@enricozini.org>
Date: Thu Oct 2 16:32:35 2025 +0200
Rename *UIHelper classes to *UI
commit 0a12790d68d02b93fc94a3ebcab87f59ca93c43f
Author: Stefano Rivera <stefano@freexian.com>
Date: Mon Oct 6 12:41:26 2025 +0200
Clearer explanantion in docstring
commit 1d16e959ed28b00bcc2ca599c1c9f1556e1955bd
Merge: 43c023a16 221ca6970
Author: Colin Watson <cjwatson@debian.org>
Date: Mon Oct 6 08:51:39 2025 +0000
qa: Implement fail_on parameter (MR !2291)
Closes #909
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2291
commit 43c023a16654fed029c44e9a3833bc40bff21c55
Merge: 342a92ed3 a3b3163fd
Author: Enrico Zini <enrico@debian.org>
Date: Mon Oct 6 07:18:49 2025 +0000
Paginate work request input and output artifact tables (fixes: #382) (MR !2292)
Visible at https://playground-2292.debusine.dev/debusine/Playground/work-request/2/#work_request
Closes #382
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2292
commit a3b3163fdd7a9ab18996d31dd7673b5215e7be8e
Author: Enrico Zini <enrico@enricozini.org>
Date: Sun Oct 5 15:46:16 2025 +0200
Allow to specify a fragment to use when generating table links
commit 342a92ed3f8d2545a3e3ba8eb293a726ffe30ae5
Merge: 2630d38fa 98ff9c18e
Author: Enrico Zini <enrico@debian.org>
Date: Sun Oct 5 15:11:58 2025 +0000
Moved <h1> elements to base template (#444) (MR !2288)
This also adds a uniform spacing under the `<h1>` elements for all pages.
This is the first step of `docs/reference/devel-blueprints/page-title-refactoring.rst` for #444
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2288
commit 98ff9c18e76574250a93c43fecaf1bb4b86d2a8c
Author: Enrico Zini <enrico@enricozini.org>
Date: Thu Oct 2 14:33:42 2025 +0200
Moved <h1> elements to base template, and added some spacing under them
commit f9d97e29340b0a958d39846886769b6d322f773c
Author: Enrico Zini <enrico@enricozini.org>
Date: Sun Oct 5 15:23:30 2025 +0200
Show available ordering options when ordering is misconfigured
commit 5f893c989010e96f2f9afc4cc62456ffda042cf7
Author: Enrico Zini <enrico@enricozini.org>
Date: Fri Oct 3 16:19:41 2025 +0200
Use a common method to generate internal table links
commit cefabbe45bd8b14a8ffa380c5924c5d8de4d3366
Author: Enrico Zini <enrico@enricozini.org>
Date: Fri Oct 3 15:49:34 2025 +0200
Use Table for the artifact table, to get pagination
commit 221ca6970d0953015eca52dda2b67f84761dfc91
Author: Colin Watson <cjwatson@debian.org>
Date: Fri Oct 3 16:16:26 2025 +0100
qa: Implement fail_on parameter
Fixes: #909
commit 2630d38fae1e8febe3971805e856fcbbb87ea2d8
Merge: 86516a7a4 e9d7c0da5
Author: Enrico Zini <enrico@debian.org>
Date: Wed Oct 1 14:34:32 2025 +0000
Ensure that retried work requests are reconfigured. Fixes: #1055 (MR !2286)
Closes #1055
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2286
commit e9d7c0da507afe0192d959c7cade0d812560f16f
Author: Enrico Zini <enrico@enricozini.org>
Date: Wed Oct 1 14:25:19 2025 +0200
Ensure that retried work requests are reconfigured. Fixes: #1055
commit 86516a7a4e222a0fa5b3363c510c9023d2997c82
Merge: 64d05712b b9cf16c98
Author: Stefano Rivera <stefanor@debian.org>
Date: Wed Oct 1 11:27:01 2025 +0000
Replace the signal test protocol with a file-based one (MR !2285)
For compatibility with pytest-xdist, replace the SIGUSR1 signal-based
readiness protocol with a write to PID file. Signals were convenient,
because we could wait for them to be delivered, efficiently.
Under pytest-xdist there is a separate thread that we have no control
over, that could win a race to receive our signal, crashing the xdist
worker.
Waiting on file contents is equally performant (we can use select() to
wait for the file to be written to) and much more thread-safe.
Fixes: #1065
Closes #1065
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2285
commit 49f34a03bc3f966eb15d3d30bf6744037b7ddad3
Author: Colin Watson <cjwatson@debian.org>
Date: Wed Oct 1 11:31:27 2025 +0100
Use work_request_ensure_child_internal more systematically
commit b9cf16c989d64075368062b32e97ae8d50fefceb
Author: Stefano Rivera <stefano@freexian.com>
Date: Wed Oct 1 12:00:41 2025 +0200
Replace the signal test protocol with a file-based one
For compatibility with pytest-xdist, replace the SIGUSR1 signal-based
readiness protocol with a write to PID file. Signals were convenient,
because we could wait for them to be delivered, efficiently.
Under pytest-xdist there is a separate thread that we have no control
over, that could win a race to receive our signal, crashing the xdist
worker.
Waiting on file contents is equally performant (we can use select() to
wait for the file to be written to) and much more thread-safe.
Fixes: #1065
commit 165a4002420d8372a6a9e2949a6f021e82be8ce3
Author: Stefano Rivera <stefano@freexian.com>
Date: Wed Oct 1 10:14:47 2025 +0200
test_task: Add hard 10 second timeouts to the helper shell scripts
commit 64d05712beb9ffb6ae15cb4f932a2f22889e880f
Merge: f85bcffb0 bef67bde7
Author: Enrico Zini <enrico@debian.org>
Date: Tue Sep 30 16:22:10 2025 +0000
Create child workflows in state BLOCKED by default (#1094) (MR !2275)
This MR is probably best reviewed on a commit by commit basis
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2275
commit bef67bde7b45dac80c045a86bf5d94e840d8271b
Author: Enrico Zini <enrico@enricozini.org>
Date: Tue Sep 30 14:32:00 2025 +0200
Removed status argument from WorkRequest.create_child_workflow
commit e905cc52856a4c460172022a50e832af202bebb5
Author: Enrico Zini <enrico@enricozini.org>
Date: Tue Sep 30 12:38:52 2025 +0200
Stop configuring workflows in mark_running, treat them like the other types of tasks
commit 997ba2d005eb6818ddfa39ccb8004ec74ebc7712
Author: Enrico Zini <enrico@enricozini.org>
Date: Fri Sep 26 22:16:31 2025 +0200
Create child workflows in state BLOCKED by default