]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/contributor/administration.itexi
Update bug squad rota
[lilypond.git] / Documentation / contributor / administration.itexi
index 515763c3523758d3da92ed22d8d6a4f059082533..21fb76d2b7a555563cb5c5e23e3b420ebf2a8d98 100644 (file)
@@ -8,6 +8,7 @@ don't fit anywhere else.
 @menu
 * Meta-policy for this document::
 * Meisters::
+* Patchy::
 * Administrative mailing list::
 * Grand Organization Project (GOP)::
 * Grand LilyPond Input Syntax Standardization (GLISS)::
@@ -90,7 +91,7 @@ Bug Meister: trains new Bug Squad volunteers, organizes who works
 on which part of their job, checks to make sure that everything is
 running smoothly, and has final say on our policy for Issues.
 
-Currently: Phil
+Currently: Colin H
 
 @item
 Doc Meister: trains new doc editors/writers, organizes who works
@@ -115,17 +116,132 @@ they've had some initial review on the Frog list, pesters the
 @w{@code{-devel}} community into actually reviewing said patches, and
 finally pushes the patches once they're accepted.  This person is
 @emph{not} responsible for training new programmers, because that
-would be far too much work -- he job is @qq{only} to guide
+would be far too much work -- his/her job is @qq{only} to guide
 completed patches through our process.
 
 Currently: Carl
 
 @end itemize
 
+@node Patchy
+@section Patchy
+
+@subheading Introduction
+
+Patchy is a set of Python scripts to automate two administrative
+tasks:
+
+@itemize
+@item
+@code{lilypond-patchy-staging.py}: checks that new commits in
+@code{staging} can compile the regtests and documentation before
+merging @code{staging} into @code{master}.
+
+(completely automatic)
+
+@item
+@code{test-patches.py}: checks that patches apply to git master,
+compile, and lets a human check that there are no big unintended
+changes to the regtests.
+
+(requires some human input)
+
+@end itemize
+
+@subheading Installing patchy
+
+To install patchy, you should do the following:
+
+@enumerate
+@item
+Create a new user on your box to run patchy; this is a security
+step for your own protection.  It is recommended that this should
+not be an administrator.  New users are created from System;
+Administration; Users and Groups.
+
+@item
+Get the patchy scripts from
+@example
+@uref{https://github.com/gperciva/lilypond-extra/}
+@end example
+Patchy is in the @file{patches/} directory.
+
+@item
+Put the scripts in a sensible place on your system
+
+@item
+Create a new git repository with
+@example
+git clone git://git.sv.gnu.org/lilypond.git
+@end example
+This will create a directory called lilypond with the repo in it.
+Make sure it's where you want it and name it lilypond-git
+(assuming you want to follow the standard naming conventions).
+
+@item
+Create an environment variable called LILYPOND_GIT and make it
+equal to the location of your new git repo.  You can do this by
+editing @file{$HOME/.profile} and adding the line:
+@example
+export LILYPOND_GIT=~/lilypond-git
+@end example
+then logging out and in.
+
+@item
+Run patchy once to set up config files.  Cancel this build
+(ctrl-c).
+
+@item
+Edit @file{$HOME/.lilypond-patchy-config} to provide working
+directories for your build directory, your results directory,
+compiler options and notification method.  If you don't want to
+use email notification, then delete everything after
+@code{smtp_command:}.
+
+@item
+Ensure that your new user has git push access.  Follow the
+instructions in the CG at @ref{Commit access}.  Do not set
+password protection for the key - if you do you will not be able
+to run patchy unattended.
+
+@end enumerate
+
+@subheading lilypond-patchy-staging.py
+
+lilypond-patchy-staging.py is run with
+@example
+python lilypond-patchy-staging.py
+@end example
+Not much appears to happen except you can see a lot of CPU gets
+used if you open System Monitor. There's not much point running
+@code{lilypond-patchy-staging.py} unless there is something in
+staging to be merged to master, however, if there's nothing in
+staging then the script won't waste resources by compiling
+anything.
+
+The script fetches the current patches in staging and runs
+@code{make}, @code{make test} and @code{make doc} to ensure that all of
+these complete error-free. If you have set patchy up to use email,
+it emails its results to you.  If you haven't, then you can view
+them in a logfile.  It also merges staging into master.
+
+@subheading test-patches.py
+test-patches prepares a regtest comparison for a human to quickly
+glance at, to determine if the patch is ready for a review.  After
+looking at the comparison (or the lack of a comparison in the case
+of problems), run @code{accept-patch.py} or
+@code{reject-patch.py}.
+
+Once a patch has gotten a "LGTM" from Patchy, it should be
+reviewed by relevant developers, and if it passes this, it can be
+considered for countdown (see @ref{Commits and patches}) and
+pushing to staging (see @ref{Pushing to staging}).
+
+
 @node Administrative mailing list
 @section Administrative mailing list
 
-An mailing list for administrative issues is maintained at
+A mailing list for administrative issues is maintained at
 @code{lilypond-hackers@@gnu.org}.
 
 This list is intended to be used for discussions that should be kept
@@ -149,7 +265,7 @@ GOP has two goals:
 
 @itemize
 @item
-Clarify the various development tasks by writing down the polices
+Clarify the various development tasks by writing down the policies
 and techniques and/or simplifying the tasks directly.
 
 @item
@@ -215,7 +331,7 @@ work on the really hard stuff... like rewriting the grace note
 code.
 
 Having 1 more normal user answering emails on lilypond-user won't
-have a dramatic trick-up affect all by himself, of course. But if
+have a dramatic @q{trickle-up} effect all by itself, of course. But if
 we had 8 users volunteering to answer emails, 6 users starting to
 write documentation, and 2 users editing LSR... well, that would
 free up a lot of current bug-fixing-capable contributors to focus
@@ -228,7 +344,7 @@ many new helpers will provide a great moral boost!
 
 Although GOP is a short-term project, the main goal is to train
 more people to handle ongoing jobs. The more people doing these
-jobs, the ligher the work will be, and the more we can get done
+jobs, the lighter the work will be, and the more we can get done
 with lilypond!
 
 Also, it would be nice if we had at least one "replacement" /
@@ -278,7 +394,7 @@ We often receive reports of typos and minor text updates to the
 documentation. It would be great if somebody could create
 properly-formatted patches for these corrections.
 
-Technical requirements: ability to run @ref{Lilydev}.
+Technical requirements: ability to run @ref{LilyDev}.
 
 @item LSR editor:
 LSR contains many useful examples of lilypond, but some snippets
@@ -295,7 +411,7 @@ chapters 1 and 2 (or be willing to read the docs to find out).
 often find them in Ponds of Lilies) and new feature implementors.
 
 Technical requirements: development environment (such as
-@ref{Lilydev}), ability to read+write scheme and/or C++ code.
+@ref{LilyDev}), ability to read+write scheme and/or C++ code.
 
 @end itemize
 
@@ -842,11 +958,11 @@ area}, reason to move this to a different type.
 @item
 anything which stops contributors from helping out (e.g.
 lily-git.tcl not working, source tree(s) not being available,
-lilydev being unable to compile git master, inaccurate
+LilyDev being unable to compile git master, inaccurate
 instructions in the Contributor's Guide 2 Quick start).
 
 To limit this scope of this point, we will assume that the
-contributor is using the latest lilydev and has read the relevant
+contributor is using the latest LilyDev and has read the relevant
 part(s) of the Contributor's Guide.  Problems in other chapters of
 the CG are not sufficient to qualify as Type-Critical.