3 PATCHES - track and distribute your code changes
7 This page documents how to distribute your changes to GNU lilypond
8 (or in fact any other StepMake package).
12 Distributing a change normally goes like this:
15 it()make your fix/add your code
16 it()Add changes to NEWS, and add yourself to Documentation/AUTHORS.yo
18 it()e-mail your patch to one of the mailing lists
19 gnu-music-discuss@gnu.org or bug-gnu-music@gnu.org
22 nsect(GENERATING A PATCH)
24 In file(VERSION), set MY_PATCH_LEVEL:
32 In file(NEWS), enter a summary of changes:
40 Then, from the top of Lily's source tree, type
46 which leaves your patch as file(./lilypond-0.1.73.jcn1.diff).
48 If you didn't configure Lily using --srcdir, you can do:
53 tar-ball: ../patches/lilypond-0.1.73.jcn1.gz
54 patch: ../patches/lilypond-0.1.73.jcn1.gz
55 updeet: ../test/updeet
60 For creating a patch you need
63 it()All items mentioned in file(INSTALL). You're not going to send a patch
64 that you haven't even built, right?
66 it()Python (version 1.5 or newer).
67 You can of course make a patch by hand, which would go something like:
72 diff -urN lilypond-0.1.73 lilypond-0.1.73.jcn1 > lilypond-0.1.73.jcn1
75 but there are handy python scripts available. If you're doing development,
76 you'll need Python for other LilyPond scripts anyway.
78 it()The Lily directory structure, which looks like:
80 includefile(../../stepmake/Documentation/layout.yo)
83 nsect(APPLYING PATCHES)
85 If you're following LilyPond development regularly, you probably want to
86 download just the patch for each subsequent release.
87 After downloading the patch (into the patches directory, of course), simply
91 gzip -dc ../patches/lilypond-0.1.74.diff.gz | patch -p1 -E
94 and don't forget to make automatically generated files:
97 autoconf footnote(patches don't include automatically generated files,
98 i.e. file(configure) and files generated by file(configure).)
105 If you're not very quick with sending your patch, there's a good chance
106 that an new release of LilyPond comes available. In such a case (and
107 sometimes for other unkown reasons :-), the maintainer will probably ask
108 you to make a new patch against the latest release.
109 Your best bet is to download the latest release, and apply your patch
110 against this new source tree:
114 gzip -dc ../patches/lilypond-0.1.73.jcn1.diff.gz | patch -p1 -E
119 Then, make a patch as shown above.
123 file(stepmake/INSTALL.txt)
127 nemail(Han-Wen Nienhuys)(hanwen@cs.uu.nl)
129 Just keep on sending those patches!