Bump rubyzip to support 3.x and widen addressable range#39
Conversation
Widens dependency pins: - rubyzip: ~> 2.0.0 -> >= 2.3, < 4 (allows rubyzip 3.x) - addressable: >= 2.7, < 2.9 -> >= 2.7, < 3 rubyzip 3.0 deprecates the positional Zip::File::CREATE flag in favour of the create: true keyword argument. The keyword form is also supported by rubyzip >= 2.3, so writer.rb is updated to use it on both lines. rubyzip 3.0 requires Ruby >= 2.7, so Ruby 2.6 is removed from the CI matrix to reflect the new minimun supported Ruby version. Verified by running the full test suite (84 tests, 636 assertions, 100% pass) on: - Ruby 2.7.8 with rubyzip 2.4.1, addressable 2.9.0 - Ruby 3.4.4 with rubyzip 3.3.0, addressable 2.9.0 plus a write_zip / read_zip round-trip smoke test.
|
@cllde8, was there any particular reason for picking 2.3 as the minimum Rubyzip version? |
Hi @fbacall Yes. In rubyzip 2.0–2.2, only the positional Choosing Using |
Summary
This PR adds support for rubyzip 3.x and updates dependency constraints accordingly.
rubyzipruntime dep from~> 2.0.0to>= 2.3, < 4.addressableruntime dep from>= 2.7, < 2.9to>= 2.7, < 3.Motivation
This PR enables compatibility with Rubyzip 3.x, which is required in newer Ruby/Rails environments. Current dependency constraints prevent upgrading without relaxing version bounds in downstream applications (e.g. when used alongside roo >= 2.4 and addressable 2.9.x).
Issue #30 tracks Rubyzip 3.0 support; this PR addresses that requirement.
Verification
Ruby compatibility
Rubyzip 3.x requires Ruby >= 2.7, therefore Ruby 2.6 is removed from the CI matrix.