Build Master: Scheduling

luka8088 luka8088 at owave.net
Fri Nov 15 01:23:28 PST 2013


On 15.11.2013. 0:22, Xavier Bigand wrote:
> Le 14/11/2013 09:39, luka8088 a écrit :
>> On 14.11.2013. 5:29, Tyro[17] wrote:
>>> On 11/13/13, 11:06 PM, Brad Roberts wrote:
>>>> On 11/13/13 7:13 PM, Tyro[17] wrote:
>>>>> On 11/13/13, 9:46 PM, Brad Roberts wrote:
>>>>>> On 11/13/13 4:37 PM, Tyro[17] wrote:
>>>>>>> I'm of the opinion, however, that
>>>>>>> the cycle should be six months long. This particular schedule is not
>>>>>>> of my own crafting but I
>>>>>>> believe it to be sound and worthy of emulation:
>>>>>>
>>>>>> I think 6 months between releases is entirely too long.  I'd really
>>>>>> like
>>>>>> us to be back closer to the once every month or two rather than only
>>>>>> twice a year.  The pace of change is high and increasing (which is a
>>>>>> good thing).  Release early and often yields a smoother rate of
>>>>>> introducing those changes to the non-bleeding-edge part of the
>>>>>> community.  The larger the set of changes landing in a release the
>>>>>> more
>>>>>> likely it is to be a painful, breaking, experience.
>>>>>
>>>>> Surely for those of us that live on the edge, it is fun to be able to
>>>>> use the latest and greatest.
>>>>> Hence the reason for monthly release of betas. Within a month
>>>>> (sometimes shorter) of any new feature
>>>>> being implemented in the language, you'll be able to download the
>>>>> binaries for your favorite distro
>>>>> and begin testing it.
>>>>>
>>>>> The side effect is that there is more time to flesh out a particular
>>>>> implementation and get it
>>>>> corrected prior to it being an irreversible eyesore in the language.
>>>>> You also have a greater play in
>>>>> the filing bug reports as to aid in minimizing the number of bugs that
>>>>> make it into the final release.
>>>>>
>>>>> Unlike us adventurers however, companies require a more stable
>>>>> environment to work in. As such, the
>>>>> six month cycle provides a dependable time frame in which they can
>>>>> expect to see only bugfixes in to
>>>>> the current release in use.
>>>>>
>>>>> I think this release plan is a reasonable compromise for both parties.
>>>>
>>>> Companies that don't want frequent changes can just skip releases,
>>>> using
>>>> whatever update frequency meets their desires.  Companies do this
>>>> already all the time.  That only issue there is how long we continue to
>>>> backport fixes into past releases.  So far we've done very minimal
>>>> backporting.
>>>>
>>>>
>>>
>>> And what I am proposing is that we start backporting to stable releases
>>> and with subsequent bugfix releases.
>>>
>>> I'm also suggesting that for people interested in a more frequent
>>> release will have at least five, if not more, such releases (betas)
>>> prior to the official release. Live on the edge... use the beta. That's
>>> what we do now.
>>>
>>> At the moment there's nothing that make dmd.2.064.2 any more bug free
>>> than its previously released counterparts. Very few people participated
>>> in the review of the betas which were released arbitrarily (when the
>>> time seemed right). We simply call on of those betas dmd.2.064.2 and
>>> moved on. It still has a slew of bugs and more are discovered daily as
>>> people start to finally use the so called  "release".
>>>
>>> I'm saying we are go about it a little different. We get more people
>>> involved in the testing process by providing more frequent release of
>>> betas and getting much of the bugs identified fixed before designating a
>>> release. To me you get what your are after a faster turnaround on fixes
>>> (monthly). And the broader customer base gets a more stable product with
>>> less bugs.
>>>
>>
>> Just a wild thought...
>>
>> Maybe we can have monthly release and still keep it stable. Imagine this
>> kind of release schedule:
>>
>> Month #  11          12          1           2           3
>>
>>           2.064       2.065       2.066       2.067       2.068
>>           2.065rc2    2.066rc2    2.067rc2    2.068rc2    2.069rc2
>>           2.066rc1    2.067rc1    2.068rc1    2.069rc1    2.070rc1
>>           2.067b2     2.068b2     2.069b2     2.070b2     2.071b2
>>           2.068b1     2.069b1     2.070b1     2.071b1     2.072b1
>>           2.069alpha  2.070alpha  2.071alpha  2.072alpha  2.073alpha
>>
>> Where new features are only added to alpha release. And bug fixes are
>> added to all releases.
>>
>> This way new bug fixes and new features would be released every month
>> but there would be a 5 month delay between the time that feature A is
>> added to the alpha release and the time feature A is propagated to the
>> stable release. But during this period feature A would be propagated
>> through releases and there would be plenty of opportunity to test it and
>> clear it of bugs. I am not a fan of such delay but I don't see any other
>> way new features could be added without higher risk of bugs.
>>
>> Also vote up for daily snapshots.
>>
> As pure D user, I am not really comfortable with having to wait 6 months
> between releases. I like the idea to get new small features regularly
> (phobos API enhancement,...), and on some release getting a long wait
> hudge feature like Allocators.
> Small releases will help to community to live with D. It's important to
> make noise regularly around the "product". Users will also xp more
> progressively in their development.
> 
> There is a lot of development I am waiting for my project, I'll really
> be happy to see one come before the next summer :
>  - std.logger
>  - std.serialization
>  - Weak Ptr
>  - New signals/slots
>  - RPC (Remote procedure call)
>  - AST Macro
> 

Yes but not having a delay between the time a new feature is implemented
and the time it is released is very risky in terms of bugs. Because this
new features has not been tester properly. And that is a fact.

As far as I see it. Nobody is against frequent releases, but some people
(including me) are against calling them stable. Because for people who
depend on stability they are not stable enough. And calling them a
release and not calling them beta (or something like that) implies
stability. And especially if there is nothing like LTS then it implies
"this is the most stable there is".


More information about the Digitalmars-d mailing list