Closed Bug 1963477 Opened 23 days ago Closed 21 days ago

Enable fsmonitor/watchman during `./mach vcs-setup`

Categories

(Firefox Build System :: Mach Core, enhancement, P2)

enhancement

Tracking

(firefox140 fixed)

RESOLVED FIXED
140 Branch
Tracking Status
firefox140 --- fixed

People

(Reporter: ahochheiden, Assigned: ahochheiden)

References

Details

Attachments

(9 files)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review

Currently only the bootstrap.py script adds the watchman hook. The instructions we sent out for the git changeover were to do a raw git clone https://github.com/mozilla-firefox/firefox.git, so all the additional things done in the standalone bootstrap script were unintentionally circumvented.

While we're doing this, we can migrate away from watchman on Windows/macOS. The built-in fsmonitor on git version 2.37 or higher is better than using the watchman hook. As such, let's bump the minimum git version to 2.37, setup fsmonitor on Windows and macOS, and add the watchman hook for linux users in ./mach vcs-setup.

https://github.blog/open-source/git/highlights-from-git-2-37

The fsmonitor that's built-in for git 2.37+ on Windows/macOS is
superior to using watchman with a hook. As such, we should recommended
this as the minimum version, and automatically configure fsmonitor in a
subsequent patch.

This check is unnecessary now that the minimum required git is 2.37.

  • fscache is only supported on Windows.
  • The built-in fsmonitor is superior to the Watchman hook, but is only supported on Windows/macOS.
  • Linux still requires watchman (and the sample hook script) to get fsmonitor-style speedups.

This is no longer necessary, as this is now handled entirely by ./mach vcs-setup.

Pushed by ahochheiden@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/95fe04731cdb Bump MINIMUM_RECOMMENDED_GIT_VERSION to 2.37+ r=sheehan https://hg.mozilla.org/integration/autoland/rev/6f5c43099ee0 Make the `MINIMUM_GIT_VERSION` a hard requirement in `bootstrap.py:configure_git` r=sheehan https://hg.mozilla.org/integration/autoland/rev/e72997c9d887 Remove `git` version check for `core.untrackedCache` setting r=sheehan https://hg.mozilla.org/integration/autoland/rev/8df0e499afc4 Add per-OS git filesystem performance config to `./mach vcs-setup` r=sheehan https://hg.mozilla.org/integration/autoland/rev/7c36158c954d Remove `watchman` hook setup from standalone `bootstrap.py` script r=sheehan https://hg.mozilla.org/integration/autoland/rev/44c752305a21 Only do `git-cinnabar` checks on `git-cinnabar` repos r=sheehan https://hg.mozilla.org/integration/autoland/rev/9f42bb12acde Add logging output for `configure_git` r=sheehan
Blocks: 1963756
Attachment #9484834 - Attachment description: Bug 1963477 - Minor adjustments to function signatures regarding `git`/`git-cinnabar` r?#build → Bug 1963477 - Minor adjustments to `mozboot/bootstrap.py` regarding `git`/`git-cinnabar` r?#build
Regressions: 1964169
Pushed by ahochheiden@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/f9fbaaab98e2 Update text for `CONFIGURE_GIT` to remove the mention of `git-cinnabar` r=firefox-build-system-reviewers,glandium
Pushed by ahochheiden@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/6d47729c846d Minor adjustments to `mozboot/bootstrap.py` regarding `git`/`git-cinnabar` r=firefox-build-system-reviewers,glandium
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: