Re: A modest proposal: Pungi 4 compose process (what we call composes, when we do them, what information we need about them)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2016-02-23 at 19:09 -0800, Adam Williamson wrote:
> On Sat, 2016-02-20 at 15:33 -0800, Adam Williamson wrote:
> > 
> > Hi folks!
> > 
> > So I've been working lately on revamping the release validation process
> > for Pungi 4 composes. I've made quite a bit of progress, but I'm now
> > kind of stuck, because we don't know how the full release cycle is
> > actually going to work with Pungi 4 composes. There are some questions
> > that haven't been answered:
> > 
> > * What will the compose IDs be for anything other than Rawhide snapshots?
> > * When do we compose what kinds of composes?
> > * What information do we need about the composes and where?
> > 
> > I've asked if there are any plans about this a few times, and the
> > answer has always been "not yet". So I figured instead of sitting
> > around waiting, I'd think the issues through and come up with a
> > proposal!
> So I did a bit of digging around in pungi4 / productmd code today.
> Unfortunately it didn't really make me that happy :/
> 
> Simply put, productmd does all the things I've been thinking are a bad
> idea (in terms of encapsulating all sorts of specific properties of a
> particular compose process) and this is broadly tied into pungi4.
> 
> I'm looking at stuff like this:
> 
> https://pagure.io/pungi/blob/master/f/bin/pungi-koji
> 
> that's the executable releng actually has to call to produce a compose.
> Note that it doesn't let you simply say: hey, I want a compose with ID
> foo. Oh, no. It requires you to specify '--nightly' to produce a
> "nightly" compose, or '--test' to produce a "test" compose. If you
> leave both of those out, you get a "production" compose, and are
> required to specify a "label" - but you can't just pick your label,
> because it calls:
> 
> productmd.composeinfo.verify_label(opts.label)

Hmm, on second thoughts, I need to take this back a little. I got kinda
lost in the code and have only just realized that the "label" and the
"compose ID" are separate concepts. At least just looking at the code,
I think it works like this. All "compose IDs" follow a similar format:

Fedora-RELEASE-DATE(.TYPE).RESPIN

for nightly composes type is 'n', for test composes it's 't', for
production composes there is no type - the part in braces is omitted.
So we might have:

Fedora-24-20160224.t.0 (a test compose)
Fedora-24-20160224.n.0 (a nightly compose)
Fedora-24-20160224.0 (a "production" compose)

which...I mean, it still encodes a bit more information than I'd love,
but it's not awful. And it does map quite well to the current Fedora
process, where as we've established, we *do* need to treat 'nightly'
and 'production' composes - or what I called "SNAPSHOT" and "CANDIDATE"
composes - as separate things, at least for now.

the label is a *separate* property which only "production" composes
have. Test and nightly composes do not have one. That's the thing that
looks something like:

Alpha-1.1

so this actually is kinda implementing the idea that you can decide
what a compose "is" in terms of the release process separately from
assigning an ID to it...only you're required to do it *at the time you
build the compose*. I think it'd be good to separate the "apply a
label" step from the "create the compose" step, but conceptually it's
not terrible. It shouldn't be incredibly difficult to make productmd
support a more Fedora-y label format, if we want to do that.
-- 
Adam Williamson
Fedora QA Community Monkey
IRC: adamw | Twitter: AdamW_Fedora | XMPP: adamw AT happyassassin . net
http://www.happyassassin.net

--
test mailing list
test@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe:
http://lists.fedoraproject.org/admin/lists/test@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora Desktop]     [Fedora SELinux]     [Photo Sharing]     [Yosemite Forum]     [KDE Users]

  Powered by Linux