On 2019-09-02 10:33, Emilio Pozuelo Monfort wrote:
On 29/08/2019 12:08, Philipp Kern wrote:
On 2019-08-29 11:46, Emilio Pozuelo Monfort wrote:
On 29/08/2019 11:17, Philipp Kern wrote:
On 2019-08-29 11:14, Emilio Pozuelo Monfort wrote:
Why don't you let the interested teams run the scripts and generate
the
required
binNMUs (like they do now), and then you pull that from a cronjob
in wuiet and
schedule the binNMUs? You would just need to define the format and
do some
sanity checks.
What would those sanity checks be?
You fetch the list from a known debian host (like several other
services already
do, including ftp-master or release). If you define the format to be
e.g. yaml
or json, with an array of binNMUs to schedule, each one with
- a source package
- a version
- a list of architectures
- a reason
You can just then call 'wb nmu' with the right arguments and the
right quoting.
The sanity checks would be to make sure the arguments have the right
format.
So that together with the other mail of not making it automatic: Would
we just
want to have an endpoint you can call as a member of an approved
team(?) that
ingests a list of work items, processes it and archives it? Assuming
that
Release Team has no block in place? Can we require a manual action by
a team
member rather than it being run continuously? So that we could then
track down
who initiated it?
The reason why I asked the Release Team specifically was if we need to
constrain
the set of packages to act upon (e.g. golang-%). If you do not see a
reason,
assuming that we can always tell the team in question to fix their
automation,
that's fine with me too.
On the one hand, adding such a constraint would ensure that the teams
don't
schedule binNMUs outside their realms. OTOH it would reduce the
effectiveness of
this solution when they need to schedule them on packages that don't
fit
whichever criteria we chose (e.g. for apps rather than modules). So I'd
start
with no constrain and we can add it later if we find out it's
preferred.
FWIW, I started working on this. Unfortunately we do not really have
transactions available to schedule all or nothing. If someone has a
creative idea on how to best signal back partial success, let me know.
:)
(My current best guess is a JSON file served as an attachment to the API
call with success/failure states...)
Kind regards
Philipp Kern