Now that is out, let’s talk about the Prototype community.

A lot of people have been commenting on how quiet it’s been around here over the last few months. There are several reasons:

  • We were quite busy with behind-the-scenes stuff. Moving to GitHub and Lighthouse was quite the task. As part of that migration we went through all the bugs on the old Rails Trac and were therefore left with a large backlog of bugs that we’d waited too long to address.
  • We were quite busy with our day jobs. Only a couple of us are freelancers; the rest work full-time for software companies. And usually there are several people working on Prototype at any one time, but over the summer it’s rarely been more than one or two.
  • In an effort to “catch up” with the accumulated tickets, we tried to stuff too much into a single bugfix release. We need to keep releases small and focused; trying to change too much at once tends to disorient us and our users. Once we realized we needed to scale back this release, it took a while to figure out which changes needed to stay and which needed to be reverted.

These aren’t excuses; they’re just explanations. As a team, we agree that we’ve got to prevent such a long release gap from happening again, and to keep an eye out for warning signs like the ones listed above.

This means, among other things, that we’re planning to move away from a “when it’s ready” release schedule. Instead, we’ll move toward one in which there are several releases per year; whatever is ready in time for a given release will go in, and whatever is not will have to wait. That applies to bug fixes and features alike. Eight months between releases just won’t work.

What you can do

Community outreach was one of the major goals of Prototype Developer Day. Many people are frustrated with the state of the Prototype community and would like to see some changes made. We’re in complete agreement.

Ideally, as an open-source community grows, those who want to help out gravitate toward specific roles. Those who can grok the source code write patches; those who are good at diagnosing problems file bug reports; those who can write clearly contribute documentation; and so on. We’d love to grow that “halo” around Prototype Core so that things can get done more quickly.

To be more specific, we would love help in any of these areas:

  1. Give support on the Prototype & scrip.aculous mailing list.
  2. File bugs in Lighthouse when you encounter errors or surprising behavior in Prototype.
  3. Write test cases or patches for existing bugs in Lighthouse.
  4. Discuss the direction of the library and its future on the Prototype Core mailing list.
  5. Propose new features and implement them.
  6. Write documentation wherever you feel we need more; submit it to Lighthouse as an enhancement.
  7. Suggest blog posts. (Or even write them!) Post to the Prototype Core list if you’re interested in doing this.

There are, of course, many other things one can do to help us out. But if you’re looking for a way to contribute and don’t have something specific in mind, we’d suggest doing one of these seven things.

What we can do

We know we need more help, but we also know we need to be better community curators. So here are some things we pledge to do better:

  1. We’ll beef up the Prototype web site so that it’s easier to get started with the framework, easier to find great resources like Scripteka and Prototype UI, and easier to find answers to common questions.
  2. We’ll give special attention to documentation tickets on Lighthouse so that our API docs don’t stay stale and thin.
  3. We’ll release on a more consistent schedule, as explained above.
  4. We’ll resume work on PDoc (inline documentation) and Sprockets (JS dependency management), spin-off projects that make Prototype more of a “platform.” They’ll be a boon to the Prototype ecosystem when they’re completed.

Finally: if you consider yourself to be good at planning and organizing an open-source project, then we’d love your input on how to grow our community. Our highest priority, however, is not to launch a new initiative or process; it’s to get more people doing the seven things listed above.