[ << Introduction to contributing ] | [Top][Contents] | [ Quick start >> ] |
[ < Overview of work flow ] | [ Up : Introduction to contributing ] | [ Mentors > ] |
1.3 Summary for experienced developers
If you are already familiar with typical open-source tools, here’s what you need to know:
- ‘official’ source repository:
hosted by GNU Savannah
https://git.savannah.gnu.org/gitweb/?p=lilypond.git
- development platform:
hosted by GitLab; also includes the issue tracker (see Issues)
https://gitlab.com/lilypond/lilypond/
- environment variables: many maintenance scripts, and many instructions in this guide rely on predefined Environment variables.
- mailing lists: given on Contact.
- Git branches:
-
master
: always base your work from this branch, but never push directly to it. Instead, use GitLab to merge changes after they have passed automatic testing (see below). -
translation
: Translators should base their work on this branch only and push any translation patches directly to it as well. -
dev/foo
: feel free to push any new branch name underdev/
.
-
- regression tests:
also known as “regtests”. A collection of more than a thousand
.ly
files that are used to track LilyPond’s engraving output between released stable and unstable versions as well as checked for all patches submitted for testing.If a patch introduces any unintentional changes to any of the regtests it is very likely it will be rejected (to be fixed) – always make sure that, if you expect any regression test changes, that they are explained clearly as part of the patch description when submitting for testing. For more information see Regression tests.
- reviews:
after finishing work on a patch or branch:
- Commit the changes and create a merge request. More information on this can be found in the section Uploading a patch for review.
-
Patches are generally tested within 24 hours of submission. Once
it has passed the basic tests –
make check
,make
,make doc
– the tracker will be updated and the patch’s status will change toPatch::review
for other developers to examine. -
Every third day, the “Patch Meister” will examine all merge requests
currently under review, looking for any comments by other developers.
Depending on what has been posted, the patch will be either; “moved on”
to the next patch status (
Patch::countdown
); set back toPatch::needs_work
; or if more discussion is needed, left atPatch::review
. In all cases the merge request will be updated by the Patch Meister accordingly. -
Once another three days have passed, any patch that has been given
Patch::countdown
status will be changed toPatch::push
, the merge request is updated, and the developer can now rebase and merge to themaster
branch (or ask one of the other developers to merge it for you).
Advanced note: This process does means that most patches will take about a week before finally being merged into
master
. With the limited resources for reviewing patches available and a history of unintended breakages in themaster
branch (from patches that have not had time to be reviewed properly), this is the best compromise we have found.
[ << Introduction to contributing ] | [Top][Contents] | [ Quick start >> ] |
[ < Overview of work flow ] | [ Up : Introduction to contributing ] | [ Mentors > ] |