We’re planning a major upgrade to the ImageKit API and intend to deprecate the API version currently used by the ImageKit backend in rclone.
The deprecated API will remain operational indefinitely, so existing rclone installations will continue to work. However, we would update the newer rclone releases to use the upgraded API once it's finalized.
Our proposed approach is to update the ImageKit backend, maintain compatibility with existing rclone configurations, and have the change included in a future stable release. Older rclone versions would continue using the existing API.
Our current plan would be to:
Update the ImageKit backend in rclone to use the new API.
Have the change included in a stable rclone release.
Keep the existing API operational.
Does rclone provide any additional mechanism for handling backend API migrations or notifying users that their version is no longer supported?
@ncw, could you please advise on how similar API migrations have been handled for other rclone backends?
P.S. I work as a Tech Lead at ImageKit and originally contributed the ImageKit backend.
HI @ahnv - thanks for contributing the ImageKit backend
We haven't found a one size fits all policy on provider deprecations as they all seem to be different but if possible we try to give users advance warning of stuff breaking and if not then we make rclone break cleanly with an error message telling the user what to do.
Users are generally encouraged to stay up to date with rclone as cloud providers change things all the time. If something stops working they will update, or come by the forum where someone will tell them to update!
That sounds like a great plan to me. If you wanted to shut down the existing API in due course that would be fine - I'd suggest running it for 12 months if you can.
If maintaining compatibility with the existing configuration turns out not to be possible (and we've had this many times with rclone backends) then making rclone error with a message telling the user what to do to fix it is our preferred approach.
I think what you are planning sounds sensible. Would you do the backend update?