Closed Bug 1367605 Opened 8 years ago Closed 8 years ago

Update MozillaBuild to use fsmonitor instead of hgwatchman (still disabled by default)

Categories

(Firefox Build System :: MozillaBuild, task)

task
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: RyanVM, Assigned: RyanVM)

References

Details

Attachments

(1 file, 1 obsolete file)

Since version 2.2 shipped, Mercurial started shipping fsmonitor as a built-in extension, so we can drop our hgwatchman stuff in favor of it. Also, we should take a look at newer builds of watchman since ours is over a year old at this point.
I want to test this locally for awhile before committing to it (and you can see that I have it disabled by default still), but I at least wanted to get this attached so you could add any other feedback you wanted about the defaults to ship fsmonitor with.
Attachment #8871551 - Flags: feedback?(gps)
Comment on attachment 8871551 [details] [diff] [review] update watchman and switch over to using fsmonitor Review of attachment 8871551 [details] [diff] [review]: ----------------------------------------------------------------- This seems like an obvious step in the right direction. Also, TIL about helpers.nsi. OMG. Nuke it from orbit.
Attachment #8871551 - Flags: feedback?(gps) → feedback+
I tried enabling fsmonitor locally today but am getting the following error: warning: Watchman unavailable: watchman command error: unable to resolve root c:\Users\Ryan\repos\mozilla-build: "c:\Users\Ryan\repos\mozilla-build" resolved to "C:/Users/Ryan/repos/mozilla-build" but we were unable to examine "c:\Users\Ryan\repos\mozilla-build" using strict case sensitive rules. Please check each component of the path and make sure that that path exactly matches the correct case of the files on your filesystem. Not sure what's going on. Yes, that path is correct.
Flags: needinfo?(gps)
This is also using a current CI build from upstream. Bottom line is that I think we're going to be playing whack-a-mole trying to get a build that works decently. Windows support upstream clearly isn't a big priority.
If you want to mess around with it locally, here's an up-to-date test build: https://drive.google.com/open?id=0BxocUovXDf0iYnF5Y0ltSURIdGc
I bet fsmonitor and watchman work in a cmd.exe environment. I suspect our msys environment with Unix style paths is invalidating an assertion. It is also possible that ui.slash=true is interfering. Whatever the cause it's worthy of a bug report at https://bz.mercurial-scm.org/enter_bug.cgi?component=fsmonitor. Facebook is eager to have more Watchman testing on Windows. So I suspect if you let them know this is blocking Mozilla deploying things that someone will pay attention :)
Flags: needinfo?(gps)
I did check whether ui.slash mattered last night and I got the same failure either way. Filed as upstream bug #5588.
Same as the last patch, just a slightly newer version of fsmonitor. Given that I'm pretty sure the fix for the issues in this bug are going to come from somewhere upstream, I think we can go ahead and land this as-is for now with a new bug for shipping it enabled by default when ready.
Attachment #8871551 - Attachment is obsolete: true
Attachment #8874992 - Flags: review?(gps)
I should probably note that the one change of significance from the prior patch is that I'm explicitly removing watchman.pdb during packaging now. It's nearly 30MB in size and added 3MB to the size of the installer by itself. If someone *really* wants it for some reason, they can always grab the zip archive from the mozilla-build repo and extract it from there.
Comment on attachment 8874992 [details] [diff] [review] update watchman and switch over to using fsmonitor Review of attachment 8874992 [details] [diff] [review]: ----------------------------------------------------------------- Looks good. Now we just need to get fsmonitor working...
Attachment #8874992 - Flags: review?(gps) → review+
The old version currently shipping in 2.2.0 happens to behave with fsmonitor, so I think what I'll do is leave the version we ship intact for now (with the other changes from this bug still being made) and leave fsmonitor off by default. But at least if people do want to enable it, they should be able to do so without things being completely broken. Then we can file a bug for shipping it enabled by default once the upstream issues get sorted out. Now that MozillaBuild is significantly easier to package than it used to be, shipping a newer version isn't as big of a deal at least.
Summary: Update watchman in MozillaBuild → Update MozillaBuild to use fsmonitor instead of hgwatchman (still disabled by default)
Pushed by ryanvm@gmail.com: https://hg.mozilla.org/mozilla-build/rev/fe50867d56bb Update MozillaBuild to use fsmonitor instead of hgwatchman (still disabled by default). r=gps
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Product: mozilla.org → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: