-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conservative fixes for Plugin API #15687
Conversation
And remove an unused method from Part that was very prone to cause bugs because of `instrumentId`/`musicXmlId` confusion
c12795f
to
ec1218b
Compare
I would like us to have a stable API that is only expanding (not changing) and/or explicit API versioning. Also, I believe that the best functional API (just like in an autobot https://github.com/musescore/MuseScore/tree/master/src/autobot/internal/api, ), and not an object one, because it is easier to maintain backward compatibility, easier to expand, etc., respectively, in the end this approach will give a more stable and powerful api. But these are all questions of the future (maybe this year). Accordingly, now we have a situation, on the one hand, we have released a new major version, and we can change the current API (this will not be unexpected), on the other hand, we know that we want to make a completely different API in the future, and therefore if we change the old API, as a result we will get two versions "old API" - this will confuse us all and complicate management. |
Some thoughts about this:
|
I totally agree with you!
We can call the |
Resolves problems with the Align property type, which was refactored in libmscore but those changes weren't properly applied in the Plugin API; for now, I've added some logic between the Plugin API and libmscore, so that the Plugin API is working again without differences from MS3 in this regard.
Furthermore, this reverts a change regarding the Plugin API's
instrumentId
: in MS3 (including 3.6.2), this returned the MusicXML id, and in MS4 it would return MuseScore's own instrument id. I have decided to revert this, so that existing plugins will work properly in MS4.0.1 without any changes.Alternatively, we could decide that this change is intentional and that plugins will need updating for MS4. Not sure what's better here. @igorkorsukov @shoogle what do you think?