3 PATCHES - track and distribute your code changes
7 This page documents how to distribute your changes to GNU LilyPond
11 Distributing a change normally goes like this:
17 make your fix/add your code
25 e-mail your patch to one of the mailing lists
26 gnu-music-discuss@gnu.org or bug-gnu-music@gnu.org
27 (or if you're a bit shy, to the maintainer).
31 =head1 GENERATING A PATCH
33 In F<VERSION>, set TOPLEVEL_MY_PATCH_LEVEL:
37 TOPLEVEL_MY_PATCH_LEVEL = jcn1
39 In F<NEWS>, enter a summary of changes:
45 Then, from the top of Lily's source tree, type
49 which leaves your patch as F<./patch-0.1.48.jcn1>.
51 If you didn't configure Lily using --srcdir, you can do:
55 tar-ball: ../patches/patch-0.1.48.jcn1.gz
56 patch: ../patches/patch-0.1.48.jcn1.gz
57 updeet: ../test/updeet
61 For creating a patch you need
67 All items mentioned in F<INSTALL>. You're not going to send a patch
68 that you haven't even built, right?
76 Python (version 1.4 or newer).
77 You can of course make a patch by hand, which would go something like:
81 diff -urN lilypond-0.1.48 lilypond-0.1.48.jcn1 > patch-0.1.48.jcn1
83 but there are handy python scripts available. If you're doing development,
84 you'll need Python for other LilyPond scripts anyway.
88 The Lily directory structure, which looks like:
97 =head1 APPLYING PATCHES
99 If you're following LilyPond development regularly, you probably want to
100 download just the patch for each subsequent release.
101 After downloading the patch (into the patches directory, of course), simply
104 gzip -dc ../patches/patch-0.1.49.gz | patch -p1 -E
106 and don't forget to make automatically generated files:
113 If you're not very quick with sending your patch, there's a good chance
114 that an new release of LilyPond comes available. In such a case (and
115 sometimes for other unkown reasons :-), the maintainer will probably ask
116 you to make a new patch against the latest release.
117 Your best bet is to download the latest release, and apply your patch
118 against this new source tree:
121 gzip -dc ../patches/patch-0.1.48.jcn1.gz | patch -p1 -E
125 Then, make a patch as shown above.
127 1) patches don't include automatically generated files, i.e. F<configure>
128 and files generated by F<configure>.
132 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
134 Just keep on sending those patches!