This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
devel:roadmap [2017-03-20 12:23] – [Branches] skyjake | devel:roadmap [2018-12-12 16:43] (current) – [Work branches] skyjake | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | |||
+ | |||
+ | ====== Project roadmap ====== | ||
+ | |||
+ | |||
+ | See: [[http:// | ||
+ | |||
+ | |||
+ | ===== Conventions ===== | ||
+ | |||
+ | |||
+ | Doomsday' | ||
+ | |||
+ | * **Stable releases at fixed dates** is important because otherwise there is a high likelihood of stable releases being postponed. The ever-present " | ||
+ | * **Feature work** is what drives the project forward. This is the exciting stuff that motivates developers to work on the project. However, during this type of work it is difficult to do general bug fixing in other parts of the code. To keep the master branch from breaking, this type of work should generally occur in separate work branches. | ||
+ | * **Productization** is when the master branch is merged into the stable branch, and the stable branch is then cleaned up to be suitable for use by everyone. Usually this involves a lot of polishing, verifying edge cases, and generally tying up all the loose ends after the work branches have been merged. | ||
+ | * **Bug fixing** is a crucial step where reported and other known bugs are addressed. During the bug fixing phase, bugs are evaluated, and fixed if possible. Bugs may also be scheduled for upcoming unstable phases, where the fixing will occur as a by-product of some larger change or improvement. | ||
+ | |||
+ | |||
+ | ===== Release types ===== | ||
+ | |||
+ | |||
+ | There are three different kinds of releases: Unstable, Candidate, and Stable. For more information, | ||
+ | |||
+ | |||
+ | ===== Tracking ===== | ||
+ | |||
+ | |||
+ | The project' | ||
+ | |||
+ | In practice, this means that all changes and fixes of high enough significance should be entered into the tracker in some way. | ||
+ | |||
+ | Especially bugs should be tracked very carefully and meticulously, | ||
+ | |||
+ | |||
+ | ===== Branches ===== | ||
+ | |||
+ | |||
+ | The primary branch is called **master**. All builds are made from it automatically on a (usually) biweekly schedule by the [[automated build system]]. This means that all development in the master branch must be atomic enough so that the branch remains releasable at any given moment. Other branches should be used for working on new features until they are ready for merging into the master. Bug fixing should be done in the master branch so that the fixes are released immediately. // | ||
+ | |||
+ | Another important branch is the **stable** branch that is reserved for stable releases. It can be used for applying patches to the latest stable release. | ||
+ | |||
+ | |||