-
Notifications
You must be signed in to change notification settings - Fork 152
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
api4: std.SetFrameProp no longer supports deleting frame property #736
Comments
Mostly that having a function that both sets and deletes gets a really convoluted argument list and isn't intuitive at all. |
But we already have new clearer APIs that separates these two aspects.
For compatibility with existing scripts, why not keep the existing APIs
unchanged to have a smooth transition?
(Intuitive or not, existing users already know how to use those APIs and a
new release shouldn't simply break those scripts without any deprecation
warnings.)
Otherwise, there is no simple way (i.e. not involving two code paths) to
write a script that works with both R54 and R55.
|
The compatibility of releases is important. As is, you can't have a script
that removes frame props working in both R54 and R55 without conditional
code.
And there are code that must work across multiple versions, e.g. mvsfunc:
vxzms/mvsfunc@ca51948
Regrettably, it already contains some conditional code to deal with past
API incompatibilities, but the good news is that most of them are for way
older releases. We managed to keep recent VS releases compatible enough
that most people don't even realize there used to be incompatible changes
on the API.
This is such a simple case: the original API is not broken, just not
intuitive and users have come to depend on them. If we think the newer
alternatives are better, we can certainly advertise new APIs to gradually
phase out existing users. But breaking those existing code is not the most effective way forward.
Could we please make R55 more compatible with R54? (You might think
changing the script to use R55 is acceptable, but in my experience that
makes persuading users to switch significantly harder.)
|
AkarinVS
added a commit
to AkarinVS/vapoursynth
that referenced
this issue
Sep 2, 2021
and suggest users to look into SetFrameProps and RemoveFrameProps APIs. Fixes vapoursynth#736. Signed-off-by: akarin <[email protected]>
AkarinVS
added a commit
to AmusementClub/vapoursynth-classic
that referenced
this issue
Sep 3, 2021
and suggest users to look into SetFrameProps and RemoveFrameProps APIs. Fixes vapoursynth#736. Signed-off-by: akarin <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I understand that api4 have introduced
std.RemoveFrameProps
dedicated for this purpose, but I think removingdelete
support fromstd.SetFrameProp
breaks backword compatibility for no good reason and makes writing portable scripts that work with both api3 and api4 VS unnecessarily harder than it should be.What's the rationale behind this backward incompatible change?
Thanks.
The text was updated successfully, but these errors were encountered: