The case about yanking JSON Windows binaries

Luis Lavena's Avatar

Luis Lavena

31 Mar, 2011 06:32 PM

Hello,

Nick told me this is the right place to bring this, and he was hesitant to yank every single gem willy-nilly.

So, to the point:

Back in November 2009 I requested Florian Frank (flori), author of JSON gem to use rake-compiler component to ease the path to provide Windows binaries for Windows:

GitHub Issue #6:
https://github.com/flori/json/issues/6

July 2010, there was the huge "JSON vs. JRuby" battle and the issues with the lack of binary version of JSON gem:
https://github.com/flori/json/issues/35

That thread and threads here allowed Charles Nutter and others get permissions to push gems to JSON gem for Java, July 16 Charles Nutter sent an email stating "the json gem has been liberated" and I did mention issues with the binary version for Windows and issues for Ruby 1.9.2. The conversation was private between Daniel Luz, Charles and Evan Phoenix and me.

August 2010, Flori got back to Daniel Luz and he forwarded his email exchange with us:

No, I didn't. I couldn't receive any emails via my ping email address (mostly from outside our network) for at least several weeks due to a technical problem which caused a lot of my emails to be queued and maybe even deleted. I finally managed to fix the problem during my recent vacation and received ca. 40,000 emails at once, most of it spam. Apparently I didn't recieve any emails from github discussions either, this was one of the first email notifications I received for a long time.

I have seen that there is a pull request for headius/json in the fork queue, which seems to be a patch to include Java code in the json repository. Is this what you're talking about? I intended to try it on the weekend and see if I can get it applied and tested. So far I haven't done much with jruby, so I am not sure how well this will go.

Since 1.4.6 release I've started to receive complains of the Windows binary gem that I've shared with Florian. Some of the occurrences:

http://stackoverflow.com/questions/5041709/krl-gem-and-msvcrt-ruby-dll
http://stackoverflow.com/questions/4764509/ruby-1-9-2-heroku-gem-ra...

On these threads you will find references to exactly same discussion on RubyInstaller list, pointed by users of Ruby on Windows affected by it.

Also you will find me mentioning attempts to reach Florian to workout this issue.

You're going to see threads like this too:

https://github.com/flori/json/issues/57

Two months old and still lack a response from the gem author.

Three months ago I approached Florian about JSON gem and build process:

Hello Flori,

Saw you're actively working on json again.

Please hold a new release as I would like it contains binaries for Ruby 1.9.2 and at the same time, cleanup the build infrastructure to use rake-compiler for both C and Java extension.

I just forked and will take me a few hours to clean things up.

Thank you.

Emailed after in January:

Hello Florian,

Tried to reach out to you several times before and no response from you.

The binaries you're pushing for Windows only works with Ruby 1.8.x

And people is having a lot of problems because of that. https://github.com/flori/json/issues#issue/54 http://groups.google.com/group/rubyinstaller/browse_thread/thread/1... http://groups.google.com/group/rubyinstaller/browse_thread/thread/6...

Please yank the binaries you released for 1.5.0 so people stop having this problem.

I've forked JSON repository to better build the fat binary gems and send you some questions, but never heard back from you.

Please, at least give me commit access or grant me gem push on RubyGems so I can deal with this problem and don't bother you anymore.

January 22, reply from Florian:

You wrote me in early December, that you wanted to change something in rake-compiler to make this possible and to hold a new release. You didn't tell me if you succeeded or not, but I had to release a new version now because people have other problems, too. Does that mean that it works or that you have any patches I have to apply first? I'd rather release a new version 1.5.1 to fix these issues, because the 1.5.0 doesn't make matters worse compared to 1.4.6.

And my reply, same day:

I never heard back from you, so dunno if you received the message or not.

I pushed back in december my changes to my fork:

https://github.com/luislavena/json/tree/cleanup-build-process

The changes to Rakefile are extensive, specially for you to be able to generate gems more easily without the need of tagging individual changes or switching environments.

The only remaining piece was JRuby extensions, and due the inter-dependency of the Java classes, rake-compiler java extension task doesn't work with it.

Now, even with all these modifications, is up to you change the environment that you use to push gems to have Ruby 1.9.2 cross compiled in your system. Without that, fat binaries cannot be generated.

I've created a recent blog post with the list of versions and how to use them with rake-compiler:

http://blog.mmediasys.com/2011/01/22/rake-compiler-updated-list-of-...

