Automate DOM Inspector branch selection

NEW
Unassigned

Status

defect
7 years ago
3 years ago

People

(Reporter: iann_bugzilla, Unassigned)

Tracking

Dependency tree / graph
Bug Flags:
in-testsuite -

Firefox Tracking Flags

(Not tracked)

Details

()

Reporter

Description

7 years ago
It would be good to get at least beta (and probably aurora) as well as release repos automagically pulling from the relevant "stable" DOMI branch without manual intervention. With the trunk repos pulling from the "trunk" DOMI branch.
I wrote up a release checklist a couple weeks ago.  <https://wiki.mozilla.org/DOM_Inspector/Releases/Checklist>  It contains some relevant information.

There was a DOMI_LATEST_BRANCH tag, but not a DOMI_LATEST_RELEASE tag.  I added one just now.

Going forward, the release process will tag the changeset that the latest release is built from with
  1) a version-specific tag, like DOMI_2_0_12_RELEASE
  2) DOMI_LATEST_RELEASE

So instead of changing the build scripts every 12 weeks, the scripts should be able to do
  $ hg update DOMI_LATEST_RELEASE

This will put it at the changeset that the version from AMO was built from.
Depends on: 732749
Due to strict compatibility constraint, SeaMonkey (a/b/r) branches want to check out the most recent changeset of "DOMI_LATEST_released_BRANCH" branch, not DOMI_LATEST_RELEASE tag.

Atm, SeaMonkey is pulling DOMI_2_0_12 (released) branch.

A branch cannot have two names, can it?
Should we add (then move) a "DOMI_LATEST_RELEASE_strictcompat" tag?
Flags: in-testsuite-
(In reply to Serge Gautherie (:sgautherie) from comment #2)
> "DOMI_LATEST_released_BRANCH" branch, not DOMI_LATEST_RELEASE tag.

I'm not sure what you mean here.  Is that "released" supposed to be a literal (without varying)?  E.g., not "DOMI_LATEST_2_0_12_BRANCH"?

Or is the issue that DOMI_LATEST_RELEASE is a tag name and not a branch name?
(In reply to Colby Russell :crussell from comment #3)

> Is that "released" supposed to be a
> literal (without varying)?  E.g., not "DOMI_LATEST_2_0_12_BRANCH"?

Yes. Using varying names is the current situation/issue.
Part of the solution is to use a (additional) "literal" name.

> Or is the issue that DOMI_LATEST_RELEASE is a tag name and not a branch name?

"Yes". For example, SeaMonkey currently wants to pull '6b5ec09f3b1d', not 'c42fd9baba56'.
And changing 'DOMI_LATEST_RELEASE' itself from a tag to a branch wouldn't be perfect because it is set up before the branch is actually released.

In other words, SeaMonkey needs a _literal_ name that is moved from one release _branch_ to the next one, after the latter is actually _released_.
I've been very confused about this.

(In reply to Serge Gautherie (:sgautherie) from comment #4)
> In other words, SeaMonkey needs a _literal_ name that is moved from one
> release _branch_ to the next one

Right.  DOMI_LATEST_RELEASE and DOMI_LATEST_BRANCH are such names.

But!  I think I see now what's being overlooked and is leading to my eventual frustration and confusion here.

> changing 'DOMI_LATEST_RELEASE' itself from a tag to a branch wouldn't be
> perfect because it is set up before the branch is actually released.

Okay, on the second point: there are two tags here: DOMI_LATEST_BRANCH, and DOMI_LATEST_RELEASE.

DOMI_LATEST_BRANCH (not DOMI_LATEST_RELEASE) gives the branch point of the most recent branch, which is the type of thing you're talking about here.  It's attached to the first changeset on the latest branch.  You're correct that you don't want to be building from that changeset.

DOMI_LATEST_RELEASE (and DOMI_$(VERSION)_RELEASE) is the tag that gets applied to the changeset that indicates the state of the repository that the version on AMO is built from.  You don't want this one either, because sometimes there are changes made to the branch after it has been built and sent of to AMO, and you want the build's working version to include these changes.  Changes like those to install.rdf. <http://hg.mozilla.org/dom-inspector/rev/6b5ec09f3b1d>

> SeaMonkey currently wants to pull '6b5ec09f3b1d', not 'c42fd9baba56'.

From the release checklist <https://wiki.mozilla.org/DOM_Inspector/Releases/Checklist>, you get to the current state of the release branch by first updating to the branch point

$ hg update DOMI_LATEST_BRANCH

This is the overlooked part: you can then update to the latest changeset on that branch

$ hg update

This isn't necessarily what you want, either, since at any given time, it may be in the six week period where l10n changes are occurring, and no release has happened from that branch yet.  But it's as simple as applying the same principle in conjunction with what I wrote in comment 1.

Get to the changeset the latest AMO release was prepared from

$ hg update DOMI_LATEST_RELEASE

Now update again to get the changes that have been made since then

$ hg update
(In reply to Colby Russell :crussell from comment #5)
> $ hg update DOMI_LATEST_RELEASE
> $ hg update

I assume this would work, but it means executing 'hg update [...]' twice:
nothing too bad considering that DOMi repository is quite small (compared to mozilla-central),
but not what people (and comm-central client.py) is used to do.
SeaMonkey/comm-central "admins" would have to decide about going that way.

My proposal of an additional branch name seemed/seems simpler and enough: more like what you just did in bug 746784.
(In reply to Serge Gautherie (:sgautherie) from comment #6)
> My proposal of an additional branch name

I don't think that's possible.
(In reply to Colby Russell :crussell from comment #7)
> (In reply to Serge Gautherie (:sgautherie) from comment #6)
> > My proposal of an additional branch name
> 
> I don't think that's possible.

What would be wrong with a "post-release" branch starting on DOMI_LATEST_RELEASE changeset/tag, for example?
We want a name that doesn't vary.  We can do that one time, sure, but try branching from DOMI_LATEST_RELEASE when the next release happens.  You have to give that branch a different name.
(In reply to Serge Gautherie (:sgautherie) from comment #4)
> (In reply to Colby Russell :crussell from comment #3)
> 
> > Is that "released" supposed to be a
> > literal (without varying)?  E.g., not "DOMI_LATEST_2_0_12_BRANCH"?
> 
> Yes. Using varying names is the current situation/issue.
> Part of the solution is to use a (additional) "literal" name.
> 
> > Or is the issue that DOMI_LATEST_RELEASE is a tag name and not a branch name?
> 
> "Yes". For example, SeaMonkey currently wants to pull '6b5ec09f3b1d', not
> 'c42fd9baba56'.
> And changing 'DOMI_LATEST_RELEASE' itself from a tag to a branch wouldn't be
> perfect because it is set up before the branch is actually released.
> 
> In other words, SeaMonkey needs a _literal_ name that is moved from one
> release _branch_ to the next one, after the latter is actually _released_.

Maybe use the "bookmark" feature available in newer Mercurial releases? (I'm not sure exactly when it was made part of plain-vanilla Mercurial. Before that IIRC it used to be an extension. It is included, and not an extension, in the hg 1.9.3 distributed with my openSUSE Linux 12.1.) For details, see "hg help bookmark". Short explanation: "a bookmark is a tag which moves to the child at every new commit." IIRC it can also be moved manually if and when necessary.
P.S. Bookmarks were an extension prior to Mercurial 1.8.
You need to log in before you can comment on or make changes to this bug.