Hi, folks. So continuing with the theme of setting up the Fedora.next QA process, I thought before going too far with draft release criteria etc, we could discuss a couple of important points that have come up since I sent out the draft test plan.
There are two kind of similar issues in particular I'm thinking of.
First, at the QA meeting this week, tflink pointed out that we would need to decide whether we will have sort of 'parallel' blocker/freeze exception bug processes for each product. That is, do we have:
F21FinalBlocker F21ServerFinalBlocker F21WorkstationFinalBlocker
etc etc, and separate lists of blockers on http://qa.fedoraproject.org/blockerbugs/current per product (and non-Product-specific), and separate meetings? Or do we keep the 'unified' blocker nomination / review process, and just handle blocker bugs for all Products within it?
At first blush I'd incline to keeping a single unified process, because splitting them up seems like an awful lot of work and I'm not sure it comes with a clear benefit. It also relies either on reporters correctly determining what product their bug is relevant to, or on a triage step for blocker nominations.
However, it's worth noting that if we allow the release schedules for the Products to diverge in future, it would probably then be inevitable that we'd need split blocker review (and release validation, for that matter).
Second, there's a similar issue of organization with regard to the release criteria. I haven't explicitly written this down anywhere, but I've been sort of unconsciously expecting that we'd keep the existing 'generic' release criteria pages for criteria that are not Product-specific, and then we'd have Product-specific release criteria pages which would basically be *additive*: they'd add additional criteria applicable only to that Product. They could also perhaps 'patch' the generic criteria to a limited degree, though this would get messy if the delta got too great.
However, Mike (roshi) has produced draft release criteria for the Cloud product as part of his work on the 'test outline' for that product - https://fedoraproject.org/wiki/User:Roshi/QA/Cloud_Docs/Cloud_Alpha_Release_... , https://fedoraproject.org/wiki/User:Roshi/QA/Cloud_Docs/Cloud_Beta_Release_C... , https://fedoraproject.org/wiki/User:Roshi/QA/Cloud_Docs/Cloud_Final_Release_... - and used another possible approach; the criteria he has drawn up are clearly intended to be *comprehensive* with regard to the Cloud product. They would not need to be read in conjunction with the 'generic' criteria.
I'm not as sure which approach I prefer here, and to a degree the difference between them isn't as clear cut as it appears at first glance; however the criteria are ultimately presented, we'll likely have several that are applicable to multiple Products. Even if these are displayed multiple times on 'comprehensive' pages for each Product, they might be shared at the 'source' level using mediawiki transclusion, for instance (to prevent them diverging unintentionally). And of course we aren't necessarily tied to mediawiki for presenting the criteria, which is another factor to bear in mind (I know one of tflink's Grand Plans involves a different way of maintaining and presenting the release criteria).
Thoughts on the best approach for each of these issues would certainly be appreciated! I thought it'd be best to take some time to think them over before moving ahead with drafts and so on.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 05/27/2014 09:22 PM, Adam Williamson wrote:
Hi, folks. So continuing with the theme of setting up the Fedora.next QA process, I thought before going too far with draft release criteria etc, we could discuss a couple of important points that have come up since I sent out the draft test plan.
There are two kind of similar issues in particular I'm thinking of.
First, at the QA meeting this week, tflink pointed out that we would need to decide whether we will have sort of 'parallel' blocker/freeze exception bug processes for each product. That is, do we have:
F21FinalBlocker F21ServerFinalBlocker F21WorkstationFinalBlocker
etc etc, and separate lists of blockers on http://qa.fedoraproject.org/blockerbugs/current per product (and non-Product-specific), and separate meetings? Or do we keep the 'unified' blocker nomination / review process, and just handle blocker bugs for all Products within it?
At first blush I'd incline to keeping a single unified process, because splitting them up seems like an awful lot of work and I'm not sure it comes with a clear benefit. It also relies either on reporters correctly determining what product their bug is relevant to, or on a triage step for blocker nominations.
However, it's worth noting that if we allow the release schedules for the Products to diverge in future, it would probably then be inevitable that we'd need split blocker review (and release validation, for that matter).
I'm of the opinion that we should keep the blocker process unified until and unless that becomes impossible. The only benefit I can think of to separating them would be metrics, and I cannot measure the degree to which I don't care about metrics :)
Second, there's a similar issue of organization with regard to the release criteria. I haven't explicitly written this down anywhere, but I've been sort of unconsciously expecting that we'd keep the existing 'generic' release criteria pages for criteria that are not Product-specific, and then we'd have Product-specific release criteria pages which would basically be *additive*: they'd add additional criteria applicable only to that Product. They could also perhaps 'patch' the generic criteria to a limited degree, though this would get messy if the delta got too great.
However, Mike (roshi) has produced draft release criteria for the Cloud product as part of his work on the 'test outline' for that product -
https://fedoraproject.org/wiki/User:Roshi/QA/Cloud_Docs/Cloud_Alpha_Release_... , https://fedoraproject.org/wiki/User:Roshi/QA/Cloud_Docs/Cloud_Beta_Release_C... , https://fedoraproject.org/wiki/User:Roshi/QA/Cloud_Docs/Cloud_Final_Release_... - - and used another possible approach; the criteria he has drawn up are clearly intended to be *comprehensive* with regard to the Cloud product. They would not need to be read in conjunction with the 'generic' criteria.
I'm not as sure which approach I prefer here, and to a degree the difference between them isn't as clear cut as it appears at first glance; however the criteria are ultimately presented, we'll likely have several that are applicable to multiple Products. Even if these are displayed multiple times on 'comprehensive' pages for each Product, they might be shared at the 'source' level using mediawiki transclusion, for instance (to prevent them diverging unintentionally). And of course we aren't necessarily tied to mediawiki for presenting the criteria, which is another factor to bear in mind (I know one of tflink's Grand Plans involves a different way of maintaining and presenting the release criteria).
Thoughts on the best approach for each of these issues would certainly be appreciated! I thought it'd be best to take some time to think them over before moving ahead with drafts and so on.
I like the transclusion idea, personally. We can have individual pages for each Product and follow them straight through (this also reduces the amount of paging about and information to keep track of).
On Wed, May 28, 2014 at 08:11:16 -0400, Stephen Gallagher sgallagh@redhat.com wrote:
-----BEGIN PGP SIGNED MESSAGE-----
I'm of the opinion that we should keep the blocker process unified until and unless that becomes impossible. The only benefit I can think of to separating them would be metrics, and I cannot measure the degree to which I don't care about metrics :)
If the release dates of the products diverge, we might want to track which specific products are being blocked. That isn't happening now, but has been mentioned as a future possibility.
On Wed, May 28, 2014 at 08:11:16AM -0400, Stephen Gallagher wrote:
I'm of the opinion that we should keep the blocker process unified until and unless that becomes impossible. The only benefit I can think of to separating them would be metrics, and I cannot measure the degree to which I don't care about metrics :)
I think we should care about metrics, and I think this would be very useful to track, even though I agree it'd be better to combine into one actual process at this point.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 05/28/2014 10:11 AM, Matthew Miller wrote:
On Wed, May 28, 2014 at 08:11:16AM -0400, Stephen Gallagher wrote:
I'm of the opinion that we should keep the blocker process unified until and unless that becomes impossible. The only benefit I can think of to separating them would be metrics, and I cannot measure the degree to which I don't care about metrics :)
I think we should care about metrics, and I think this would be very useful to track, even though I agree it'd be better to combine into one actual process at this point.
I specifically meant "metrics about whether issues are specific to one Fedora release or another". I should probably start drinking coffee.
On Wed, May 28, 2014 at 10:59:31AM -0400, Stephen Gallagher wrote:
I'm of the opinion that we should keep the blocker process unified until and unless that becomes impossible. The only benefit I can think of to separating them would be metrics, and I cannot measure the degree to which I don't care about metrics :)
I think we should care about metrics, and I think this would be very useful to track, even though I agree it'd be better to combine into one actual process at this point.
I specifically meant "metrics about whether issues are specific to one Fedora release or another". I should probably start drinking coffee.
Coffee is delicious. But even in a highly caffeinated state, I'm curious why you don't think this specific thing is interesting. Unless you are saying that it's immeasurable because you *care so much*. :)
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Wed 28 May 2014 11:04:39 AM EDT, Matthew Miller wrote:
On Wed, May 28, 2014 at 10:59:31AM -0400, Stephen Gallagher wrote:
I'm of the opinion that we should keep the blocker process unified until and unless that becomes impossible. The only benefit I can think of to separating them would be metrics, and I cannot measure the degree to which I don't care about metrics :)
I think we should care about metrics, and I think this would be very useful to track, even though I agree it'd be better to combine into one actual process at this point.
I specifically meant "metrics about whether issues are specific to one Fedora release or another". I should probably start drinking coffee.
Coffee is delicious. But even in a highly caffeinated state, I'm curious why you don't think this specific thing is interesting. Unless you are saying that it's immeasurable because you *care so much*. :)
Mostly just that it seems like knowing which blockers came from which product is data for data's sake, rather than necessarily something from which we can take action.
I *guess* we could use it to make resourcing decisions, if we actually had resources to distribute.
On Tue, 27 May 2014 18:22:21 -0700 Adam Williamson awilliam@redhat.com wrote:
Hi, folks. So continuing with the theme of setting up the Fedora.next QA process, I thought before going too far with draft release criteria etc, we could discuss a couple of important points that have come up since I sent out the draft test plan.
There are two kind of similar issues in particular I'm thinking of.
First, at the QA meeting this week, tflink pointed out that we would need to decide whether we will have sort of 'parallel' blocker/freeze exception bug processes for each product. That is, do we have:
F21FinalBlocker F21ServerFinalBlocker F21WorkstationFinalBlocker
etc etc, and separate lists of blockers on http://qa.fedoraproject.org/blockerbugs/current per product (and non-Product-specific), and separate meetings? Or do we keep the 'unified' blocker nomination / review process, and just handle blocker bugs for all Products within it?
At first blush I'd incline to keeping a single unified process, because splitting them up seems like an awful lot of work and I'm not sure it comes with a clear benefit. It also relies either on reporters correctly determining what product their bug is relevant to, or on a triage step for blocker nominations.
However, it's worth noting that if we allow the release schedules for the Products to diverge in future, it would probably then be inevitable that we'd need split blocker review (and release validation, for that matter).
I think we might be able to strike a balance here between total separation and a unified blocker process (though it incurs a bit of overhead). Just as we currently mark bugs as blockers, we can continue to do that - but *also* mark them as F21<foo>FinalBlocker. This would allow for tracking at the product level but also keep some sanity with blocker meetings. Then, later down the road if the blocker process diverges with each product, they can simply drop the generic blocker tracking bug.
I don't immediately see much of a downside to this - but then again, that doesn't mean there isn't :) At the very least it might lessen the learning curve as we carve a new path with Fedora.next.
Second, there's a similar issue of organization with regard to the release criteria. I haven't explicitly written this down anywhere, but I've been sort of unconsciously expecting that we'd keep the existing 'generic' release criteria pages for criteria that are not Product-specific, and then we'd have Product-specific release criteria pages which would basically be *additive*: they'd add additional criteria applicable only to that Product. They could also perhaps 'patch' the generic criteria to a limited degree, though this would get messy if the delta got too great.
However, Mike (roshi) has produced draft release criteria for the Cloud product as part of his work on the 'test outline' for that product - https://fedoraproject.org/wiki/User:Roshi/QA/Cloud_Docs/Cloud_Alpha_Release_... , https://fedoraproject.org/wiki/User:Roshi/QA/Cloud_Docs/Cloud_Beta_Release_C... , https://fedoraproject.org/wiki/User:Roshi/QA/Cloud_Docs/Cloud_Final_Release_...
- and used another possible approach; the criteria he has drawn up
are clearly intended to be *comprehensive* with regard to the Cloud product. They would not need to be read in conjunction with the 'generic' criteria.
Just so we're clear here: I split out the cloud specific (from what I could tell) criteria out so that it was easier for me to keep track of in my head [0]. I wasn't intending it to be an end solution (even though I suppose it could be, at some point).
I'm not as sure which approach I prefer here, and to a degree the difference between them isn't as clear cut as it appears at first glance; however the criteria are ultimately presented, we'll likely have several that are applicable to multiple Products. Even if these are displayed multiple times on 'comprehensive' pages for each Product, they might be shared at the 'source' level using mediawiki transclusion, for instance (to prevent them diverging unintentionally). And of course we aren't necessarily tied to mediawiki for presenting the criteria, which is another factor to bear in mind (I know one of tflink's Grand Plans involves a different way of maintaining and presenting the release criteria).
I too share this Grand Plan, but it's not something I feel needs to be pushed at this point with all the things on our plates. I imagine the importance of this will be determined as we move forward and figure out what works best.
// Mike
[0] From https://fedoraproject.org/wiki/User:Roshi/QA/Cloud_Docs : "This is not meant to replace the existing RC pages. It was just easier for me to parse after taking out all the parts that don't directly deal with Cloud images."
On Wed, 2014-05-28 at 09:15 -0600, Mike Ruckman wrote:
I think we might be able to strike a balance here between total separation and a unified blocker process (though it incurs a bit of overhead). Just as we currently mark bugs as blockers, we can continue to do that - but *also* mark them as F21<foo>FinalBlocker. This would allow for tracking at the product level but also keep some sanity with blocker meetings. Then, later down the road if the blocker process diverges with each product, they can simply drop the generic blocker tracking bug.
I don't immediately see much of a downside to this - but then again, that doesn't mean there isn't :) At the very least it might lessen the learning curve as we carve a new path with Fedora.next.
I thought of something similar, but just as a whiteboard field entry, to make it less intrusive. That should be enough metadata for searches.
I should note that I was remiss in my original email in missing one issue with the 'combined' approach: it will likely require WG representatives to be present at most blocker meetings. I expect we'd at least want reps of any WG whose product is obviously affected by / involved in a given blocker to be present at the review meeting(s) for that blocker.
For the last few releases, blocker meetings have become almost QA-only a lot of the time, or QA plus releng; we haven't had very good representation from devs/packagers. A 'softly softly' approach to improving that hasn't gone very well; I think outside of QA and releng, people have developed this mindset where the blocker review process is something that Just Sorta Happens in the background, and they only get involved where it touches upon them directly (e.g. they're actually assigned a bug that's nominated as a blocker). We're probably going to have to change that mindset in a .next world: we would already quite *like* the expertise and input of folks outside QA/releng to the blocker process, but in a world with Products with more domain-specific release criteria, we're really going to need it.
Second, there's a similar issue of organization with regard to the release criteria. I haven't explicitly written this down anywhere, but I've been sort of unconsciously expecting that we'd keep the existing 'generic' release criteria pages for criteria that are not Product-specific, and then we'd have Product-specific release criteria pages which would basically be *additive*: they'd add additional criteria applicable only to that Product. They could also perhaps 'patch' the generic criteria to a limited degree, though this would get messy if the delta got too great.
However, Mike (roshi) has produced draft release criteria for the Cloud product as part of his work on the 'test outline' for that product - https://fedoraproject.org/wiki/User:Roshi/QA/Cloud_Docs/Cloud_Alpha_Release_... , https://fedoraproject.org/wiki/User:Roshi/QA/Cloud_Docs/Cloud_Beta_Release_C... , https://fedoraproject.org/wiki/User:Roshi/QA/Cloud_Docs/Cloud_Final_Release_...
- and used another possible approach; the criteria he has drawn up
are clearly intended to be *comprehensive* with regard to the Cloud product. They would not need to be read in conjunction with the 'generic' criteria.
Just so we're clear here: I split out the cloud specific (from what I could tell) criteria out so that it was easier for me to keep track of in my head [0]. I wasn't intending it to be an end solution (even though I suppose it could be, at some point).
Sure, I understand that - but just the fact you did it this way highlighted that it was actually one possible 'final' approach. Before I saw your drafts I hadn't even really considered it.
On Wed, May 28, 2014 at 11:23:59 -0700, Adam Williamson awilliam@redhat.com wrote:
On Wed, 2014-05-28 at 09:15 -0600, Mike Ruckman wrote:
assigned a bug that's nominated as a blocker). We're probably going to have to change that mindset in a .next world: we would already quite *like* the expertise and input of folks outside QA/releng to the blocker process, but in a world with Products with more domain-specific release criteria, we're really going to need it.
It's hard to get people to commit that much time at once. Jumping in to help with 1 hour meetings is a lot easier than 3 hour ones.
On Wed, 2014-05-28 at 13:34 -0500, Bruno Wolff III wrote:
On Wed, May 28, 2014 at 11:23:59 -0700, Adam Williamson awilliam@redhat.com wrote:
On Wed, 2014-05-28 at 09:15 -0600, Mike Ruckman wrote:
assigned a bug that's nominated as a blocker). We're probably going to have to change that mindset in a .next world: we would already quite *like* the expertise and input of folks outside QA/releng to the blocker process, but in a world with Products with more domain-specific release criteria, we're really going to need it.
It's hard to get people to commit that much time at once. Jumping in to help with 1 hour meetings is a lot easier than 3 hour ones.
yeah, hence why this is more of an issue with the combined process. We can try to group the bugs for the combined meetings, however.
On Tue, 2014-05-27 at 18:22 -0700, Adam Williamson wrote:
Second, there's a similar issue of organization with regard to the release criteria. I haven't explicitly written this down anywhere, but I've been sort of unconsciously expecting that we'd keep the existing 'generic' release criteria pages for criteria that are not Product-specific, and then we'd have Product-specific release criteria pages which would basically be *additive*: they'd add additional criteria applicable only to that Product. They could also perhaps 'patch' the generic criteria to a limited degree, though this would get messy if the delta got too great.
However, Mike (roshi) has produced draft release criteria for the Cloud product as part of his work on the 'test outline' for that product - https://fedoraproject.org/wiki/User:Roshi/QA/Cloud_Docs/Cloud_Alpha_Release_... , https://fedoraproject.org/wiki/User:Roshi/QA/Cloud_Docs/Cloud_Beta_Release_C... , https://fedoraproject.org/wiki/User:Roshi/QA/Cloud_Docs/Cloud_Final_Release_... - and used another possible approach; the criteria he has drawn up are clearly intended to be *comprehensive* with regard to the Cloud product. They would not need to be read in conjunction with the 'generic' criteria.
I'm not as sure which approach I prefer here, and to a degree the difference between them isn't as clear cut as it appears at first glance; however the criteria are ultimately presented, we'll likely have several that are applicable to multiple Products. Even if these are displayed multiple times on 'comprehensive' pages for each Product, they might be shared at the 'source' level using mediawiki transclusion, for instance (to prevent them diverging unintentionally). And of course we aren't necessarily tied to mediawiki for presenting the criteria, which is another factor to bear in mind (I know one of tflink's Grand Plans involves a different way of maintaining and presenting the release criteria).
So, just an update on this part: I've spent today poking at various approaches to this. The bad news is that handling it at all cleanly with the approach we generally seemed to like - having separate pages for each product, but using transclusion to share 'common' criteria - is going to be difficult and would wind up looking pretty ugly on the 'back end', due to the limitations of mediawiki transclusion.
Basically I think we'd unavoidably wind up with a huge pile of template pages containing very small numbers of release criteria - or even just one criterion, or even a *subsection* of one criterion. The resultant criteria pages would look nice and clean when you just viewed them, but it'd be a bit of a mess behind the scenes, and it might be hard to figure out how the heck to edit anything properly. There's a few reasons for this:
* Criteria don't just map nicely as 'universal' or 'specific to one product'. Some are specific to a given type of install medium, for instance - which would make them apply to, say, two products but not the third. We couldn't just have template pages for 'universal' and each product, but we'd also need template pages for each install medium type, and the criteria pages for each product would have to transclude the correct template pages for the install medium types that product actually ships. There may be even more factors like this that I haven't noticed yet: each one would add another degree of complexity.
* Transclusion is a kind of 'all or nothing' thing. You can't break up transcluded blocks. This is a problem, because we organize the criteria into sub-sections. So we wind up needing a set of template pages *for each criteria sub-section*.
* There are many criteria which cover multiple circumstances, only some of which apply to each Product (or media type). The criterion "Release-blocking images must boot" is universal, for instance, but its notes are not: some of its notes wouldn't apply to some products. So do we split a single release criterion up and have template pages for each line of its notes? That seems a bit nutty. But it also reads awkwardly if we have a "Fedora 21 Workstation Alpha release criteria" page which includes notes like "Supported cloud environments: Release-blocking cloud images must boot in the Fedora OpenStack Cloud and in Amazon EC2." Do we just give up on 'dynamically' sharing that criterion between pages, and write static copies of it into each product's page? Then maybe it unintentionally diverges between the three some time.
So...I'm not optimistic we'll be able to handle it particularly cleanly by transclusion. For now what I'm planning to do is mock up completely static versions of the criteria pages as they apply to each Product, and then just look at them to see just how bad the problem is, just how tricky it would be to reproduce that same result using shared templates. If it's really as bad as it seems at first glance, I suspect the only viable approaches will be:
1) have separate criteria pages for each product with maybe just basic transclusion for only those criteria which can be shared perfectly cleanly between all three products
2) keep one combined set of release criteria, and just add new sections to it which are specified only to apply to particular products
3) design a much better system for storing and displaying the release criteria than Mediawiki
3) would be nice, of course, but takes resources. tflink would like to work on it, but we can hardly call it a high priority right now with taskotron work still needing to be done. 2) is a bit ugly, but it's the closest to our current approach, and probably the easiest to do. 1) gives us a nice 'clean looking' result but is somewhat more work to implement and carries a risk of unintentional divergence of the criteria in future, when changes made to the criteria for one product aren't properly applied to the other products when they should be.
Anyway, that's where I'm at with this right now...when I have anything concrete I'll throw it up for people to look at. If anyone has any brilliant ideas or a really elegant implementation of transclusion, or something, that'd really help.
server@lists.fedoraproject.org