It strikes me that you haven't responded to any of the GitHub issues in months, really, no issue have a comment from you.

So been wondering how you manage the development of JSON.

Since the Java extension is the only issue I had, I'm going to keep the constant usage you had but make it easy to generate the extension even in a non-JRuby environment.

Please let me know if I'm wasting my time on this or not from what you can see in my branch.

Thank you.

Attempted to reach him out again, March 6:

Hello Florian,

I'm continuously getting reports of problems related to JSON gem and it's binaries.

Previously was 1.4.x, which lack Ruby 1.9.x binaries and failed to work for some users, now is 1.5.x not working with 1.8.x users because it lack binaries for that version of Ruby.

I've tried to workout the complex rakefile you have, but the Java part, and the way the Java extension is worked is not compatible with rake-compiler's JavaExtensionTask.

You can see my attempt here:

https://github.com/luislavena/json/tree/cleanup-build-process

But until that is good for you, the current JSON situation is tiresome.

Can you please yank the binary versions of the gem? At least that way user will be forced to compile it (with already does).

These issues are not helping out Ruby developers on Windows, nor is helping me attempt to improve Ruby on Windows image.

Thank you in advance for your time.

Still no answer.

My last attempt on March 17:

Please, the latest gem only including binaries for 1.9.x version of Ruby is giving a lot of problems to developers on Windows.

Please yank the platform specific ones so at least they can install from source.

I've emailed you before about the work being done in my fork but didn't get any feedback, which is a bit disappointing. I know we are all busy and time is limited in relation to OSS, but was hoping get at least some feedback from you.

Thank you.

I don't want to fall into vanity with the following comment, but everybody that knows me know how hard I put effort in making things works, specially for Ruby users on Windows.

Ruby developers on Windows have the alternative to install and compile JSON gem without issues nowdays, and due the broken state of current binaries, I've think the safest and best possible solution is yank these binaries.

Starting and including 1.4.6 binaries, either they lack 1.8 or 1.9 versions of the extensions, rendering them useless to Ruby developers.

Let me tell you how frustrating is this situation and specially for new users that trying to use something fail in this so obscure issue.

I'm reaching out to you guys to see if you can get this done since is beyond my control to find a solution.

I've exhausted all the communication channels with the developers, so this is my last resource.

Thank you for your time.

  1. Support Staff 2 Posted by Evan Phoenix on 31 Mar, 2011 06:50 PM

    Evan Phoenix's Avatar

    While this situation is unfortunate, I don't see that we can do much. Flori has not abandoned the json gem and he's active on github (commits from 1 day ago).

    I suggest ask him if you could have contributor access to the repo and gem since he doesn't seem to have much time to spend on these issues right now.

  2. Support Staff 3 Posted by Luis Lavena on 31 Mar, 2011 06:54 PM

    Luis Lavena's Avatar

    Evan, I've tried this several times without answer.

    I can't invest more time in fixing things when the feedback is zero.

    What I'm asking is Nick yank existing x86-mingw32 and x86-mswin32 binaries from JSON since 1.4.6

    They are broken, they never worked and author have not answered any of my emails/GitHub PM or even the issues on GitHub.

  3. Support Staff 4 Posted by Luis Lavena on 03 Apr, 2011 01:40 PM

    Luis Lavena's Avatar

    OK, just sent an email to Florian and send a message over GitHub

    Hello Florian,

    I've tried to email you several times, never got answer. I'm trying this time for last time.

    Because of that I've asked Nick Quaranto yank json x86-mswin32 and x86-mingw32 binaries that exist for > json 1.4.6 and newer, and posted this thread:

    http://help.rubygems.org/discussions/problems/541-the-case-about-ya...

    I think I haven't forgotten anything in that thread, but feel free to say that I'm wrong.

    Both Evan Phoenix and Nick Quaranto think I should ask you one last time, and this is what I'm doing.

    Please, pretty please, yank those gems because I'm getting really tired of answering all over the same JSON gem issue.

    I dunno how else to ask you.

    Thank you.

    Hope get some answer this time.

  4. Support Staff 5 Posted by Luis Lavena on 04 Apr, 2011 12:21 AM

    Luis Lavena's Avatar

    Closing this out, the issue has been sorted out by gem author.

  5. Luis Lavena closed this discussion on 04 Apr, 2011 12:21 AM.

Comments are currently closed for this discussion. You can start a new one.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac