canmove, Confirmed users
1,511
edits
(formatting) |
m (better irc log) |
||
| Line 1: | Line 1: | ||
21:00 <@rhelmer> catlee: ping? | |||
21:00 < catlee> rhelmer: pong | |||
21:00 <@rhelmer> catlee: hello, just working on this channel changing aus feature and wanted to confirm some | |||
things | |||
21:01 <@rhelmer> catlee: do we want it to basically behave like nightlies, where no matter what version you are | |||
on you'll get the latest complete for your OS/locale/etc ? | |||
21:01 <@rhelmer> I have been assuming you don't want to have to generate any snippet files for this... | |||
21:03 < catlee> rhelmer: yeah, we don't want ot generate extra snippets | |||
21:04 <@rhelmer> catlee: hmm so for users on release channel going to nightly that'd be easy, for nightlies going | |||
to beta/release it'll be trickier I think... | |||
21:04 < catlee> rhelmer: yeah | |||
21:04 <@rhelmer> since we don't have any logic in place to discover the latest release/beta/etc. | |||
21:04 <@rhelmer> latest non-nightly, I guess I should say | |||
21:05 < catlee> rhelmer: for release to nightly, you can swap out the channel name with the target name, and | |||
continue on | |||
21:05 <@rhelmer> catlee: right, that's what I started to do, until I considered the nightly->release case :) | |||
21:06 <@rhelmer> I think we just need to introduce logic to discover the latest release | |||
21:06 <@rhelmer> sorting our version number scheme is non-trivial unfortunately | |||
21:06 <@rhelmer> although maybe with channels it is not as hard, need to refresh my memory on how that is all set | |||
up right now | |||
21:07 < catlee> rhelmer: nthomas and I had it figured out | |||
21:08 < catlee> you need another version of getLatestCompleteBuild | |||
21:08 < catlee> that has another foreach loop that loops through the versions | |||
21:11 < catlee> rhelmer: and then modify findPatch to take $newChannel or something | |||
21:13 <@rhelmer> catlee: hmm ok that all makes sense; but how do we decide which version is the newest? it seems | |||
like we either need to sort the version numbers, or just pick the highest buildid (which is how | |||
getLatestCompleteBuild does it for nightlies if I am reading this correctly) | |||
21:13 <@rhelmer> this would be a lot easier with a database :) | |||
21:14 < catlee> yeah | |||
21:14 < catlee> aus3! | |||
21:24 <@rhelmer> catlee: hrm so what about the case where a user is on say 4.x nightly channel, and want to jump | |||
to release, but 5.x is out? do they get latest 4.x release or latest 5.x release? | |||
21:25 <@rhelmer> we don't do any kind of "major update" for nightlies now, right? | |||
21:27 < catlee> rhelmer: leave 4.x out of it | |||
21:29 <@rhelmer> catlee: yeah so I think we're down to sorting the version numbers, which needs a specialized | |||
sort (AMO and socorro have their own implementations afaik) | |||
21:29 <@rhelmer> hm | |||
21:30 < catlee> hm | |||
21:30 < catlee> maybe largest buildid works? | |||
21:31 < catlee> although you'd want to avoid scanning ALL the release directories | |||
21:31 <@rhelmer> yeah | |||
21:31 <@rhelmer> catlee: well if you did that in Firefox right now, you'd get 3.5.18 as the latest-by-buildid :) | |||
21:31 <@rhelmer> it's actually not too bad I don't think | |||
21:31 <@rhelmer> something like | |||
21:31 <@rhelmer> ls -latr /opt/aus2/incoming/3/Firefox/*/WINNT_x86-msvc/*/en-US/release/complete.txt | sort -t\/ | |||
-k 9 | |||
21:32 <@rhelmer> I think restricting to branch might make sense | |||
21:32 <@rhelmer> well hmm | |||
21:32 < catlee> branch will be the same | |||
21:32 <@rhelmer> not sure if that makes it any easier actually | |||
21:32 <@rhelmer> yeah | |||
21:33 <@rhelmer> the layout for the nightly snippets makes a lot more sense for this... | |||
21:33 < catlee> yeah | |||
21:34 < catlee> I wonder if telling AUS which release version was "latest" would be too painful | |||
21:34 <@rhelmer> i don't think so, could be done via config or via snippets | |||
21:34 <@rhelmer> might as well be config tbh | |||
21:34 < catlee> just means more churn | |||
21:35 <@rhelmer> right just another little thing | |||
21:35 < catlee> $LATEST_RELEASE = "5.0"; | |||
21:35 < catlee> or somesuch | |||
21:35 <@rhelmer> ok so the way nightlies are treated is interesting... so according to AUS the channel is always | |||
nightly, right? but what we colloquially call channels such as mozilla-aurora, mozilla-central, | |||
tracemonkey, are actually branches; is that right? | |||
21:36 < catlee> and then restrict your searching to /opt/aus2/incoming/3/Firefox/$LATEST_RELEASE | |||
21:36 < catlee> doesn't sound right | |||
21:36 <@rhelmer> hmm | |||
21:36 <@rhelmer> then I am confused at the variables being used in the code | |||
21:36 <@rhelmer> are there example AUS strings somewhere? | |||
21:36 <@rhelmer> AUS request URLs I mean | |||
21:37 < catlee> an aurora build will identify itself on the aurora channel | |||
21:38 <@rhelmer> ok in getLatestCompleteBuild it says $dir = | |||
SOURCE_DIR.'/2/'.$product.'/'.$branchVersion.'/'.$platform; | |||
21:38 <@rhelmer> the path looks like | |||
21:38 <@rhelmer> /opt/aus2/incoming/2/Firefox/mozilla-aurora/WINNT_x86-msvc/20110413090644/en-US/complete.txt | |||
21:39 < catlee> right | |||
21:39 < catlee> that's what the mapping in config-dist.php is for | |||
21:39 < catlee> changes aurora channel name to mozilla-aurora on disk | |||
21:40 <@rhelmer> ah $productBranchVersions | |||
21:40 <@rhelmer> yikes | |||
21:40 <@rhelmer> ok that's interesting | |||
21:44 < dustin> functional xserves? what what? | |||
21:44 < dustin> that's improbable! | |||
21:46 <@rhelmer> inconceivable! | |||
21:47 <@rhelmer> catlee: ok thanks, this is clearer now... I think if we can stand $LATEST_RELEASE it would make | |||
our lives easier... | |||
21:47 <@rhelmer> we can traverse and then sort-by-buildid to get the latest | |||
21:47 <@rhelmer> it'll increase IO but memcache should help hopefully | |||
21:48 < catlee> I think it'll be a relatively uncommon request | |||
21:49 <@rhelmer> true | |||
21:49 <@rhelmer> yeah it must be user-initiated, we won't get automatic checks or anything | |||
21:50 * rhelmer is going to dump this info into a bug comment for reference | |||