Changes

Jump to: navigation, search

Community:SummerOfCode14:Brainstorming

1,729 bytes added, 09:24, 26 February 2014
+inotify idea, move from http://devs.mozillaindia.org/gsoc2014/
* [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}}
|
|}
7
edits

Navigation menu