Open jgarber623 opened 3 weeks ago
Hello,
thank you for your interest, and sorry for the late reply -- my last two weeks have been very, very busy.
My policy so far has been to try to support all Ruby versions going back to 1.8, when I originally wrote the gem, because you can never really be sure if there is not someone still depending on it. The project is feature-complete, so my main task is to keep it working for everyone who depends on it.
At this point, you're right that approximately no-one is still on 1.8, and in fact, it is very difficult to even install Ruby 1.8 on a modern operating system. I failed to do that a few weeks back when I made the last point release, so I definitively should raise the minimum Ruby version.
However, the code is pretty old, and I made a few mistakes that should really be dealt with by a complete rewrite and a 2.0.0 release. There's the boneheaded decision of requiring strings to be wrapped in <~
and ~>
before decoding, and the ascii85
executable also isn't all that useful.
Long story short: The gem is due for a complete re-write, but I'm not sure when or even if I will find the motivation and time to do that. I probably won't mess with the minimum supported version until that rewrite happens, at which point I will release a new major version with a Ruby 2.7 or 3.0 constraint.
I have decided to raise the minimum supported Ruby version to 2.7 with the upcoming 2.0.0 release.
I had some spare time to refactor and improve the code; the gem now allows streaming encoding/decoding from/to files or other IO-like objects. It's also about 33% faster as a result of the changes (though an actual benchmarking harness is still TBD).
I hope to be able to publish the new version within two weeks, after some more testing and fixing.
@DataWraith Thank you for the thoughtful replies! I appreciate it and hopefully this week is less busy than the previous weeks.
That's great news about the upcoming v2.0.0. Are you looking for any help getting that across the finish line, reviewed, tested, or anything similar?
Hello!
First off, thanks for keeping this gem going for 15+ years. Also, I acknowledge the note in the README regarding the project's current status. So, if you don't feel like addressing the following, I completely understand.
This gem incidentally supports any Ruby version since it doesn't specify a
required_ruby_version
in its gemspec. I'd be interested in knowing more about that choice and whether or not you'd be open to implementing a minimum required Ruby version of some kind.Given the popular libraries that depend on this gem, a choice of a minimum supported Ruby version should be carefully considered.
Most notably, pdf-reader (65 million downloads) specifies
ruby >= 2.0
. pdf-reader is a development dependency of prawn (60 million downloads) which itself specifiesruby >= 2.7
.Additionally, implementing a minimum supported Ruby version would:
# -*- encoding: utf-8 -*-
magic commentsWhile it's been EOL'ed since March 2023, Ruby 2.7 as a minimum would be my choice (to the degree that I have a vote!).
Thanks for considering! I'd be happy to PR a change if any of the above is reasonable.