Dropping support for Ruby 1.8 in the Avro 1.8.x series sounds like a plan. Is there already a branch for the 1.8 series? Until that time happens, I can maintain my fork for people requiring unicode UTF support on Ruby 1.9+.
I know the multi_json issue is fixed in trunk. However, due to the project's structure, it's very hard to use a non-release version inside a project. Because the project doesn't include a gemspec file, you cannot make Bundler use the latest trunk version. (In my case, I use avro inside of another gem. Gem can only depend on released versions of other gems, so I had to fork & release it.) Willem On Jun 25, 2014, at 5:33 AM, Sean Busbey <bus...@cloudera.com> wrote: > IIRC, the multijson issue is fixed in the current snapshot. > > I dunno, I certainly stopped using Ruby 1.8 several years ago. The issue is > that Avro has a strong history of favoring compatibility. It would be > surprising for us to drop Ruby 1.8 support while still in the Avro 1.7 line. > > We could plan to only support Ruby 1.9+ in Avro 1.8 and take a contribution > that targeted that, maybe? > > -- > Sean > On Jun 25, 2014 4:16 AM, "Willem van Bergen" <wil...@vanbergen.org> wrote: > >> I forked off trunk 2 days ago. >> >> It's possible to have 2 different gems, but this is not very common in the >> Ruby world. Because Ruby 1.8 is not maintained anymore, not even for >> security issues, most people have moved on to newer versions. This is in >> contrast with Python 2, which is still maintained and heavily used. >> >> My preference would be to document that the last release of avro that >> supports Ruby 1.8 is 1.7.5. (Version 1.7.6 won't install because of the >> multi_json issue). Maintaining 1.8 compatibility will be harder and harder >> over time and hold back development. E.g. it is already hard to even >> install a Ruby 1.8 version on a recent OSX due to compiler changes. >> >> >> Cheers, >> Willem >> >> >> On Jun 25, 2014, at 5:06 AM, Sean Busbey <bus...@cloudera.com> wrote: >> >>> how far back did you fork? >>> >>> could we have a Ruby 1.8 gem and a Ruby 1.9+ gem? >>> >>> we have python and python 3 support broken out, for example. >>> >>> >>> On Wed, Jun 25, 2014 at 3:51 AM, Willem van Bergen <wil...@vanbergen.org >>> >>> wrote: >>> >>>> Hi, >>>> >>>> For a Ruby project, I am using AVRO schemas to validate Ruby objects. >>>> Because I ran into some issues with the official avro gem, so I forked >> it: >>>> https://github.com/wvanbergen/tros. (The name probably only makes sense >>>> to Dutch people :) >>>> >>>> >>>> ### Changes >>>> >>>> - Fixed a round trip encoding issue for union(double, int) types. >>>> Integers were being encoded as floats, and read back as float. In Ruby >>>> versions 2.0 and later, a float == bigint equality check will return >> false. >>>> This caused a test to fail. >>>> >>>> - Fix UTF-8 support for Ruby 1.9+, and JRuby. >>>> The original code was written for Ruby 1.8, and there's some big changes >>>> to how to properly do this in Ruby 1.9+ and JRuby. >>>> >>>> - Remove monkey patching of Enumerable >>>> Monkey patching builtin objects is frowned upon, especially in >> libraries. >>>> Fixing it was easy: >>>> >>>> >> https://github.com/wvanbergen/tros/commit/c81d6189277111008ebb05239af91d286dd01061 >>>> >>>> - Dropped dependency of yajl-ruby and/or multi_json. >>>> The yajl-ruby dependency was causing compatibility issues with the rest >> of >>>> my application, and there's no released version yet with working >> multi_json >>>> (1.7.6 cannot be installed because multi_json is misspelled multi-json). >>>> Instead of fixing that, I decided to simply use Ruby's built in support >> for >>>> JSON. For libraries, the less external dependencies the better. >>>> >>>> >>>> I also did some heavy refactoring to make the Ruby codebase work outside >>>> of the context of the greater Avro project, and applied some best >> practices >>>> of the Ruby ecosystem. Finally, I set up CI ( >>>> https://travis-ci.org/wvanbergen/tros) that checks the gem on multiple >>>> Ruby versions. >>>> >>>> >>>> ### Contributing back? >>>> >>>> I would like to contribute back my changes if you are interested. >> However, >>>> maintaining Ruby 1.8 support will make this very hard. Ruby 1.8 doesn't >>>> come with built in JSON support, and it's unicode handling is severely >>>> broken. It is also no longer maintained: >>>> >> https://www.ruby-lang.org/en/news/2013/12/17/maintenance-of-1-8-7-and-1-9-2/ >>>> >>>> Is it acceptable to drop support for Ruby 1.8? If so, I can work with >> you >>>> to get my changes back into the main codebase. >>>> >>>> >>>> Cheers, >>>> Willem van Bergen >>> >>> >>> >>> >>> -- >>> Sean >> >>