7
edits
Manishearth (talk | contribs) (+inotify idea, move from http://devs.mozillaindia.org/gsoc2014/) |
|||
Line 430: | Line 430: | ||
* [https://docs.google.com/document/d/1wn_MNzW7qeipU9f6Gp5mkNOo0dV6ja1Sb3suNdaDM2s/edit?usp=sharing Documentation of Project] | * [https://docs.google.com/document/d/1wn_MNzW7qeipU9f6Gp5mkNOo0dV6ja1Sb3suNdaDM2s/edit?usp=sharing Documentation of Project] | ||
|- | |- | ||
|} | |||
== Build system == | |||
{| class="standard-table" border="1" style="border-collapse: collapse" | |||
|- | |||
! Title | |||
! Details | |||
! Skills Needed | |||
! Reporter | |||
! Mentor(s) | |||
! Comments | |||
|- | |||
|- | |||
| Inotify/watchman daemon for mach | |||
| '''Issues to be solved''' | |||
* <code>./mach build</code> is slow | |||
* <code>hg qref</code> is slow | |||
* <code>./mach build</code> does not always work when applied to a single file for incremental. Some js/xul files need a build of the folder or parent folder. | |||
Using inotify or watchman, keep track of the files being changed in the source dirs. This can be done in two ways: | |||
Directly integrate it with mach and provide it with a mode where it reads the last-updated files from a log of the daemon. Possibly provide a separate but similar system for qref | |||
Or, integrate it with qref (some [https://bitbucket.org/facebook/hgwatchman partial] [http://mercurial.selenic.com/wiki/InotifyExtension solutions] for this already exist), possibly as a Mercurial extension. Now, make hg read the files to be changed from the active patch. This only deals with changes being added, if a patch is popped or a change is removed from a patch, there needs to be a mechanism to notice this as well. | |||
This will also require the improvement of mach so that it knows when to build a file and when to build a folder. Generally js and xul builds have to be done at the folder level. | |||
Additional speed and usability improvements to the patching system can be done as well using this. | |||
'''Benefit''' | |||
Faster patching, building, and testing, thus saving time. | |||
Original idea credit: @ckitching | |||
| make / python / familiarity with mozilla (firefox, mainly) codebase | |||
| {{mozillian|Manishearth|Manishearth}} | |||
| {{mozillian|Debloper|Soumya Deb}} | |||
| | |||
|} | |} | ||
edits