frescobaldi / python-ly

A Python package and commandline tool to manipulate LilyPond files
https://pypi.org/project/python-ly
133 stars 32 forks source link

Support latest LilyPond development version #55

Open dliessi opened 8 years ago

dliessi commented 8 years ago

As Urs wrote in https://github.com/wbsoft/frescobaldi/pull/203:

I suggest you maintain two files, one for the latest stable and one for the lastest development version and make a habit of updating on each new LilyPond release.

Anybody who uses a development version can be expected to use the latest version, and if one doesn't see the need to always update one's Lily it's reasonable to live with any minor differences.

dliessi commented 8 years ago

See also #54.

PeterBjuhr commented 8 years ago

It's a nice idea! But how is the generated data used more exactly? It seems to me that more is needed than just regenerating a file.

To support every development version is something completely different from supporting every stable. Can we handle such a commitment?

uliska commented 8 years ago

The idea should be to support exactly two versions : latest stable and (possibly ) latest devel.

Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet.

PeterBjuhr commented 8 years ago

Sorry if I was unclear! I was writing about managing every release, not supporting more than two at a time.

Again, I like the idea but I'm concern about the level of commitment that it implies.

If it is as easy as regenerating a data file on every dev version as seems to be assumed perhaps it can be done! But the manual update needed in #54 (for example) puts that in doubt.

wbsoft commented 8 years ago

Ideally, python-ly should be able to run LilyPond to get generated data and cache that. It should by default cache the latest stable version and the latest development, and maybe also for old versions etc.

A little problem however is the tokenizer (ly.lex), which also uses wordlists. But ly.lex is currently not able to handle dynamic changes, all definitions are global and the same everywhere. So having LilyPond-version dependent parsers is quite involved now.