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
Make upgrading to 3.0 easy for us #514
Comments
I'm happy to consider this, but I caused people issues when I added things to STDERR recently (see #497). So I'd be interested in what people like @jdleesmiller, @ShockwaveNN, @tisba and @Sega-Zero think before I do this. Part of the issue is that rubyzip can be a very deep dependency that people don't (in some cases) realise is there until it does something like this. Also, frankly, it's taking long enough to polish off 3.0 as it is - this isn't my day job! - and this would surely add more time as it is, what with all the extra testing, etc required. Anyway, as I say, happy to look at doing this so long as it's not going to cause people unexpected problems elsewhere. |
Well, in my case, I fixed my build scripts. But this may certainly be an unexpected surprise for someone else. This kind of information would be much more helpful in the migration section of the documentation. |
@hainesr I don't like the previous variant because it shows a warning on each call of But it banner will be shown only on the call of deprecated code (which should be replaced in my code\some library code) I think it's OK |
You're right--let's forget about |
I can't read the original suggestion (was edited). I think it is not too bad to use Personally, I'd just add a breaking change with a major bump and be done with it 🤷 |
Thanks all for the comments!
In an ideal world I would just do this 😆 But there are an intimidating number of projects that use rubyzip (GitHub alone reckons over 1.7M) so I only need a small percentage of them to get caught out to ruin my week after the release 😟 I'd like to find some middle ground to make it as smooth as possible for people to update, so I'll look at a combination of things suggested in this thread. I'll leave this issue open while I do this. |
Okay if people without any experience "just" use it (meaning just installing whatever version of What about printing the warning at least once? There are plenty of options:
If your concern is though that even a small percentage might run into this, because they don't have a process for updating their dependencies (for example), I believe none of these options would work. The only option would be to support the old API indefinitely. |
I think it's an overcomplication of this problem, to save state of warning message
My first thought was to add But ENV may be a little non-elegant solution but will work in those scenarios |
Oh, the old API is already gone from trunk so no danger of that 🤣
Yes, I thought about a rubyzip option too, but that is a good point about indirect dependencies. I think the |
Perhaps this can be closed? |
I would really appreciate a 2.x release that's forward compatible with 3.0 by supporting the new kwargs in the options hashes that already exist. My project, in addition to using RubyZip itself, depends on 5 other gems that also use RubyZip (and have proper requirements not allowing RubyZip 3.0). As it stands right now, any given gem cannot support both RubyZip 2.3.2 and 3.0 at the same time without significant gymnastics. Because of this, I cannot update any one of my dependencies that depend on RubyZip 3.0 until all of them do. If a 2.x is released that supports the new kwargs in addition to the old way (even as part of the options hash, and not as proper kwargs), then intermediate gems would be able to support RubyZip 2.x and 3.0 with the same code, and my end-project could update each one as it's available, and finally update its own usage to 3.0 when all of my dependencies have updated. |
In order to make upgrading to version 3.0 easy, can you do something like this on the 2.x series:
And do that everywhere there is an arg change. That would be lovely, thanks!
EDIT: originally I also suggested to
warn("DEPRECATED: ... should be a keyword arg")
but I've removed this based on comments.The text was updated successfully, but these errors were encountered: