Add tab for candidate compose / stable push request text
ClosedPublic

Authored by adamwill on Nov 9 2016, 2:31 AM.

Details

Summary

This adds a 'Requests' tab which provides proposed text for a
candidate compose request and a stable push request for the
current milestone, in wikitext format as these requests are
currently sent to Trac. We'll probably have to change it to
Markdown for Pagure soon enough, but that would be easy.

The candidate compose request lists all updates that:

  • Are not stable, obsolete or deleted
  • Fix an accepted blocker or FE bug for the relevant milestone

along with the related bugs. The stable push request adds one
more condition to those two:

  • Is queued for stable

In both cases, each update is listed along with the bugs it
fixes, in the same basic format I've been using for these
requests (doing it by hand) for years. The text is intended as
a starting point for a human to review, as sometimes it'll need
tweaking for unusual circumstances.

I included tests but I can't seem to run the tests here (pytest
blows up with some weird error when I try), so I haven't tested
the tests...I hope they work. :)

Test Plan

Run the app, go the the Requests tab for a milestone
(Fedora 25 Final is the best to try at present), check the text
looks appropriate.

Diff Detail

Repository
rBLKR blockerbugs
Branch
compose-push-request (branched from develop)
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 1103
Build 1103: arc lint + arc unit
adamwill retitled this revision from to Add tab for candidate compose / stable push request text.Nov 9 2016, 2:31 AM
adamwill updated this object.
adamwill edited the test plan for this revision. (Show Details)
adamwill added reviewers: tflink, mkrizek.
adamwill updated this revision to Diff 2679.Nov 9 2016, 2:34 AM

Move the (FE) text to a less misleading place

When an update fixes both blocker and FE bugs, it's listed in the
blocker section and the FE bug links have '(FE)' added. I was adding
this *before* the link but that's misleading now I ditched the commas
and 'and' I was using when hand-writing these things, so move it to
after the link instead.

adamwill updated this revision to Diff 2681.Nov 9 2016, 6:42 PM

Track update 'request' status in the db, tweak text template

adamwill updated this revision to Diff 2682.Nov 9 2016, 6:43 PM

put alembic.ini back how it was

There's one thing I'd still like to improve here: the 'compose request' text takes no account of packages already requested for previous composes, so will duplicate those.

There's two possible ways to fix that, I think: 1) get the text from the update request somehow (probably involving using xmlrpc to talk to Trac...) and parse it, or 2) ask Koji what's in the relevant compose override tag. Talking to Koji is xmlrpc too, IIRC, but we have a client for it in python-fedora and I've done it before, so that way seems a bit better.

adamwill updated this revision to Diff 2689.Nov 17 2016, 1:00 AM

Update template to use Markdown syntax, rebase

Oops, I somehow missed it, sorry about that :/ @adamwill do we still want this and/or how much is it up to date?

I still want it, it just got pushed down my priority list as we were out of the f25 blocker treadmill. Now we're on the f26 blocker treadmill I'll probably get back to this quite soon.

It's missing a feature I want it to have, at present - it can't leave out updates that have already been pulled into the side tag from the 'candidate compose request' list, and it should be able to do that. I haven't looked at it for a few months, but IIRC, that requires another database model change, unfortunately (the blockerbugs db doesn't include some info we need in order to implement that logic).

It did *work* as-is, though. I used a local blockerbugs instance with this patch applied to generate the candidate compose requests and stable push requests for f25 final.

mkrizek requested changes to this revision.Mar 9 2017, 2:02 PM

Looks good, just found one issue in the tests that needs to be fixed.

Also, apparently we missed that D1050 broke tests :/ We can deal with that in other DR though.

alembic/versions/cad797ffa042_add_request_to_update_model.py
23

Just found out that this does not work on sqlite and we use drop_column in several alembic scripts :/ Oh well, let's not deal with it here.

testing/test_controllers.py
259

release is not defined the method. cls.milestone should be self.milestone.

This revision now requires changes to proceed.Mar 9 2017, 2:02 PM
adamwill updated this revision to Diff 2978.Mar 16 2017, 11:24 PM

Fix test issues noted by @mkrizek

mkrizek accepted this revision.Mar 17 2017, 2:55 PM

Just one remaining issue. After fixing that, ship it!

testing/test_controllers.py
204

cls.milestone = add_milestone(cls.release, 'final', 100, 101,

This revision is now accepted and ready to land.Mar 17 2017, 2:55 PM
adamwill closed this revision.Mar 17 2017, 3:25 PM