Greetings,

I have accepted the responsibility of preparing the builds for DMD and would like to engage in conversation about the way ahead.

The first concern I have is about the build cycle. Presently, it is nonexistent. There is no rhyme or reason regarding when releases are produced. The v2.065 agenda (first attempt of its kind) suggests that the next release will occur sometime in March 2014. 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:

Schedule
--------

2.064 --- 2.064.1 --- 2.064.2 -- ...
  \
+ -- 2.065beta1 --- 2.065beta2 --- ... --- 2.065rc1 --- 2.065 --- 2.065.1 --- ...
                                                            \
+ -- 2.066beta1 --- ...

Starting from the date of a major release (November 5th):

At four-week intervals we make a new beta release. There will be no separate release candidate, but if a serious problem is discovered we may do the next beta ahead of schedule or make a point release. There will be about five or six releases in that series.

In parallel with this, bugs targeted to the previous major release are merged into its branch. We will make bugfix releases from that branch as appropriate to the accumulation of changes, perhaps monthly, perhaps more often if there are serious bugs, perhaps much less often if no new changes have landed.

We will then make a release candidate for the next major release, and at this point create a release branch for it. We will iterate release candidates at approximately weekly intervals until there are no bugs blocking the final major release.

Major releases (2.0)
The big ones, every six months, intended to ship in distributions and to be used by stability-oriented users.

Release Candidates (2.065rc1)
Created one to two weeks before the release branch is created, this is a preview of the major release. There should be very few, if any changes from the release candidate to the major release.
Bugfix releases (2.064.1)
Based on the previous major release or bugfix; contains only bugfixes and perhaps documentation corrections.

Beta release (2.065beta1)
Created monthly from master, except for those months in which we create a major release. Stable and suitable for users who want the latest code and can live with changes from month to month.

Your thoughts and concerns please.

--

Andrew Edwards
--------------------
http://www.akeron.co
auto getAddress() {
    string location = "@", period = ".";
    return ("info" ~ location ~ "afidem" ~ period ~ "org");
}

Reply via email to