lilypond-0.1.58
[lilypond.git] / Documentation / PATCHES.pod
blob7fbc7480c0c6b2c9d76cfaa9f0a5e0e472e276d5
1 =head1 NAME
3 PATCHES - track and distribute your code changes
5 =head1 DESCRIPTION
7 This page documents how to distribute your changes to GNU LilyPond
9 =head1 ABSTRACT
11 Distributing a change normally goes like this:
13 =over 5
15 =item *
17 make your fix/add your code 
19 =item *
21 generate a patch, 
23 =item *
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).
29 =back
31 =head1 GENERATING A PATCH
33 In F<VERSION>, set TOPLEVEL_MY_PATCH_LEVEL:
35     VERSION:
36         ...
37         TOPLEVEL_MY_PATCH_LEVEL = jcn1
39 In F<NEWS>, enter a summary of changes:
41     NEWS:
42         pl 0.1.48.jcn1
43                 - added PATCHES.pod
45 Then, from the top of Lily's source tree, type
47     make-patch
49 which leaves your patch as F<./patch-0.1.48.jcn1>.
51 If you didn't configure Lily using --srcdir, you can do:
53     release
55     tar-ball: ../patches/patch-0.1.48.jcn1.gz
56     patch: ../patches/patch-0.1.48.jcn1.gz
57     updeet: ../test/updeet
59 =head1 PREREQUISITES
61 For creating a patch you need
63 =over 5
65 =item *
67 All items mentioned in F<INSTALL>.  You're not going to send a patch
68 that you haven't even built, right?
70 =item *
72 GNU Diff
74 =item *
76 Python (version 1.4 or newer).  
77 You can of course make a patch by hand, which would go something like:
79     make distclean
80     cd ..
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.
86 =item *
88 The Lily directory structure, which looks like:
90     lilypond-0.1.48/
91     patches/
92     releases/
93     test/
95 =back
96         
97 =head1 SYNCHRONISE
99 If you're not very quick with sending your patch, there's a good chance
100 that an new release of LilyPond comes available.  In such a case (and
101 sometimes for other unkown reasons :-), the maintainer will probably ask
102 you to make a new patch against the latest release.
103 Your best bet is to download the latest release, and apply your patch
104 against this new source tree:
106     cd lilypond-0.1.49
107     zpatch -p0 -E < ../patches/patch-0.1.48.jcn1.gz
109 Then, make a patch as shown above.
111 =head1 MAINTAINER
113 Han-Wen Nienhuys <hanwen@cs.ruu.nl>
115 Just keep on sending those patches!