Hello Paolo,

> Given that, as Valentin noted, a new property has been introduced that
> allows code to be compiled with the old function, what is the point of
> exposing it to the user if it then corresponds to an API break?
> If it had been treated as a deprecated property I could have simply ignored
> the warning.

the new property is there to allow for convert-ly to automatically make old 
things work. I just do not fully understand why it is necessary and could not 
simply be handled by adding a conversion function, e.g. turing something like

`...proportionalNotationDuration = ...`

to

`...proportionalNotationDuration = \moment-main-part ...`

or whatever.

Regarding API breaks: To some extent API breaks are of course something you 
should not do lightly, as an API essentially promises that you can rely on a 
certain behaviour. As far as I know Lilypond tries to keep API consistent at 
least within a major version, so something like this should not happen between 
say 2.24.3 and 2.24.4.

I understand that for you developing a product tied closely to Lilypond not 
having a stable API is annoying, but please keep in mind that 2.25 is the 
development release. You can and should not develop something against it and 
assume that things will keep working.

I think in this particular case though it would have sufficed to run convert-ly 
on the old code. But Lilypond does not do this because the devs want to annoy 
you. And if you have reasonable ideas how such API changes could be 
communicated better I am sure people would love to hear them and if feasible 
incorporate them.

Cheers,
Valentin

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to