[Rubygems-developers] is this thing on?

James Tucker jftucker at gmail.com
Mon Oct 18 13:32:20 EDT 2010

On 18 Oct 2010, at 12:04, Jon wrote:
> 1) Increased communication and a tweaking of contributor roles.  I think perceptions such as [1] with phrases like "..he looks like ineligible for a maintainer" and "...the very poor maintenance status of rubygems..." are warning signs that the issue level has outpaced the project's ability to respond in a timely manner.  This thread's issues and responses also appear (at least to me) to be warning signs.  To me, these warnings indicate a need to review how RubyGems best utilizes it's contributors skills.

Sure, it'd be nice if we had someone paid to work on this full time, but that's not the case. I don't see anyone stepping forward, all I see are complaints about the fact that people are saying they're busy. I don't even see critical issues being addressed by patches, I mostly see patches for trivial UI changes, or specific mal-usecases. There is a great history of real bugs in the rubyforge backlog, and quite a few patches that need someone to read, think, and rewrite.

> As a User developer (outsider), I fully appreciate the fact that I don't have all the facts, but I think ideas like Backup Lead and/or Next Release Wrangler could help offload Eric when needed, enable much needed contributor "me time", take better advantage of the contributor horsepower you have, and minimize perceptions and emails like [1].  In a nutshell, evolution in the face of RubyGems central role.  While the suggestions may sound good on paper, at the end of the day, you're in the best position to know what's sustainable by you.

This is all very well and good, but who's stepping up?

> 2) Increased issue prioritization visibility.  What are the key issues preventing the next release?  There's no Issues at http://github.com/rubygems/rubygems (not really a problem) and the 59 open issues at [2] (sorted by Priority) don't really indicate which of those are viewed as "must fix" for the next release.  Maybe this list lives somewhere and I'm missing it?

There aren't any "must fix", the critical issues are that of integration points and feature enhancements. They're also quite tied to required feedback to ruby-core which takes some thought. In that regard, other patches for UI and so on are quite acceptable, but their acceptance requires testing time, which is boring and requires diligence in order to not break use cases the original author may not have thought about.

> I think a wiki page similar to [3] listing the just the key issues preventing the *next* RubyGems release is both maintainable and has tremendous benefits including:
> * Focusing contributor efforts to the highest priority issues.
> * Enables easier Drive-by-Contributions for folks having a limited amount of time to contribute, but wanting to contribute in the high value-add places.
> * Better expectation management. For example, if someone posted a bug, noticed it wasn't considered enough of an issue for the next release (and felt strongly about it), they could try to be more persuasive as to the risks if the issue remains unresolved.

This is basically all done on the bug tracker right now. Erik Hollensbe persuaded me to start collating some of the issues wrt platform and plugin stuff that I'm working on over on that wiki, which is fine, but the reality is, time spent working on that meant I didn't get the code done for the plugin stuff. I'm hoping I can do that at Rubyconf.

What you're asking is that I write down all my thoughts in great detail, which takes much longer than writing the code or doing the due dilligence and research, basically multiplying my workload by 4x. I'd agree with this if it would result in patches and better thinking from people, indeed that's what I hoped when I put the details up on the wiki at Eriks request. Thus far, that's proven to be a complete pipe dream.

I'd really like to know what you're even expecting out of this? Have you tested these expectations? Are they realistic?

Drive-by contributions tend to be limited to a single developer, operating on a single platform, running their tests in a single context on a single interpreter. That adds almost as much load as it "saves".

> While I have my own favorites I'd like to see fixed, the issue I currently feel most strongly about is the RubyGems 1.3.7 differences between the one embedded in 1.9.2-p0 and standalone...both for technical and precedent reasons.

What is done to the Rubygems that's in core is almost inexcusable. Every single developer I've spoken to about what these patches actually do (changing the code base without changing the version, changing the manner in which code is loaded, alter load order semantics in certain cases, etc) they all agree. Sure it'd be nice to educate the whole world, hell I'd like it if I could just dump my and many other peoples brains into a book and force feed it to all new developers. That feeling of mine is arrogant and unacceptable though. The fact is, people either do great work in their patches or they don't. They either understand platforms or they don't and they either look for edge cases or they don't.

The edge cases around even "trivial" things like --format-executable are really numerous and somewhat complex social and technical issues. I've seen recommendations going every which way on these topics, and none of them are well suited for a wider variety of user contexts. In order to hit that sweet spot, you've got to practice.

Marcus keeps telling me I can use OBS as a kind of CI environment for a lot of *n*x platforms, and that would be great, but I've got to learn OBS too in order to start utilising this. Loads of people seem to come forward with a lot of energy to build the initial spike test of an idea, but always end up disappearing or falling back at the platform issues and such. There is only so much hand-holding available, and until someone steps up who's willing to do that work, your words are merely just documenting the situation in a way that makes everyone slightly uneasy.

You want more contributors, but are you going to step up? Are you willing to pay for a CI system that has a VM for a few major linux platforms, BSD, OSX and Windows? Are you willing to build up an OBS attachment so we can do cross-package cross-version testing? Would you build a server testing CI to test rubygems.org against older rubygems release versions as well as master? Will you grab the current pull requests and give us a report of ruby versions and major interpreters and platforms in an easy to understand matrix of output showing where it causes failures? Will you then test that against chef and bundler too, to ensure it doesn't break those? And finally what about against plugins, geminstaller, isolate, gem2rpm, etc?

Step up please, because that's all that will really help.

More information about the Rubygems-developers mailing list