User:Rhelmer/AUS channel changing: Difference between revisions

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

edits