]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/contributor/introduction.itexi
Doc: CG intro -- mention lily-git.
[lilypond.git] / Documentation / contributor / introduction.itexi
1 @c -*- coding: us-ascii; mode: texinfo; -*-
2
3 @node Introduction to contributing
4 @chapter Introduction to contributing
5
6
7 @menu
8 * Overview of tasks::
9 * For unix developers::
10 * For other contributors::
11 @end menu
12
13
14 @node Overview of tasks
15 @section Overview of tasks
16
17
18 FIXME: The intro should contain the "help us" material from web/,
19 quite possibly as the very first thing.  This requires having a
20 macro for it, which depends on issue 939.
21
22
23 @node For unix developers
24 @section For unix developers
25
26
27 To download the LilyPond Git repository:
28
29 @example
30 git clone git://git.sv.gnu.org/lilypond.git
31 @end example
32
33 Documentation is built using Texinfo.  Subscribe to the
34 developers' mailing list at
35 @uref{http://lists.gnu.org/mailman/listinfo/lilypond-devel} and
36 send well-formed Git patches to
37 @uref{mailto:lilypond-devel@@gnu.org} for discussion.
38
39
40 @node For other contributors
41 @section For other contributors
42
43
44 The LilyPond source code is maintained as a Git repository, which
45 contains:
46
47 @itemize
48 @item
49 all of the source files needed to build LilyPond, and
50
51 @item
52 a record of the entire history of every change made to every file
53 since the program was born.
54 @end itemize
55
56 The @q{official} LilyPond Git repository is hosted by the GNU
57 Savannah software forge at @uref{http://git.sv.gnu.org}.
58 Although, since Git uses a @emph{distributed} model, technically
59 there is no central repository.  Instead, each contributor keeps a
60 complete copy of the entire repository (about 116M).
61
62 Changes made within one contributor's copy of the repository can
63 be shared with other contributors using @emph{patches}.  A patch
64 is a simple text file generated by the @code{git} program that
65 indicates what changes have been made (using a special format).
66 If a contributor's patch is approved for inclusion (usually
67 through the mailing list), someone on the current development team
68 will @emph{push} the patch to the official repository.
69
70 @emph{Compiling} (@q{building}) LilyPond allows developers to see
71 how changes to the source code affect the program itself.
72 Compiling is also needed to package the program for specific
73 operating systems or distributions.  LilyPond can be compiled from
74 a local Git repository (for developers), or from a downloaded
75 tarball (for packagers).  Compiling LilyPond is a rather involved
76 process, and most contributor tasks do not require it.
77
78 Git is a complex and powerful tool, but tends to be confusing at
79 first, particularly for users not familiar with the command line
80 and/or version control systems.  Contributors who don't want to
81 deal with Git directly are encouraged to use the
82 @command{lily-git} graphical user interface instead.
83