User:Rhelmer/AUS channel changing: Difference between revisions

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

Latest revision as of 22:36, 19 April 2011

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> ok that's interesting
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