]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/web/community.itexi
Web: Update GSoc entry
[lilypond.git] / Documentation / web / community.itexi
1 @c -*- coding: utf-8; mode: texinfo; -*-
2 @ignore
3     Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
4
5     When revising a translation, copy the HEAD committish of the
6     version that you are working on.  For details, see the Contributors'
7     Guide, node Updating translation committishes..
8 @end ignore
9
10 @include included/acknowledge.itexi
11 @include included/authors.itexi
12 @include included/helpus.itexi
13
14 @node Community
15 @unnumbered Community
16
17 @divClass{link-headings}
18
19 @divClass{column-center-top}
20 @subheading Interacting with the community
21
22 @itemize
23
24 @item
25 @ref{Contact}: get help, discuss, and keep in touch!
26
27 @item
28 @ref{Tiny examples}: these are @emph{highly} recommended when
29 discussing LilyPond.
30
31 @item
32 @ref{Bug reports}: something went wrong.
33
34 @end itemize
35 @divEnd
36
37 @divClass{column-left-bottom}
38 @subheading Making LilyPond better
39
40 @itemize
41
42 @item
43 @ref{Help us}: your assistance is requested.
44
45 @item
46 @ref{Sponsoring}: financial contributions.
47
48 @item
49 @ref{Development}: for contributors and testers.
50
51 @item
52 @ref{Google Summer of Code}: ideas for Google Summer of Code (GSoC).
53
54 @item
55 @ref{Authors}: the people who made LilyPond what it is today.
56
57 @item
58 @ref{Acknowledgements}: projects and institutions that support LilyPond
59
60 @end itemize
61 @divEnd
62
63 @divClass{column-right-bottom}
64 @subheading Miscellaneous
65
66 @itemize
67
68 @item
69 @ref{Publications}: what we wrote, and have had written about us.
70
71 @item
72 @ref{Old news}: an archive.
73
74 @item
75 @ref{Attic}: announcements and changelogs from past versions.
76
77 @end itemize
78 @divEnd
79
80 @divEnd
81
82 @divClass{hide}
83 @menu
84 * Contact::
85 * Tiny examples::
86 * Bug reports::
87 * Help us::
88 * Sponsoring::
89 * Development::
90 * Google Summer of Code::
91 * Authors::
92 * Acknowledgements::
93 * Publications::
94 * Old news::
95 * Attic::
96 @end menu
97 @divEnd
98
99
100 @node Contact
101 @unnumberedsec Contact
102
103
104 @divClass{column-left-bottom}
105 @subheading User Discussions and Help
106
107 @subsubheading User mailing list: @code{lilypond-user@@gnu.org}
108
109 This mailing list is the main place for users to discuss and help
110 each other.
111
112 @quotation
113 @uref{http://lists.gnu.org/mailman/listinfo/lilypond-user,
114 lilypond-user subscribe and info}
115
116 @uref{http://lists.gnu.org/archive/html/lilypond-user/,
117 user archive1}
118 @uref{http://www.mail-archive.com/lilypond-user@@gnu.org/,
119 archive2}
120 @uref{http://dir.gmane.org/gmane.comp.gnu.lilypond.general,
121 archive3}
122
123 @uref{http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.general,
124 send to lilypond-user with gmane}
125 @end quotation
126
127 @warning{When asking questions, please use @ref{Tiny examples}!}
128
129 @subsubheading LilyPond Snippet Repository
130
131 The LilyPond Snippet Repository is a large collection of
132 user-submitted examples, which can freely be copied and used
133 in your own works.  See what other people have written,
134 and add your own!
135
136 @example
137 @uref{http://lsr.di.unimi.it}
138 @end example
139
140 Particularly instructive examples from LSR are included in our
141 official documentation, in @ref{Snippets}.
142
143
144 @subsubheading IRC
145
146 Some level of support is provided on our IRC channel,
147
148 @example
149 @uref{irc://irc.freenode.net/lilypond, #lilypond@@irc.freenode.net}
150 @end example
151
152 This channel has no public archive, so any question that may
153 be useful for others would better be posted to one of the mailing lists.
154
155 @html
156 <form action="http://webchat.freenode.net"
157       method="get"
158       name="f_lily_irc"
159   <label>irc name:
160     <input name="nick" type="text" size="15" value="">
161   </label>
162   <input name="channels" type="hidden" value="lilypond">
163   <input type="submit" value="Join #lilypond IRC Chat">
164 </form>
165
166 <script language="JavaScript" type="text/javascript">
167   var username = "web";
168   var lang = window.navigator.userLanguage ? window.navigator.userLanguage
169   : window.navigator.language;
170   username += '-' + lang.substr(0, 2);
171   username += '-' + navigator.appName.substr(0, 2);
172   username += navigator.appCodeName.replace (" ", "").substr(0, 2);
173   username += navigator.platform.replace (" ", "").replace("nux", "").replace("n32", "");
174   document.forms["f_lily_irc"].nick.value = username;
175 </script>
176 @end html
177
178 @subsubheading Other languages
179
180 @quotation
181 @uref{http://lists.gnu.org/mailman/listinfo/lilypond-es,
182 Spanish mailing list}
183
184 @uref{http://www.lilypondforum.de/,
185 German forum}
186
187 @uref{http://groups.google.com/group/lilypond-brasil,
188 Portuguese group}
189
190 @uref{http://lists.gnu.org/mailman/listinfo/lilypond-user-fr,
191 French mailing list}
192
193 @uref{http://www.lilypondforum.nl/,
194 Dutch forum}
195 @end quotation
196
197 @divEnd
198
199
200 @divClass{column-right-top}
201 @subheading Stay Informed
202
203 @subsubheading LilyPond Report
204
205 The easiest way to keep touch is by reading our community
206 newsletter, the LilyPond Report:
207
208 @example
209 @uref{http://news.lilynet.net}
210 @end example
211
212 @subsubheading Releases mailing list: @code{info-lilypond@@gnu.org}
213
214 This mailing list is a low-volume, read-only list which receives
215 notifications of new releases.
216
217 @quotation
218 @uref{http://lists.gnu.org/mailman/listinfo/info-lilypond,
219 info-lilypond subscribe and info}
220
221 @uref{http://lists.gnu.org/archive/html/info-lilypond/,
222 info archive1}
223 @uref{http://www.mail-archive.com/info-lilypond@@gnu.org/,
224 archive2}
225 @uref{http://dir.gmane.org/gmane.comp.gnu.lilypond.announce,
226 archive3}
227
228 @c don't include gmane posting here.  -gp
229 @end quotation
230
231
232 @divEnd
233
234
235 @divClass{column-right-bottom}
236 @subheading Developer Discussion
237
238 @subsubheading Developer mailing list: @code{lilypond-devel@@gnu.org}
239
240 Most developer discussion takes place on this list.  Patches
241 should be sent here.
242
243 @quotation
244 @uref{http://lists.gnu.org/mailman/listinfo/lilypond-devel,
245 lilypond-devel subscribe and info}
246
247 @uref{http://lists.gnu.org/archive/html/lilypond-devel/,
248 devel archive1}
249 @uref{http://www.mail-archive.com/lilypond-devel@@gnu.org/,
250 archive2}
251 @uref{http://dir.gmane.org/gmane.comp.gnu.lilypond.devel,
252 archive3}
253
254 @uref{http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.devel,
255 send to lilypond-devel with gmane}
256 @end quotation
257
258
259 @subsubheading Bug mailing list: @code{bug-lilypond@@gnu.org}
260
261 Bug-specific discussion takes place here.
262
263 @quotation
264 @uref{http://lists.gnu.org/mailman/listinfo/bug-lilypond,
265 bug-lilypond subscribe and info}
266
267 @uref{http://lists.gnu.org/archive/html/bug-lilypond/,
268 bug archive1}
269 @uref{http://www.mail-archive.com/bug-lilypond@@gnu.org/,
270 archive2}
271 @uref{http://dir.gmane.org/gmane.comp.gnu.lilypond.bugs,
272 archive3}
273
274 @c don't include gmane posting here.  -gp
275 @end quotation
276
277 @warning{Before sending a message to the bug list, please read our
278 guidelines for @ref{Bug reports}.}
279
280 @divEnd
281
282 @divClass{column-right-bottom}
283 @subheading Sensitive emails
284
285 Private matters should be sent to Graham Percival (project
286 manager), who will discuss it with those concerned.
287
288 @divEnd
289
290
291 @node Tiny examples
292 @unnumberedsec Tiny examples
293
294 @divClass{column-center-top}
295 @subheading What are @qq{Tiny examples}?
296
297 A tiny example is an example from which @strong{nothing} can be removed.
298 @divEnd
299
300 @divClass{column-left-bottom}
301 @subheading Why create them?
302
303 @divClass{keep-bullets}
304 @itemize
305
306 @item
307 The simpler the example is, the quicker potential helpers can
308 understand it and help you.
309
310 @item
311 A tiny example demonstrates that you have put effort towards
312 solving the problem yourself.  When people send huge portions of
313 input, it looks like they don't care if we help them or not.
314
315 @item
316 Creating a tiny example helps you to understand what is
317 happening.  Many false problem reports can be avoided by
318 attempting to create a tiny example; if you cannot replicate a
319 @qq{bug} in a tiny example, then the problem was probably an
320 insufficient understanding of LilyPond, not an actual bug!
321
322 @end itemize
323 @divEnd
324
325 @divEnd
326
327
328 @divClass{column-right-bottom}
329 @subheading How to create them?
330
331 @divClass{keep-bullets}
332 @itemize
333
334 @item
335 Include the @code{\version} number.
336
337 @item
338 Make it small!  Examples about spacing or page layout might
339 require many bars of music, but most issues can be reproduced
340 using less than a single measure.
341
342 @item
343 When trying to create an example, try commenting out @w{(@code{%}
344 or @code{%@{ @dots{} %@}})} sections of your file.  If you
345 can comment something while still demonstrating the main idea,
346 then remove the commented-material.
347
348 @item
349 Avoid using complicated notes, keys or time signatures, unless
350 the bug is about the behavior of those items.
351
352 @item
353 Do not use @code{\override} or @code{\set} commands unless the bug
354 is about those specific commands.
355
356 @item
357 Optionally, attach an image showing the desired graphical output.
358
359 @end itemize
360 @divEnd
361
362 @divEnd
363
364 @divClass{column-center-bottom}
365 @subheading How tiny should they be?
366
367 Is the code below a minimal example?
368
369 @example
370 \version "2.14.1"
371 \include "english.ly"
372
373 \score @{
374   \new Staff @{
375     \key d \major
376     \numericTimeSignature
377     \time 2/4
378     <cs' d'' b''>16 <cs' d'' b''>8.
379     %% Here: the tie on the D's looks funny
380     %% Too tall? Left-hand endpoint is not aligned with the B tie?
381     ~
382     <cs' d'' b''>8 [ <b d'' a''> ]
383   @}
384 @}
385 @end example
386
387 Well, it is not very big, but a truly minimal example is here:
388
389 @example
390 \version "2.14.1"
391 @{
392   % middle tie looks funny here:
393   <c' d'' b''>8. ~ <c' d'' b''>8
394 @}
395 @end example
396
397 Very few tiny examples exceed 10 lines of code -
398 quite often 4 lines are enough to demonstrate the problem!
399
400 @divEnd
401
402
403 @node Bug reports
404 @unnumberedsec Bug reports
405
406
407 @divClass{heading-center}
408 If you have input that results in a crash or wrong output,
409 then that is a bug.
410 @divEnd
411
412 @divClass{column-center-top}
413 @subheading Step 1: Known bugs
414
415 We may already know about this bug.  Check here:
416
417 @example
418 @uref{http://code.google.com/p/lilypond/issues/list}
419 @end example
420
421 @warning{Please @strong{DO NOT} add bug reports directly to the
422 bug tracker.  Once an issue has been added to the tracker, feel
423 free to add more information to that report.}
424
425 @divEnd
426
427
428 @divClass{column-left-bottom}
429 @subheading Step 2: Creating a bug report
430
431 If you have discovered a bug which is not listed,
432 please help us by creating a bug report.
433
434 @warning{We only accept reports in the form of
435 @ref{Tiny examples}.  We have very limited resources,
436 so any non-minimal example will be rejected.  Almost
437 every bug can be demonstrated in four notes or less!}
438
439 Here is an example of a good bug report:
440
441 @example
442 % Accidentals should be printed for only
443 % the first note in a tie, but this version
444 % prints flats on both notes.
445 \version "2.10.1"
446
447 \relative c'' @{
448  bes1 ~
449  bes1
450 @}
451 @end example
452
453 @divEnd
454
455 @divClass{column-right-bottom}
456 @subheading Step 3: Sending a bug report
457
458 Once you have verified that the issue is not already known and
459 created a bug report, please send it to us!
460
461 @divClass{keep-bullets}
462 @itemize
463
464 @item
465 If you are subscribed to the @uref{mailto:bug-lilypond@@gnu.org,
466 bug-lilypond@@gnu.org} mailing list, send an email like normal.
467
468 @item
469 If you are not subscribed, you can still post a bug report with
470 the
471 @uref{http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs,
472 gmane lilypond.bugs web interface}.
473
474 However, there is a strict @qq{no top-posting} check on the gmane
475 interface, which is often incorrectly triggered by lilypond files.
476 To avoid this, please add:
477
478 @example
479 > I'm not top posting.
480 @end example
481
482 @noindent
483 (you @emph{must} include the @code{>} ) to the top of your bug
484 report.
485
486 @end itemize
487 @divEnd
488 @divEnd
489
490 @divClass{column-center-bottom}
491 @subheading Step 4: Wait for a response
492
493 Once your bug report has been sent to the list, our Bug Squad will
494 examine it; they may ask you for more information.  You will be notified
495 when the report will be added to the bug tracker.  Please allow up to 4
496 days, as we have a limited number of volunteers for this task.
497
498 Once a bug has been added to the tracker, you can comment it to add
499 more information about it.
500 You may also mark the bug so that you automatically receive emails when
501 any activity on the bug occurs.  This requires you have a google account
502 login.
503 @divEnd
504
505 @divClass{column-center-bottom}
506 @subheading Optional help: show the desired behavior
507
508 Once an issue has been added to the tracker, it can be very
509 helpful if we can see the desired output.  Feel free to add input
510 code and/or images (possibly created with other tools) which
511 demonstrate what you think it should look like!
512
513 @divEnd
514
515
516
517 @node Help us
518 @unnumberedsec Help us
519
520 @divClass{column-center-top}
521 @helpusNeed
522
523 @divEnd
524
525 @divClass{column-left-top}
526 @divClass{keep-bullets}
527 @helpusSimple
528
529 @divEnd
530 @divEnd
531
532 @divClass{column-right-top}
533 @helpusAdvanced
534
535 @divEnd
536
537
538 @node Sponsoring
539 @unnumberedsec Sponsoring
540
541 @divClass{keep-bullets}
542 @divClass{column-left-top}
543 @subheading Bounties
544
545 In the past,
546
547 @itemize
548 @item some users have paid for new features
549 @item some developers have added new features for hire
550 @end itemize
551
552 The LilyPond project does not organize such efforts; we neither
553 endorse nor discourage such agreements.  Any contracts between
554 private individuals is the business of those individuals, not
555 ours.
556
557 @divEnd
558
559 @divClass{column-right-top}
560 @subheading Guidelines
561
562 Any user wanting to offer money in exchange for work should bear
563 in mind the following points:
564
565 @itemize
566 @item
567 LilyPond developers may advertise their services on the lilypond
568 email lists from time to time.
569
570 @item
571 Any agreements between private individuals should include the
572 normal precautions when conducting business: who pays, how much do
573 they pay, with what method of payment, and upon what set of
574 conditions.  We suggest that any ambiguity or uncertainty in these
575 questions should be resolved before any work begins.
576
577 @end itemize
578
579 @divEnd
580
581 @divClass{column-center-bottom}
582 @subheading Interested developers
583
584 Here is a list of people who have expressed an interest in
585 bounties.  Note that the amount of work done by individuals varies
586 quite a bit throughout the years.  We do not guarantee that this
587 list is up-to-date, nor do we guarantee that the people listed
588 here have any ability.  The only criteria is "XYZ asked to be
589 listed on this page".
590
591 Looking at the git history is a good way to determine who the most
592 active and experienced developers are.  Statistics up to version
593 @versionDevel{}:
594
595 @multitable @columnfractions .3 .3 .3
596 @item @uref{http://lilypond.org/~graham/gitstats-all/, overall history}
597 @tab @uref{http://lilypond.org/~graham/gitstats-1year/, past year}
598 @tab @uref{http://lilypond.org/~graham/gitstats-3months/, past three months}
599 @end multitable
600
601 Interested developers:
602 @table @asis
603 @item @email{dak@@gnu.org, David Kastrup}
604 Donations are required to let me continue my current fulltime work on
605 LilyPond.  I focus on user and programmer interface design, coherence,
606 implementation, simplification, documentation, and debugging.
607
608 @c Format
609 @c @item @email{name@@adress.domain, Name}
610 @c area of interest (256 chars max)
611
612 @end table
613
614 @divEnd
615 @divEnd
616
617
618 @node Development
619 @unnumberedsec Development
620
621 @divClass{heading-center}
622 @ifclear web_version
623   @heading Development for LilyPond @version
624 @end ifclear
625 @ifset web_version
626   @heading Development for LilyPond @versionDevel
627 @end ifset
628
629
630 @c we normally don't allow named references, but in this case
631 @c it's good to emphasize the "stable" part.  -gp
632 @warning{These are @emph{unstable development} versions.  If you
633 have the slightest doubt about how to use or install LilyPond, we
634 urge you to use the @ref{Download, stable Download}, and read the
635 @ref{Manuals, stable Manuals}.}
636
637 @divEnd
638
639 @divClass{column-center-top}
640 @subheading Release numbers
641
642 There are two sets of releases for LilyPond: stable releases, and
643 unstable development releases.  Stable versions have an
644 even-numbered @q{minor} version number (e.g., 2.8, 2.10, 2.12).
645 Development versions have an odd-numbered @q{minor} version number
646 (e.g., 2.7, 2.9, 2.11).
647
648 @divEnd
649
650
651 @divClass{column-left-top}
652 @subheading Download
653
654 Instructions for git and compiling are in the Contributor's Guide.
655
656 @quotation
657 @uref{http://git.sv.gnu.org/gitweb/?p=lilypond.git, lilypond git repository}
658 @end quotation
659
660 Documentation writers and testers will generally want to download
661 the latest binary:
662
663 @quotation
664
665 @downloadDevelLinuxNormal
666
667 @downloadDevelLinuxBig
668
669 @downloadDevelLinuxPPC
670
671 @downloadDevelFreeBSDNormal
672
673 @downloadDevelFreeBSDBig
674
675 @downloadDevelDarwinNormal
676
677 @downloadDevelDarwinPPC
678
679 @downloadDevelWindows
680
681 @downloadDevelSource
682
683 @end quotation
684
685 @divEnd
686
687
688 @divClass{column-right-top}
689 @subheading Contributor's Guide
690
691 LilyPond development is a fairly complicated matter.  In order to
692 help new contributors, and to keep the whole system (mostly)
693 stable, we have written a manual for development tasks.
694
695 @docLinksBare{Contributor's Guide, contributor,
696   @rcontribnamed{Top,Contributor's Guide},
697   @manualDevelContributorSplit,
698   @manualDevelContributorBig, 500 kB,
699   @manualDevelContributorPdf, 2.8 MB}
700
701 @divEnd
702
703
704 @divClass{column-center-top}
705 @subheading Regression tests
706
707 @divClass{keep-bullets}
708
709 @ifclear web_version
710
711 @itemize
712 @item
713 @uref{../../input/regression/collated-files.html, Regression tests}:
714 This release's regtests.
715 (@uref{../../input/regression/collated-files.pdf, pdf version})
716
717 @item
718 @uref{../../input/regression/musicxml/collated-files.html, MusicXML tests}:
719 This release's musicXML tests.
720 (@uref{../../input/regression/musicxml/collated-files.pdf, pdf version})
721
722 @item
723 @uref{../../input/regression/abc2ly/collated-files.html, abc2ly tests}:
724 This release's abc2ly tests.
725 (@uref{../../input/regression/abc2ly/collated-files.pdf, pdf version})
726
727 @item
728 @uref{../../input/regression/lilypond-book/collated-files.html, lilypond-book tests}:
729 This release's lilypond-book tests.
730 (@uref{../../input/regression/lilypond-book/collated-files.pdf, pdf version})
731 @end itemize
732
733 @end ifclear
734
735 @ifset web_version
736 @subsubheading Development version
737
738 @itemize
739 @item @regtestDevel (@regtestDevelPdf{})
740
741 @item @regtestDevelXml (@regtestDevelXmlPdf{})
742
743 @item @regtestDevelAbc (@regtestDevelAbcPdf{})
744
745 @item @regtestDevelLilypondBook (@regtestDevelLilypondBookPdf{})
746 @end itemize
747
748 @subsubheading Stable version
749
750 @itemize
751 @item @regtestStable (@regtestStablePdf{})
752
753 @item @regtestStableXml (@regtestStableXmlPdf{})
754
755 @item @regtestStableAbc (@regtestStableAbcPdf{})
756
757 @item @regtestStableLilypondBook (@regtestStableLilypondBookPdf{})
758 @end itemize
759 @end ifset
760
761
762 @subsubheading All versions
763
764 @itemize
765 @item @uref{http://lilypond.org/test, Comparisons between regression tests}
766
767 @item @uref{http://lilypond.org/download/binaries/test-output/,
768 Archive of all regression tests}
769
770 @end itemize
771
772 @divEnd
773 @divEnd
774
775
776
777 @divClass{column-center-bottom}
778 @subheading Manuals
779
780 @ifclear web_version
781 @warning{These manuals are for LilyPond @version{}; the latest
782 manuals can be found at @url{http://lilypond.org}}
783 @end ifclear
784
785 @divClass{normal-table}
786 @multitable @columnfractions .3 .3 .3
787 @headitem Introduction
788
789 @item
790 @docLinkSplit{Learning,learning,@manualDevelLearningSplit}
791 @tab
792 @docLinkBig{Learning,learning,@manualDevelLearningBig}
793 @tab
794 @docLinkPdf{Learning,learning,@manualDevelLearningPdf}
795
796 @item
797 @docLinkSplit{Glossary,music-glossary,@manualDevelGlossarySplit}
798 @tab
799 @docLinkBig{Glossary,music-glossary,@manualDevelGlossaryBig}
800 @tab
801 @docLinkPdf{Glossary,music-glossary,@manualDevelGlossaryPdf}
802
803 @item
804 @docLinkSplit{Essay,essay,@manualDevelEssaySplit}
805 @tab
806 @docLinkBig{Essay,essay,@manualDevelEssayBig}
807 @tab
808 @docLinkPdf{Essay,essay,@manualDevelEssayPdf}
809 @end multitable
810
811 @multitable @columnfractions .3 .3 .3
812 @headitem Regular
813
814 @item
815 @docLinkSplit{Notation,notation,@manualDevelNotationSplit}
816 @tab
817 @docLinkBig{Notation,notation,@manualDevelNotationBig}
818 @tab
819 @docLinkPdf{Notation,notation,@manualDevelNotationPdf}
820
821 @item
822 @docLinkSplit{Usage,usage,@manualDevelUsageSplit}
823 @tab
824 @docLinkBig{Usage,usage,@manualDevelUsageBig}
825 @tab
826 @docLinkPdf{Usage,usage,@manualDevelUsagePdf}
827
828 @item
829 @docLinkSplit{Snippets,snippets,@manualDevelSnippetsSplit}
830 @tab
831 @docLinkBig{Snippets,snippets,@manualDevelSnippetsBig}
832 @tab
833 @docLinkPdf{Snippets,snippets,@manualDevelSnippetsPdf}
834 @end multitable
835
836 @multitable @columnfractions .3 .3 .3
837 @headitem Infrequent
838
839 @item
840 @docLinkSplit{Web,web,@manualDevelWebSplit}
841 @tab
842 @docLinkBig{Web,web,@manualDevelWebBig}
843 @tab
844 @docLinkPdf{Web,web,@manualDevelWebPdf}
845
846 @item
847 @docLinkSplit{Changes,changes,@manualDevelChangesSplit}
848 @tab
849 @docLinkBig{Changes,changes,@manualDevelChangesBig}
850 @tab
851 @docLinkPdf{Changes,changes,@manualDevelChangesPdf}
852
853 @item
854 @docLinkSplit{Extending,extending,@manualDevelExtendingSplit}
855 @tab
856 @docLinkBig{Extending,extending,@manualDevelExtendingBig}
857 @tab
858 @docLinkPdf{Extending,extending,@manualDevelExtendingPdf}
859
860 @item
861 @docLinkSplit{Internals,internals,@manualDevelInternalsSplit}
862 @tab
863 @docLinkBig{Internals,internals,@manualDevelInternalsBig}
864 @tab
865 @docLinkPdf{Internals,internals,@manualDevelInternalsPdf}
866 @end multitable
867
868 @ifset web_version
869 @multitable @columnfractions .3
870 @headitem Downloadable
871
872 @item
873 @doctarballDevel
874 @end multitable
875 @end ifset
876
877
878 @divEnd
879 @divEnd
880
881
882
883
884 @node Google Summer of Code
885 @unnumberedsec Google Summer of Code
886
887 @divClass{column-center-top}
888 @subheading What is Google Summer of Code?
889
890 A global program run by Google that offers students stipends for working
891 on open source software projects during summer vacations.
892
893 It is an excellent opportunity to find new contributors, and encourage
894 students already participating in LilyPond development, to become more
895 involved.  One of our contributors was accepted in the 2012 program as
896 part of the @uref{http://www.gnu.org/, GNU project}; and we are always
897 looking for others to participate in future programs.
898
899 @divEnd
900
901 @divClass{column-center-bottom}
902 @subheading Our Ideas List
903
904 Below is a list of projects that were suggested for the GSoC 2012
905 students and is retained here as an inspiration for anyone
906 who is interested in developing LilyPond for future GSoC projects.
907
908 There are many more things that can be done to improve LilyPond and
909 members of the LilyPond development team are always willing to help
910 those who would like to tackle projects such as those listed below.
911
912 A full list of all the current open issues can be found
913 @uref{http://code.google.com/p/lilypond/issues/list, here}.
914
915 @subheading Grace notes
916
917 Fix problems with synchronization of grace notes.  Grace notes can
918 intefere with LilyPond's timing and cause odd effects, especially when
919 multiple staffs are used where some have grace notes and others don't.
920
921 @strong{Difficulty:} medium
922 @strong{Requirements:} C++, MIDI
923 @strong{Recommended:} familiarity with LilyPond internals
924 @strong{Mentor(s):} Mike Solomon, Carl Sorensen
925
926 @subheading MusicXML
927
928 Improving MusicXML import and export functions:
929
930 @divClass{keep-bullets}
931 @itemize
932
933 @item
934 Handle basic musical content export like the MIDI export (i.e. using
935 dedicated exporter classes, derived from the translator class).
936
937 @item
938 Build the XML tree of the basic musical content, add a connection from
939 music event to XML tag.
940
941 @item
942 Let all LilyPond engravers do their job.
943
944 @item
945 Link each output object (i.e. each stencil or group of stencils) to the
946 music cause (and thus to the XML tag in the XML tree).
947
948 @item
949 Add an XML output backend, which can then add layout information for
950 each output object to the XML tags.
951
952 @end itemize
953 @divEnd
954
955 @strong{Difficulty:} medium
956 @strong{Requirements:} MusicXML, Python, basic LilyPond knowledge
957 @strong{Mentor(s):} Reinhold Kainhofer, Mike Solomon
958
959 Familiarity with other scorewriters (for cross-testing) would also help.
960
961
962 @subheading Improve slurs and ties
963
964 The default curves of slurs and ties are often unsatisfactory. Ties
965 @q{broken} by clef or staff changes are not handled well.  The project
966 could include collecting and sorting examples of bad output, deciding on
967 the intended output and writing code to improve them.
968
969 @strong{Difficulty:} hard
970 @strong{Requirements:} C++, experience with writing heuristics
971 @strong{Recommended knowledge:} LilyPond knowledge, aesthetic sense
972 @strong{Mentor(s):} Mike Solomon
973
974 @subheading Adding variants of font glyphs
975
976 @divClass{keep-bullets}
977 @itemize
978
979 @item
980 Adding @q{on} and @q{between} staff-line variants.
981
982 @item
983 Shorter and narrower variants of some glyphs for example, accidentals.
984 Another, more specific example could be an ancient notation breve
985 notehead coming in two variants one with a small or big @q{hole} within
986 it.
987
988 @end itemize
989 @divEnd
990
991 @strong{Difficulty:} easy
992 @strong{Requirements:} MetaFont, C++, good eye for details
993 @strong{Recommended knowledge:} basic LilyPond knowledge
994 @strong{Mentor(s):} Werner Lemberg
995
996 @subheading Improve default beam positioning
997
998 For regular, cross-staff, broken and kneed beams.  Beaming should depend
999 on context and neighbor notes
1000 (see @uref{http://icking-music-archive.org/lists/sottisier/sottieng.pdf,
1001 section 2.2 here}).  If possible also reduce beaming-computation time.
1002
1003 @strong{Difficulty:} medium
1004 @strong{Requirements:} C++, experience with writing heuristics
1005 @strong{Recommended knowledge:} aesthetic sense
1006 @strong{Mentor(s):} Mike Solomon, Carl Sorensen
1007 @subheading Clean up various compilation warnings
1008
1009 @subheading Help improve compilation behavior
1010
1011 Automatic code analysis tools, like valgrind memory leak detection or
1012 callgrind code profilers, provide valuable information about possible
1013 flaws in our C++ code.  Cleaning up warnings would allow us to automate
1014 the rejection of any patch which introduced extra warnings.
1015
1016 @strong{Difficulty:} medium
1017 @strong{Requirements:} C++
1018 @strong{Mentor(s):} Joe Neeman, Reinhold Kainhofer
1019
1020 @divEnd
1021
1022
1023 @node Authors
1024 @unnumberedsec Authors
1025
1026 @divClass{column-left-top}
1027 @subheading Current Development Team
1028
1029 @divClass{keep-bullets}
1030 @developersCurrent
1031 @divEnd
1032 @divEnd
1033
1034 @divClass{column-right-top}
1035 @subheading Previous Development Team
1036
1037 @divClass{keep-bullets}
1038 @developersPrevious
1039 @divEnd
1040 @divEnd
1041
1042
1043 @divClass{column-center-top}
1044 @subheading Current Contributors
1045
1046 @divClass{keep-bullets}
1047 @subsubheading Programming
1048
1049 @coreCurrent
1050
1051 @subsubheading Font
1052
1053 @fontCurrent
1054
1055 @subsubheading Documentation
1056
1057 @docCurrent
1058
1059 @subsubheading Bug squad
1060
1061 @bugsquadCurrent
1062
1063 @subsubheading Support
1064
1065 @supportCurrent
1066
1067 @subsubheading Translation
1068
1069 @translationsCurrent
1070
1071 @divEnd
1072 @divEnd
1073
1074
1075 @divClass{column-center-bottom}
1076 @subheading Previous Contributors
1077
1078 @divClass{keep-bullets}
1079 @subsubheading Programming
1080
1081 @corePrevious
1082
1083 @subsubheading Font
1084
1085 @fontPrevious
1086
1087 @subsubheading Documentation
1088
1089 @docPrevious
1090
1091 @c    uncomment when we have any previous members -gp
1092 @c @subsubheading Bug squad
1093
1094 @c @bugsquadCurrent
1095
1096 @subsubheading Support
1097
1098 @supportPrevious
1099
1100 @subsubheading Translation
1101
1102 @translationsPrevious
1103
1104 @divEnd
1105 @divEnd
1106
1107 @node Acknowledgements
1108 @unnumberedsec Acknowledgements
1109
1110 @divClass{column-center-top}
1111 @subheading Acknowledgements
1112
1113 @divClass{keep-bullets}
1114 @acknowledgementsCurrent
1115 @divEnd
1116 @divEnd
1117
1118
1119 @node Publications
1120 @unnumberedsec Publications
1121
1122 @divClass{column-center-top}
1123 @subheading What we wrote about LilyPond
1124
1125 @divClass{keep-bullets}
1126
1127 @include we-wrote.itexi
1128
1129 @divEnd
1130 @divEnd
1131
1132 @divClass{column-center-bottom}
1133 @subheading What people did with LilyPond
1134
1135 @divClass{keep-bullets}
1136
1137 @include others-did.itexi
1138
1139 @divEnd
1140 @divEnd
1141
1142 @contactUsAbout{academic papers}
1143
1144
1145 @node Old news
1146 @unnumberedsec Old news
1147
1148 @divClass{heading-center}
1149 @warning{Many old announcements and changelogs can be found in
1150 the @ref{Attic}}
1151 @divEnd
1152
1153 @include web/news-front.itexi
1154
1155 @include web/news.itexi
1156
1157
1158 @node Attic
1159 @unnumberedsec Attic
1160
1161 @divClass{column-center-top}
1162 @subheading Announcements
1163
1164 Announcements and news by version:
1165 @uref{http://lilypond.org/doc/v2.16/Documentation/web/index#Lilypond-2_002e16_002e0-released_0021-August-24_002c-2012-1,v2.16},
1166 @uref{http://lilypond.org/doc/v2.14/Documentation/web/index#LilyPond-2_002e14_002e0-released_0021-June-6_002c-2011,v2.14},
1167 @miscLink{announce-v2.12,v2.12},
1168 @miscLink{announce-v2.10,v2.10},
1169 @miscLink{announce-v2.8,v2.8},
1170 @miscLink{announce-v2.6,v2.6},
1171 @miscLink{announce-v2.4,v2.4},
1172 @miscLink{announce-v2.2,v2.2},
1173 @miscLink{announce-v2.0,v2.0},
1174 @miscLink{ANNOUNCE-1.2,v1.2},
1175 @miscLink{ANNOUNCE-1.0,v1.0},
1176 @miscLink{ANNOUNCE-0.1,v0.1}
1177
1178 Descriptive list of changes by version:
1179 @uref{http://lilypond.org/doc/v2.16/Documentation/changes/index.html,v2.16},
1180 @uref{http://lilypond.org/doc/v2.14/Documentation/changes/index.html,v2.14},
1181 @uref{http://lilypond.org/doc/v2.12/Documentation/topdocs/NEWS,v2.12},
1182 @uref{http://lilypond.org/doc/v2.10/Documentation/topdocs/NEWS,v2.10},
1183 @uref{http://lilypond.org/doc/v2.8/Documentation/topdocs/NEWS,v2.8},
1184 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS,v2.6},
1185 @uref{http://lilypond.org/doc/v2.4/Documentation/topdocs/out-www/NEWS,v2.4},
1186 @uref{http://lilypond.org/doc/v2.2/Documentation/topdocs/out-www/NEWS,v2.2},
1187 @uref{http://lilypond.org/doc/v2.0/Documentation/topdocs/out-www/NEWS,v2.0},
1188 @uref{http://lilypond.org/doc/v1.8/Documentation/topdocs/out-www/NEWS,v1.8},
1189 @uref{http://lilypond.org/doc/v1.6/Documentation/out-www/NEWS,v1.6},
1190 @miscLink{NEWS-1.4,v1.4},
1191 @miscLink{NEWS-1.2,v1.2}
1192
1193 @divEnd
1194
1195 @divClass{column-center-bottom}
1196 @subheading Thanks
1197
1198 Thanks to developers, contributors, bug hunters and suggestions for
1199 @miscLink{THANKS-2.16,v2.16},
1200 @miscLink{THANKS-2.14,v2.14},
1201 @miscLink{THANKS-2.12,v2.12},
1202 @miscLink{THANKS-2.10,v2.10},
1203 @miscLink{THANKS-2.8,v2.8},
1204 @miscLink{THANKS-2.6,v2.6},
1205 @miscLink{THANKS-2.4,v2.4},
1206 @miscLink{THANKS-2.2,v2.2},
1207 @miscLink{THANKS-2.0,v2.0},
1208 @miscLink{THANKS-1.8,v1.8}
1209
1210 @divEnd
1211
1212 @divClass{column-center-bottom}
1213 @subheading Changelogs
1214
1215 Developers' changelogs by version:
1216 @miscLink{ChangeLog-2.10,v2.10},
1217 @miscLink{ChangeLog-2.3,v2.3},
1218 @miscLink{ChangeLog-2.1,v2.1},
1219 @miscLink{ChangeLog-1.5,v1.5 (1)},
1220 @miscLink{CHANGES-1.5,v1.5 (2)},
1221 @miscLink{CHANGES-1.4,v1.4},
1222 @miscLink{CHANGES-1.3,v1.3},
1223 @miscLink{CHANGES-1.2,v1.2},
1224 @miscLink{CHANGES-1.1,v1.1},
1225 @miscLink{CHANGES-1.0,v1.0},
1226 @miscLink{CHANGES-0.1,v0.1},
1227 @miscLink{CHANGES-0.0,v0.0}
1228
1229 @divEnd