| [ann] |mach watch| -- Incremental front-end builds with filesystem watching | Nicholas Alexander | 11/02/18 19:43 | Hello Firefox front-end developers! Long before Austin, Brian Grinstead and I did some work on improving the Firefox front-end developer workflow. We started with a lightweight filesystem watcher called |mach watch| to incrementally run |mach build faster|. The first bits of that work landed [1] [2] but there were some issues around purging startup caches [3] [4] that prevented us publicizing it widely. I think I've addressed those issues now, so we're ready for wider usage! Bare-bones instructions are at Basically, run |mach watch| in one terminal, run |mach run| in
another, and use the Quick Restart hot-key to test your editor changes
quickly. I'm currently working on incorporating |mach watch| into |mach run| and adding a Web Socket server to |mach watch| [5]. That will let us immediately refresh browser CSS in a running browser, and also allow us to reload in-content pages like about: pages. This functionality will mimic the webpack watcher (but does not use any of the same implementation, sadly). After that, the sky is the limit: anything you might like to do with a bidirectional communication channel between the build system and development environment, and the browser under development, could be possible. Thanks to Brian for browser integration, and to Dave Townsend and Myk Melez for helpful conversations; to many in the Firefox front-end team and devtools team for early feedback; and to Greg Szorc for reviewing build system patches. Best, Nick |
| Re: [ann] |mach watch| -- Incremental front-end builds with filesystem watching | Matt N. | 11/02/18 22:00 | Hey Nick, this will be especially useful on Windows where symlinks aren't used in the obj. dir. (IIUC)! The MDN page says that this requires an artifact build. What's the technical reason for that and are were considering making it work for changes supported by `mach build faster` in non-artifact builds? Cheers, Matthew N. (:MattN) _______________________________________________ |
| Re: [ann] |mach watch| -- Incremental front-end builds with filesystem watching | Nihanth Subramanya | 12/02/18 08:37 | This is *awesome*, thanks for your work!
|
| Re: [ann] |mach watch| -- Incremental front-end builds with filesystem watching | Nicholas Alexander | 13/02/18 08:53 | Hi MattN,
On Sun, Feb 11, 2018 at 10:00 PM, Matthew N. <Ma...@mozilla.com> wrote: Correct!
There is no technical reason for this; it was just done to prevent some confusion. My concern is that it can be difficult to know that you need a |mach build faster| already in artifact builds, and even harder to know that you need a |mach build| in non-artifact builds. I was considering making it |mach watch faster| so that it would make sense in the future to |mach watch| (everything). If it would be helpful to use this for non-artifact builds, we can easily unlock that. Best, Nick |
| Re: [ann] |mach watch| -- Incremental front-end builds with filesystem watching | Brian Grinstead | 13/02/18 09:29 | FWIW this is the second request we’ve had to support non-artifact builds (see also Bug 1437712). > _______________________________________________ |
| Re: [ann] |mach watch| -- Incremental front-end builds with filesystem watching | Brian Grinstead | 13/02/18 09:30 | Correction: Bug 1391106. |