Closed
Bug 754132
Opened 13 years ago
Closed 12 years ago
Use treestatus for mercurial closure hooks
Categories
(Developer Services :: Mercurial: hg.mozilla.org, defect, P4)
Developer Services
Mercurial: hg.mozilla.org
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: catlee, Assigned: catlee)
References
Details
(Whiteboard: [treestatus])
Attachments
(1 file, 1 obsolete file)
11.61 KB,
patch
|
ted
:
review+
|
Details | Diff | Splinter Review |
We have treestatus up \o/
Now we need the treeclosure.py hg hook to look at it instead of tinderbox. This patch is a first attempt at that.
Ted, for some reason I think you were the initial owner of this, so you get tagged for a f?
Corey, how is this hook enabled for the various repos? This script currently prints a warning, but fails open, for repos that don't have a corresponding entry in treestatus.
Attachment #622984 -
Flags: feedback?(ted.mielczarek)
Attachment #622984 -
Flags: feedback?(cshields)
Updated•13 years ago
|
Assignee: server-ops → server-ops-devservices
Component: Server Operations → Server Operations: Developer Services
QA Contact: phong → shyam
Summary: Use treestatus for mercural closure hooks → Use treestatus for mercurial closure hooks
Updated•13 years ago
|
Assignee: server-ops-devservices → bkero
Comment 1•13 years ago
|
||
I think johnath wrote the first version of this hook, but I'm the module owner of this stuff, so I can certainly review it.
The hook is enabled on a per-repo basis, AIUI.
Comment 2•13 years ago
|
||
Currently the hook is enabled for individual repositories in $repo/.hg/hgrc under the [hooks] section with a line that looks like:
pretxnchangegroup.a_treeclosure = python:mozhghooks.treeclosure.hook
Comment 3•13 years ago
|
||
Comment on attachment 622984 [details] [diff] [review]
update treeclosure.py to look at treestatus instead of tinderbox
Review of attachment 622984 [details] [diff] [review]:
-----------------------------------------------------------------
Overall this looks great, just a few comments.
Also, there are unit tests for this hook, so you'll need to adjust them:
http://hg.mozilla.org/hgcustom/hghooks/file/61b22f7461bd/runtests.py#l207
(they mock out the HTTP requests, so it should be easy enough to test what you need to test)
::: mozhghooks/treeclosure.py
@@ -45,5 @@
> - 'try' : 'http://tinderbox.mozilla.org/Try/status.html',
> - 'try-comm-central': 'http://tinderbox.mozilla.org/Thunderbird-Try/status.html',
> - 'services-central': 'http://tinderbox.mozilla.org/Services-Central/status.html',
> - 'shadow-central' : 'http://tinderbox.mozilla.org/Shadow-Central/status.html',
> -}
<3
@@ +25,5 @@
>
> +treestatus_base_url = "https://treestatus.mozilla.org"
> +
> +# For testing
> +# treestatus_base_url = "https://treestatus-dev.allizom.org"
I'd just leave this comment out, unless you want to add support for overriding the URL with an environment variable, in which case you could add that and document this as the example server to use...
@@ +31,3 @@
> def hook(ui, repo, **kwargs):
> + name = os.path.basename(repo.root)
> + url = "%s/%s?format=json" % (treestatus_base_url, name)
The expectation is that treestatus will only use the repo name itself, and not the path? (like integration/mozilla-inbound)
@@ +54,5 @@
> +
> + except (ValueError, IOError), (err):
> + # fail open. no sense making hg unavailable
> + # if treestatus is down
> + print "Error: %s" % err, url
If we turn treestatus into a production service, we should consider making this fail closed. treestatus seems simple enough that we could make that work.
Attachment #622984 -
Flags: feedback?(ted.mielczarek) → feedback+
Updated•13 years ago
|
Assignee: bkero → nobody
Component: Server Operations: Developer Services → Hg: Customizations
QA Contact: shyam → hg.customizations
Assignee | ||
Comment 4•13 years ago
|
||
> @@ +31,3 @@
> > def hook(ui, repo, **kwargs):
> > + name = os.path.basename(repo.root)
> > + url = "%s/%s?format=json" % (treestatus_base_url, name)
>
> The expectation is that treestatus will only use the repo name itself, and
> not the path? (like integration/mozilla-inbound)
We could do that - treestatus supports trees with '/' in their names (e.g.
https://treestatus-dev.allizom.org/integration/fx-team). I'm not sure how I'd
get the hg hook to decide which part of the path was part of the tree/branch
name, and which part was irrelevant directories on the system.
>
> @@ +54,5 @@
> > +
> > + except (ValueError, IOError), (err):
> > + # fail open. no sense making hg unavailable
> > + # if treestatus is down
> > + print "Error: %s" % err, url
>
> If we turn treestatus into a production service, we should consider making
> this fail closed. treestatus seems simple enough that we could make that
> work.
Let's deploy with fail open first and see how it handles things.
Comment 5•13 years ago
|
||
There's no way (AFAIK) to get the relevant portion of the path from the hook, and we don't have any overlap in repo names that I know of, so let's just go with it. I was just sanity-checking.
Assignee | ||
Comment 6•13 years ago
|
||
addressed your feedback comments:
* fixed up tests \o/
* removed commented out staging instance
Attachment #622984 -
Attachment is obsolete: true
Attachment #622984 -
Flags: feedback?(cshields)
Attachment #624181 -
Flags: review?(ted.mielczarek)
Updated•13 years ago
|
Attachment #624181 -
Flags: review?(ted.mielczarek) → review+
Comment 7•13 years ago
|
||
whats left to do here?
Updated•13 years ago
|
Assignee: nobody → catlee
Comment 8•13 years ago
|
||
This needs a bug to get deployed on hg.mo, and bug 756027 needs to get fixed to make TBPL use treestatus as well.
Comment 9•13 years ago
|
||
We also need to first:
* Populate the tree names & default status messages for trees that will be using this hook: filed bug 758882.
* Give active sheriffs permissions on treestatus.mozilla.org: filed bug 758886.
And optionally:
* Make sure restoring previous state works: https://github.com/catlee/treestatus/issues/6
Comment 10•13 years ago
|
||
Bug 759170 has the equivalent patch for the Thunderbird trees, it is all ready for landing. I'd appreciate it if we could arrange for both of these to be rolled out at the same time, rather than requiring two separate updates of hg.mozilla.org.
Assignee | ||
Updated•13 years ago
|
Priority: -- → P4
Whiteboard: [treestatus]
Comment 11•13 years ago
|
||
Checked in:
http://hg.mozilla.org/hgcustom/hghooks/rev/623817e95249
We're aiming to file the bug to get it pushed out on Monday, in-sync with the tbpl changes.
Comment 12•13 years ago
|
||
I have a draft "simultaneously push tbpl and hghooks to prod" bug ready, but holding off filing until the caching has been tweaked:
https://github.com/catlee/treestatus/issues/18
Comment 13•12 years ago
|
||
In production :-)
See bug 782239 for testing/where I've notified now that we've switched.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Updated•12 years ago
|
Product: mozilla.org → Release Engineering
Updated•10 years ago
|
Product: Release Engineering → Developer Services
You need to log in
before you can comment on or make changes to this bug.
Description
•