Difference between revisions of "Development and Release Process"

From D Wiki
Jump to: navigation, search
(Preparing the next release.)
m (Redirected page to DIP75)
 
(56 intermediate revisions by 9 users not shown)
Line 1: Line 1:
This page is intended to serve as a working paper to capture the essential aspects of a current discussion on the D forum concerning an improved D development and release process. As such, it should not be taken as official (until approved by Andrei), but it is to serve as a centralized location for the current proposal, so that the details won't be scattered throughout multiple disjoint forum messages and ultimately lost in the mists of time.
+
#REDIRECT [[DIP75]]
 
 
To keep things civil, the convention is that if something on this page doesn't match how you understand it should be, you should start a discussion on the [[Talk:Release Process|talk page]] before making the change.
 
 
 
==Goals==
 
 
 
* To provide D users with a stable version of D that receives only critical bugfixes, that they can build on
 
* To provide a place for adequate testing of new features before they are officially included in D
 
* To allow the D developers to continue to develop the language without being hampered by the fear of breaking large amounts of existing code
 
 
 
== Release a new version of D ==
 
 
 
The staging branch in git contains a version in stabilization. This version will be the next release of D. When it is judged stabilized enough to be released, a branch is created for this new release. The name of the branch is D2.N+1, where N is the previous version of D2 .
 
 
 
<source lang="bash">git checkout staging
 
git branch 2.N+1
 
git checkout 2.N+1</source>
 
 
 
Then, a tag is created.
 
 
 
<source lang="bash">git tag 2.N+1.0</source>
 
 
 
Packaging is done as usual based on the content of the tag.
 
 
 
Now that the release is done, we must prepare for the next release ! The current dev version, which is in master branch will be merged into staging to be stabilized.
 
 
 
<source lang="bash">git checkout staging
 
git merge master</source>
 
 
 
''Should we rebase here ? It make the branch tree more simple, but is more painful''
 
 
 
At this point, staging receive bug fixes and the cycle start again.
 
 
 
== Release a revision of a released version of D ==
 
 
 
A revision can be published on an already released version of D. Revision include bug fixes, but no new feature. We supposed bug fixes has been included into branch 2.N where N is the released version of D we want to update. M is the last revision number that have been published.
 
 
 
<source lang="bash">git checkout 2.N
 
git tag 2.N.M+1</source>
 
 
 
Packaging is done as usual based on the content of the tag.
 

Latest revision as of 18:47, 8 September 2015

Redirect to: