On Sun, Feb 9, 2025 at 1:20 AM Valentin Petzel <valen...@petzel.at> wrote: > > Hello Saul, > > > I don't want to speak for Dan, but I believe the objective is to get user > > code moved over to actually using exact rationals rather than moments for > > these properties, not just to allow the use of exact rationals in addition > > to moments. > > This is not what I talked about. My point is: A deprecated property you’d > usually get when an interface has been considered as not optimal and is > changed, but you give the user time to adjust, allowing the old interface to > still be used. This is not what is happening here. Here a new interface is > introduced (namely `proportionalNotationDurationAsMoment`) as deprecated > property. Essentially this is telling the user: Here is a new feature, but you > should not actually use it, because it has been considered bad and will be > removed in a future release. >
Hello Valentin, I totally agree with you. And I add an observation: if an API is deprecated, it should be clear to the user that it is actually deprecated. This is not the case. In fact, the raised warning says: "warning: the property 'proportionalNotationDuration' must be of type 'non-negative exact rational or +inf.0', ignoring invalid value '#<Mom" ...while a proper warning to a deprecated function should be something like: "X is deprecated and will be removed. Use Y instead" Therefore, IMHO it appears like an API break. I also highlight that it's the first time that I encountered something like that since 2.19.84 (and I'm talking about code that uses the LilyPond API extensively and intensively) I hope this can be reviewed and fixed in future releases. Meanwhile, I can only add your workaround to my code. Cheers, Paolo