Hi folks,
I want to talk about the release process. Specifically, I want to talk about how we can improve our release process.
There are a couple things I want to see in our release process:
1) Regular, periodic releases.
I had been shooting for every four weeks for the 3.0.x series. I don't think this means we have to be held to a particular deadline. I think that if people know that approximately every N weeks, we'll have a release, it will help reduce upgrade friction.
Mainly what this means to me is setting expectations with the community, and sticking to what we say.
2) Distributed responsibility
I would like to improve our Bus Factor. Today, I am the only one doing releases. That means we have a Bus Factor of one. If I get hit, who will take responsibility?
In order to fix this, I think we need other core team members to do releases. In fact, I think it should be a requirement *as a core team member* to do releases.
We require that core team members are able to work on all aspects of Rails (AR, AS, AP, etc). If we make this requirement for the code base, we need to make this requirement of our process.
We all need to go through the pain of the rubber actually hitting the road. We all need to make the tough decision to release, or to face our users and tell them why it is late.
I propose that we each take turns releasing Rails, and we publish who will be doing which release. I think it will improve our Bus Factor, frequency and stability of our releases, and improve our team overall.
If we can agree on these items, I will put together documentation about how to release Rails, along with a roster of who will be releasing what. I will even personally work with each core team member until we're all comfortable with the process.
The status quo cannot remain. I can't be around all the time to do releases, as frankly, it's burning me out.