|
|
(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.
| |