[Adium-devl] Minor updates
Elliott Harris
excitebike at mac.com
Thu Nov 8 18:03:34 UTC 2007
What I'm really favor of is two things. I think we can all get behind
them.
1. A general timeframe, agreed upon by everyone where development on
minor releases stops in favor of full focus on a major release. This
should be agreed upon when the previous release is made. So for
instance, under this new system we might have picked a general
timeframe of end of October to finish up minor releases on 1.1 (This
would have been a rough 2-2 1/2 months of work), and then from that
point on, work solely on the next major release until it was done. At
this point it would enter beta, go through testing, etc. etc. just as
we do it now. I don't expect this timeframe to be completely set in
stone, it's most assuredly flexible depending on whether we mess
something up righteously enough, but a general timeframe to look
forward to making the mode switch from bugfixes to working on bigger
components would be an excellent addition to our current strategy.
2. As Colin said, a much stricter stance on back-porting non-essential
changes, especially as we move forward. I think that from a certain
point in the milestone, say, once we cross 60% completion for a major
release, and 50% for a minor release that any changes to be back-
ported need to be discussed and approved by devl. That means if we are
either half-way done with a minor release, or slightly more than half-
way done with a major release, we need to seriously consider the
severity of the bug we want to merge back. This not only guards
against non-severe bugs being back-ported, but also starts us down the
path to more code review, which is something I think everyone can
benefit from. Obviously, this presents some more devl overhead, but
hey, that's what it's there for! Depending on how well this works out,
experimenting with all out code review at a certain point (85-90% or
so) in the milestone could help on multiple levels. First, it lets us
finish our releases very strongly -- by bringing remaining bugs to the
limelight for discussion we can collectively solve problems much more
efficiently. Once those fixes are agreed upon and implemented, we gain
added benefit of group review of code we've already all discussed and
talked about. This gets everyone involved in the process of working on
various parts of code, ensures that we guard against regressions near
the end of the development process for a particular release, and gets
us working more with each other -- especially core developers.
I think with both of those strategies in place, we could make some
strong strides in improving the development process. This doesn't set
anything in stone except for when our focus changes, versus when we
are releasing anything. We can never predict how long a release might
take, but sometimes we need a fire lit under us to move on to the next
major releases. We have a lot of excellent code in 1.2, that is more
or less rotting right now because we are poring over 1.1.x.
As a tentative proposal, I say that we switch full focus, barring any
show-stopping bugs in 1.1.5 to 1.2 immediately after it's release. We
will consolidate all bugs filed against 1.1.5 to 1.2, and work against
that milestone full time. As far as I know, almost all the devs were
running trunk until we stopped for a bit to work on and test 1.1.4.
Let's push that again and get everyone back on trunk until we need to
do testing for 1.1.5. Let's assume for a second that 1.2 releases in
mid-January, which seems realistic from where we're at right now and
the pace at which we are going. I propose that by early March we
should be looking ahead to 1.3 for a release at the beginning of the
summer. These are not exact dates. I'm trying to give you an idea of
the kinds of goals we are trying to set. The actual releases are
impossible to pinpoint, but that shouldn't stop us from having a semi-
firm date for a focus change.
I really think what Colin and I are saying goes hand and hand. We both
want to see a bit more structure and professional techniques being
leveraged in our development process. Mentally, we are tired of
working on 1.1.x, much as we were tired when working on 1.0, and
subsequent 1.0.x releases. We've had our nice long "Leopard" style
development cycle, but now we need to get back to a bit more
aggressive cycle to build up activity and get the ole brains churning
again. Ambitious? Certainly! But isn't that what we are know for?
-Elliott
On Nov 8, 2007, at 11:14 AM, Colin Barrett wrote:
> The idea behind scheduling these things, in my mind, though is to
> make them *more* automatic and regular. I don't think hard dates are
> useful and I didn't really ever advocate that (although I was a bit
> vague). I'm thinking more along the lines of something soft that
> lets people *other* than core developers drive the release process
> for branch, yet still keeping everyone in the loop. I think that
> could be a big win.
>
> I definitely agree that we have been spending too much time on minor
> releases lately, and I think too much stuff is getting backported to
> 1.1 from 1.2. Less code going into branch means possibility for
> regressions which means fewer time spent dealing with 1.1. issues.
>
> Some wacky crazy ideas: having only certain (dedicated?) people do
> the merging back from 1.2 to 1.1 or requiring the permissions of
> some person (could change per release, we all take turns) to merge
> back. Gating on people is one way to limit throughput (which
> minimizes risk.
>
> Good luck getting people to schedule major releases. I think we
> could do with some general discipline about what gets checked in
> when, for sure. We have tried to start conversations like that
> before but nothing ended up coming out of it.
>
> Maybe this time will be different.
> -Colin
>
> On Nov 8, 2007, at 8:46 AM, Elliott Harris wrote:
>
>> One thing to keep in mind, and ultimately one of the flaws with a
>> hard(er) release schedule is determining where we stop working on
>> the next major version. I think one of the problems we face by
>> imposing a schedule at the minor level is that we get into a mode
>> where we work for N weeks towards a minor release, working on minor
>> release bugs, maybe at best getting to tackle one or two major
>> release bugs (schoenstorms aside). We kind of lose our ability to
>> effectively multitask between the major and minor releases. One of
>> the strengths of going at our own pace is that by the time we've
>> collectively decided on when we're going to focus on the next major
>> release, we've actually got a majority of the work done for it --
>> because we've been able to work on it during the downtime of our
>> minor release schedule.
>>
>> I don't think we should trying to regulate a schedule from the
>> bottom, but rather from the top. I suggest we keep doing minor
>> releases at our own pace, and attempt to set a more strict point in
>> time when we stop working on minor releases (baring of course,
>> unforeseen circumstances which, for the time being, seem to be
>> alright) and start working primarily on the major release. Right
>> now, I don't think we have a timeframe set for 1.2 to be released
>> (certainly no formal one). I think starting there would be a better
>> idea. Let's figure out when we want to start seriously pushing on
>> 1.2, feature freeze it (if it isn't already, another downside to so
>> many minor releases, I don't think 1.2 is at the forefront of
>> people's minds), and try to get an idea of where we are going with
>> it.
>>
>> Minor releases are important, but I think scheduling a bugfix
>> release is kind of hurting us. I'm not sure how much thought is
>> going into the absolute necessity of these releases. I'm not saying
>> we shouldn't be releasing often, because it's a very good strategy
>> and has been working well for us, however I think when we are
>> focusing on minor releases so much, our major releases are going to
>> start to suffer.
>>
>> In summary, at a certain point we will have spent more effort on
>> writing, testing, and releasing all of these minor patches than it
>> would have taken to buckle down, push tickets into 1.2, and
>> starting working seriously there, if for nothing else than a
>> mindset change. A realistic goal to begin working towards. Ticket
>> count starts to drop, people get excited, more time is spent on
>> some vital 1.2 patches and we begin testing it. Personally, I think
>> we are treating 1.1.x like it's going to be our last Tiger release
>> given the amount of work and persistent testing we are putting the
>> minor releases through. Last I checked, that wasn't the case so
>> maybe it's time to cut off doing minor releases after 1.1.5, once
>> again barring unforeseen circumstances, and get started on the push
>> for 1.2.
>>
>> Thoughts?
>>
>> Cheers,
>> Elliott
>>
>> On Nov 8, 2007, at 10:04 AM, Colin Barrett wrote:
>>>
>>> On Nov 8, 2007, at 2:11 AM, Evan Schoenberg wrote:
>>>
>>>> On Nov 7, 2007, at 8:14 PM, Chris Forsythe wrote:
>>>>
>>>>> We're not going to become mozilla, I keep getting the feeling you
>>>>> want the Adium Project to become that in some fashion.
>>>>
>>>> Let's keep in mind that while we're not going to become Mozilla
>>>> (both
>>>> because we don't have the human resources to do so and because I
>>>> don't
>>>> believe that's what anyone involved wants out of their efforts),
>>>> Mozilla represents a hugely successful (by pretty much any
>>>> measure you
>>>> can pick except 'ease of new developer involvement' in my opinion -
>>>> resulting product, user base, public appeal, financial success)
>>>> instantiation of 'open source organization'. There are without a
>>>> doubt many lessons to be learned from Mozilla, and a desire not to
>>>> become that organization shouldn't stop us from cherrypicking
>>>> knowledge where appropriate. Colin is in a very unique position to
>>>> provide relevant insights from within the Mozilla machine.
>>>
>>> Thank you, Evan, for yet again saying what I couldn't find the words
>>> to say.
>>>
>>> Firstly, I'm not suggesting we set dates for our major releases
>>> (1.x),
>>> because we can't afford not to be quality focused there. Deadlines
>>> will not help anyone get things done faster because we're all
>>> doing as
>>> much as we can (and sometimes more than we should) to help move
>>> things
>>> along and get the release out the door ASAP.
>>>
>>> However, minor releases are different story. As I mentioned
>>> earlier in
>>> this thread, there is much less churn and we have a good implicit
>>> understanding of the scope of these dot releases already. Awesome.
>>>
>>> We already seem to be releasing roughly every month or two anyway --
>>> these are minor updates and often the decision to release them is
>>> largely arbitrary, except when we are fixing some sort of major
>>> issue
>>> (in which case we can rush a release out). This wouldn't be a huge
>>> change from how we already work, honestly.
>>>
>>> I don't know how our release schedule fits in with localizers, we
>>> don't seem to do string freezes or anything that formal, but I'm
>>> willing to bet that giving them more notice is a good thing (maybe I
>>> should join the localizers list?)
>>>
>>> Maybe people are envisioning a different future than I, so I'll try
>>> and describe what I see (please don't get hung up on the details
>>> here,
>>> it's just an example, and we can figure out how this is all going to
>>> work as we go, largely):
>>>
>>> - If things are going normally and people have just been chugging
>>> away:
>>>
>>> About N weeks after the last release someone will start a thread
>>> here
>>> on devl about a release. Everyone can see what's gone in to the
>>> release through trac and we'll figure out either there or here or
>>> both
>>> which tickets get punted, ideally almost everything non-critical and
>>> open at that time (so we can respond to issues we find in the beta,
>>> which is the whole point of betas). This already happens on trac
>>> sometimes, but not always and not everyone is always on the same
>>> page
>>> about things and it's kind of confusing (at least to me).
>>>
>>> Normally that process will be quick because people are expecting it,
>>> and the next release has a known date so if it has to wait a couple
>>> weeks no big deal. Then we do the whole beta dance, get feedback,
>>> etc.
>>> until we get to zero tickets, hopefully like two weeks later, but
>>> we're at that point focused on quality, not dates. Someone then runs
>>> the release scripts and everything, and we've got 1.1.x.
>>>
>>> - If there's a critical issue:
>>>
>>> Someone will post on devl saying they think that the next release
>>> should go out once issue X is fixed, ideally we'll all agree, punt
>>> as
>>> much stuff as we can (ideally everything) to the next release and
>>> get
>>> that fix out there for testing and then release ASAP.
>>>
>>>
>>> Remember, the above is only an example of the type of work flow I'm
>>> envisioning. Is it a little more clear now how this is better than
>>> our
>>> current process? We can definitely be more explicit and regular with
>>> our release process (which is a Good Thing) without causing
>>> additional
>>> headaches.
>>>
>>> -Colin
>>>
>>>
>>> _______________________________________________
>>> Adium-devl mailing list
>>> Adium-devl at adiumx.com
>>> http://adiumx.com/mailman/listinfo/adium-devl_adiumx.com
>>
>> _______________________________________________
>> Adium-devl mailing list
>> Adium-devl at adiumx.com
>> http://adiumx.com/mailman/listinfo/adium-devl_adiumx.com
>
> _______________________________________________
> Adium-devl mailing list
> Adium-devl at adiumx.com
> http://adiumx.com/mailman/listinfo/adium-devl_adiumx.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://adium.im/pipermail/devel_adium.im/attachments/20071108/2862d98b/attachment-0001.html>
More information about the devel
mailing list