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

RESOLVED FIXED

Status

RESOLVED FIXED
2 years ago
a year ago

People

(Reporter: RyanVM, Assigned: RyanVM)

Tracking

Details

Attachments

(1 attachment, 1 obsolete attachment)

(Assignee)

Description

2 years ago
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.
(Assignee)

Comment 1

2 years ago
Created attachment 8871551 [details] [diff] [review]
update watchman and switch over to using fsmonitor

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 2

2 years ago
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+
(Assignee)

Comment 3

2 years ago
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)
(Assignee)

Comment 4

2 years ago
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.
(Assignee)

Comment 5

2 years ago
If you want to mess around with it locally, here's an up-to-date test build:
https://drive.google.com/open?id=0BxocUovXDf0iYnF5Y0ltSURIdGc

Comment 6

2 years ago
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)
(Assignee)

Comment 7

2 years ago
I did check whether ui.slash mattered last night and I got the same failure either way.

Filed as upstream bug #5588.
(Assignee)

Comment 8

2 years ago
Created attachment 8874992 [details] [diff] [review]
update watchman and switch over to using fsmonitor

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)
(Assignee)

Comment 9

2 years ago
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+
(Assignee)

Comment 11

2 years ago
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)

Comment 12

a year ago
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
Last Resolved: a year ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.