Git log: 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 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 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
commit f85bcffb0a157ad46c4a684983b3c19f9340cd33
Merge: e43c5b507 13ab64c98
Author: Colin Watson <cjwatson@debian.org>
Date: Mon Sep 29 17:32:12 2025 +0000
Use BackendType items instead of the corresponding strings (MR !2281)
There were some cases where strings such as "unshare" were used to refer
to the autopkgtest virtualization server or to the command name; I left
those unchanged.
Fixes: #502
Closes #502
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2281
commit e43c5b5073b204c63fe2ab845f7c0914210ddb6b
Merge: 658eda5a5 291e6a934
Author: Colin Watson <cjwatson@debian.org>
Date: Mon Sep 29 15:43:06 2025 +0000
Log warnings for invalid work request state transitions (MR !2280)
Part of #1094.
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2280
commit 658eda5a579f900b208fbe251ad58a742ecb081d
Merge: 5c96ec310 056865888
Author: Colin Watson <cjwatson@debian.org>
Date: Mon Sep 29 15:16:14 2025 +0000
Use self.orchestrate_child in update_suites (MR !2279)
I landed the refactoring in !2234 while I was also working on !2174, and
forgot to apply it to the latter code as well.
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2279
commit 13ab64c9884b75f8f6ff6820943731bd7be3e9fe
Author: Colin Watson <cjwatson@debian.org>
Date: Mon Sep 29 16:12:15 2025 +0100
Use BackendType items instead of the corresponding strings
There were some cases where strings such as "unshare" were used to refer
to the autopkgtest virtualization server or to the command name; I left
those unchanged.
Fixes: #502
commit 5c96ec310a31d7ef30d802f9619278cad085e52f
Merge: ef5ab8830 de29c03fa
Author: Enrico Zini <enrico@debian.org>
Date: Mon Sep 29 14:57:45 2025 +0000
Always create all workflow child tasks (except workflows) in BLOCKED state ( #1094) (MR !2274)
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2274
commit 291e6a9349359c5b74606f955e5fbf7c7aecc068
Author: Colin Watson <cjwatson@debian.org>
Date: Mon Sep 29 15:31:38 2025 +0100
Log warnings for invalid work request state transitions
Part of #1094.
commit 056865888a37a29dadbd7de2c6983dcf1851fbf2
Author: Colin Watson <cjwatson@debian.org>
Date: Mon Sep 29 15:15:37 2025 +0100
Use self.orchestrate_child in update_suites
I landed the refactoring in !2234 while I was also working on !2174, and
forgot to apply it to the latter code as well.
commit de29c03faaf4c5f8553448e8d78187b6b375a559
Author: Enrico Zini <enrico@enricozini.org>
Date: Fri Sep 26 21:16:00 2025 +0200
Always create all workflow child tasks (except workflows) in BLOCKED state
commit ef5ab88309ce8ba99596874518351eec0fb5166d
Merge: 57304976e 72f40e73c
Author: Stefano Rivera <stefanor@debian.org>
Date: Mon Sep 29 10:58:32 2025 +0000
Cleanly shut down the worker (MR !2276)
Fixes: #1082
Closes #1082
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2276
commit 72f40e73ccc0dc5f591823a0654c5ce87251daf5
Author: Stefano Rivera <stefano@freexian.com>
Date: Sun Sep 28 16:33:38 2025 +0200
Cleanly shut down the worker
Fixes: #1082
commit 57304976e8e1de37c2074cf17b96634528355fce
Merge: eeff39848 5e734764a
Author: Colin Watson <cjwatson@debian.org>
Date: Sat Sep 27 19:56:16 2025 +0000
Return bool from workflow callbacks (MR !2272)
The regression-tracking blueprint involves a workflow callback that sets
its result to `FAILURE` in the case of a regression. The easiest way to
do this seems to be to have the callback return False in that case, so
prepare for that.
Part of #909.
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2272
commit eeff39848a68314ddfce0aa0e9852d6fda2db6dd
Merge: de5db11b4 81c463b01
Author: Enrico Zini <enrico@debian.org>
Date: Fri Sep 26 17:11:53 2025 +0000
Apply task configuration as early as possible (#1055) (MR !2260)
This applies to all tasks except for WORKER tasks, which require a worker assign to lookup their task configuration.
I'm creating this MR early to ask for help: there are test failures that I am having a hard time to debug
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2260
commit 81c463b01a67f076c58bbf45c76c4641a5801cbb
Author: Enrico Zini <enrico@enricozini.org>
Date: Fri Sep 26 18:34:13 2025 +0200
Fixes after realigning with devel
commit 1e1b5a7a3db8afbb7ec69ac03610aa7b44272c41
Author: Enrico Zini <enrico@enricozini.org>
Date: Fri Sep 26 12:45:44 2025 +0200
Fix pytest serialization issues with WorkRequest statuses
commit 0a89f6ca31ceb0fe66b67b91b3ed3b69de60a49e
Author: Enrico Zini <enrico@enricozini.org>
Date: Thu Sep 25 23:08:39 2025 +0200
Disallow creating work requests in ABORTED or COMPLETED states
commit 98abb27ee2b441b5d2564ac99a62423d6257c73d
Author: Enrico Zini <enrico@enricozini.org>
Date: Thu Sep 25 17:41:09 2025 +0200
Make configure-on-creation behaviour more uniform
commit 8e2df1dfd37d2a990de0e0f5f3ce0546b350eae5
Author: Enrico Zini <enrico@enricozini.org>
Date: Sat Sep 20 12:50:22 2025 +0200
Apply task configuration when tasks are created
commit 5e734764a65c1cee04ebe86ed3e8ab5fb4fcc859
Author: Colin Watson <cjwatson@debian.org>
Date: Fri Sep 26 16:08:51 2025 +0100
Return bool from workflow callbacks
The regression-tracking blueprint involves a workflow callback that sets
its result to `FAILURE` in the case of a regression. The easiest way to
do this seems to be to have the callback return False in that case, so
prepare for that.
Part of #909.
commit de5db11b49887814dc0d41d441d05f19caceda98
Merge: 70a05f68d a1f2ed650
Author: Colin Watson <cjwatson@debian.org>
Date: Fri Sep 26 12:20:38 2025 +0000
qa: Implement enable_regression_tracking parameter (MR !2271)
Fixes: #908
Closes #908
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2271
commit 70a05f68d3a6e7aae497a2feae600ee3741aa131
Merge: 53c3102c4 96d742122
Author: Enrico Zini <enrico@debian.org>
Date: Fri Sep 26 11:08:51 2025 +0000
Store resolved task configuration ID in configured_task_data instead of dynamic_task_data (#1055) (MR !2255)
Merge-Request: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/2255
commit a1f2ed65021f656bf7ce32398cb1e329e26ae1f7
Author: Colin Watson <cjwatson@debian.org>
Date: Thu Sep 25 14:38:46 2025 +0100
qa: Implement enable_regression_tracking parameter
Fixes: #908
commit 96d742122d63dd38d6416a71cbd91ff9e5fc02c5
Author: Enrico Zini <enrico@enricozini.org>
Date: Thu Sep 25 11:58:32 2025 +0200
Removed BaseDynamicTaskData.task_configuration_id
commit f6daee98d8e6778a89a0859ed4dc0b5835e1eabf
Author: Enrico Zini <enrico@enricozini.org>
Date: Thu Sep 25 11:58:03 2025 +0200
Added migration to move task_configuration_id from dynamic to configured task data