Use debusine to run autopkgtest scheduled by britney
User story
As a user of britney to manage a testing-like distribution, I want to be able to use debusine to schedule the autopkgtests of the packages trying to migrate, as well as the tests of the reverse dependencies that would be affected by the new version of the package that would migrate.
For this to work, I would simply register a debusine API key that I created in some .debusine-api-key in the britney checkout, and tweak a few variables to enable the integration with debusine. The excuses.html would automatically have proper links to the scheduled work requests. And everytime that I run britney, it would take into account the results of the autopkgtest jobs that completed since last run and it would schedule new jobs for new packages that want to migrate. For packages that fail to migrate in a very long time, their autopkgtest results would expire after X days (configurable delay) forcing a new run of the associated jobs.
The end result here is a branch of britney2 that can support the above user story and that has some associated documentation, and possibly some supporting changes in the debusine codebase.
Error handling
Not defined, likely similar to what is done in the current debci implementation.
Implementation plan
Fill in this section with a rough plan of how the feature will be implemented in the code base. This does not have to be filled from the start but should be filled before writing any code. For larger changes, it might be wise to first write official design documentation. In those cases, you should put here links to the corresponding documentation once it has been merged.
Open questions
-
The proper implementation of this feature will require the possibility to identify and submit specific .deb files to the autopkgtest task.
This will require a working(Thedebian:archivecollection and possibility to identify specific artifacts in that collection.debian:archivecollection is in place now, with appropriate lookups.)- The other solutions are ugly:
- britney could upload the .deb and .dsc files to be used
- we would rework the "autopkgtest" task to accept a new parameters with package names and pinning (like it's currently done with debci)
- The other solutions are ugly:
-
How do we store and match the list of tests that we have scheduled and their results?
- In the current implementation, britney doesn't seem to store much. It has data/state/autopkgtest-pending.json with a list of pending jobs (but no details about those jobs, not even the pinned packages that are migrated together for the purpose of the test) and data/state/autopkgtest-results.cache probably as a cache of what it requests to debci every time anyway.
-
Do we want to make britney depend on debusine-client? Probably not, they will likely want to stick to direct API calls with python3-requests or curl.
Notes
This issue description can be modified to integrate feedback from comments and from associated merge requests.