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
47 which rolls the tarball file(../releases/lilypond-0.1.73.tar.gz)
48 and leaves your patch as file(./lilypond-0.1.73.jcn1.diff).
49 footnote('Make diff' generates a patch between two tarballs. For
50 more info type 'make diff help=='. We assume that there is a tarball
51 file(lilypond-0.1.73.tar.gz) in the directory file(../releases).
54 If you didn't configure Lily using --srcdir, you can do:
59 tar-ball: ../patches/lilypond-0.1.73.jcn1.gz
60 patch: ../patches/lilypond-0.1.73.jcn1.gz
61 updeet: ../test/updeet
66 For creating a patch you need
69 it()All items mentioned in file(INSTALL). You're not going to send a patch
70 that you haven't even built, right?
72 it()Python (version 1.5 or newer).
73 You can of course make a patch by hand, which would go something like:
78 diff -urN lilypond-0.1.73 lilypond-0.1.73.jcn1 > lilypond-0.1.73.jcn1
81 but there are handy python scripts available. If you're doing development,
82 you'll need Python for other LilyPond scripts anyway.
84 it()The Lily directory structure, which looks like:
86 includefile(../../stepmake/Documentation/layout.yo)
89 nsect(APPLYING PATCHES)
91 If you're following LilyPond development regularly, you probably want to
92 download just the patch for each subsequent release.
93 After downloading the patch (into the patches directory, of course), simply
97 gzip -dc ../patches/lilypond-0.1.74.diff.gz | patch -p1 -E
100 and don't forget to make automatically generated files:
103 autoconf footnote(patches don't include automatically generated files,
104 i.e. file(configure) and files generated by file(configure).)
111 If you're not very quick with sending your patch, there's a good chance
112 that an new release of LilyPond comes available. In such a case (and
113 sometimes for other unkown reasons :-), the maintainer will probably ask
114 you to make a new patch against the latest release.
115 Your best bet is to download the latest release, and apply your patch
116 against this new source tree:
120 gzip -dc ../patches/lilypond-0.1.73.jcn1.diff.gz | patch -p1 -E
125 Then, make a patch as shown above.
129 file(stepmake/INSTALL.txt)
133 nemail(Han-Wen Nienhuys)(hanwen@cs.uu.nl)
135 Just keep on sending those patches!