Difference between revisions of "Development and Release Process"

From D Wiki
Jump to: navigation, search
(Update bash snippets, change master to stagging.)
m (Redirected page to DIP75)
 
(57 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 stagging 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 stagging
 
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.
 
 
 
== 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: