[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


From: Urs Liska
Subject: openLilyLib
Date: Tue, 8 Nov 2016 09:50:25 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0

Hi all,

this is an update and "call for action" regarding openLilyLib.

For those not familiar with openLilyLIb a short recap what it is, or rather what the different parts of it are:

A "snippets" library located at

This is similar to the official LSR (, a collection of sort-of-organized LilyPond function. The main differences to the LSR are:

  • it is simply managed as a Git repository on Github, so it is somewhat more straightforward to maintain in a collaborative manner
  • It is not compiled on the server, so there's no requirement that all code matches a given LilyPond version
  • It is designed to be *includable*, that is one directly uses the snippets instead of copying them in one's own files

A library infrastructure. Below there is a number of repositories circling around the oll-core package. The idea is to provide cleanly structured and usable packages/libraries/modules, however you'd like to name it. This way including a certain package easily gives access to a certain functionality. As an example the "page-layout" package allows to specify sets of breaks that can then simply be applied to a score (so I can define the breaks of, say, the manuscript and original edition and switch between them. Or define breaks for A4 paper and screen display).

One neat thing about that is that it's possible to provide functionality that other functionality can build upon (well, that's what libraries mostly are about). I have recently seen how fundamentally it makes it easier to build complex functionality in LilyPond when you can reuse rather large building blocks.


Unfortunately 2) is still a work in progress or rather a construction site because much is missing, most importantly an automated system for testing and documentation generation. This is the main reason why I have been reluctant so far to add further libraries because they necessarily have to be somewhat undocumented - and I know that it will be hard to catch up with this if we should implement a documentation system after having created dozens of libraries ...

Another thing I dearly miss is a proper integration with Sharon Rosner's approach at a LilyPond package manager (, which would actually make openLilyLib installation a less manual task.

(Both these would make for good GSoC projects BTW)


So now that I've said what openLilyLib is and what it mostly lacks I'd like to share an idea and shout out for a community effort.

Knowing it will be an unlikely bet I still would like to apply for openLilyLib becoming a Google Summer of Code org independently from LilyPond. This year I mentored an openLilyLib project on behalf of LilyPond, and while that worked out it somehow felt not fully natural because my student didn't work on actual LilyPond code, and because that seems to have made him less inclined to engage with the LilyPond community as well. And above all an independent openLilylib org could eventually lead to more GSoC slots in total for us.

I know it's unlikely openLilyLib would get accepted as a mentoring organization right away but I would like to try it anyway. Even if it doesn't work out the effort would give the project a push. The program rules are not out yet, but application is from mid January to mid February, and I know the basic requirements:

First of all we need to be a community. There is no given minimum number to this and it "just can't be two developers but we need a community". actually looks pretty good, but if you look at that graph: it becomes clear that there is actually a steep curve *and* there are long periods of near inactivity (OK, this graph is for the one repo only, there has been more activity recently to other repos).

So the first thing I would really like to see (and this is actually independent from GSoC) is getting more people involved in openLilyLib, and also that people from the one-digit commit count aspire to get to a two-digit count and those in the lower two-digit range try to somewhat narrow the gap to the top three contributors ;-) I see there are many open branches, and it would be good to work on reducing that by either dropping or merging work.

The second thing I would be happy about is to see more packages emerge. This can be done by pulling out coherent sets of functionality from the snippets repository to new packages or by creating new ones from scratch. Of course this is a more involved thing, particularly as it is not properly documented yet and not even fully stable with regard to structure. But more activity would also be the frame for improving on this aspect.

Finally for becoming a mentoring organization there have to be two volunteers serving as "org admins" over the project cycle (i.e. from February to October). I don't know exactly what this involves, and in a small org it should not be too much. Basically they're the representatives towards the Google staff and the persons the (potential) mentors can refer to. It *may* be that they would have to manage money as well, i.e. doing payment requests and accepting money from Google and distributing that somewhat. I feel this is something like the parent's council in primary school: nobody wants to volunteer and in the end it turns out being very little work.
I would love to see two people stepping up who would definitely not want to mentor a GSoC project, and actually this would be a good opportunity for people who benefit from using openLilyLib but don't feel ready to contribute - because the org admin is (as the name implies) a purely administrative position.


To cut a long story short: I would really like to get openLilyLib to become an active community within the next two months, to see if a GSoC application will lead anywhere. And if it doesn't we will have at least done something good for openLilyLib and implicitly also for LilyPond.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]