github.com/technosophos/deis@v1.7.1-0.20150915173815-f9005256004b/docs/roadmap/schedule.rst (about) 1 :title: Release Schedule 2 :description: When does Deis have major, minor, and patch releases? 3 4 .. _release_schedule: 5 6 Release Schedule 7 ================ 8 9 Some of the greatest assets of the Deis project are velocity and agility. 10 Deis changed rapidly and with relative ease during initial development. 11 12 Deis now harnesses those strengths into powering a regular, public release 13 cadence. From v1.0.0 onward, the Deis project will release a minor version each 14 month, with patch versions as needed. The project will use GitHub milestones to 15 communicate the content and timing of major and minor releases. 16 17 Deis releases are not feature-based, in that dates are not linked to specific 18 features. If a feature is merged before the release date, it is included in the 19 next minor or major release. 20 21 The master ``git`` branch of Deis always works. Only changes considered ready to 22 be released publicly are merged, and releases are made from master. 23 24 Semantic Versioning 25 ------------------- 26 27 Deis releases comply with `semantic versioning`_, with the "public API" broadly 28 defined as: 29 30 - the REST API for *deis-controller* 31 - etcd keys and values that are publicly documented 32 - ``deis`` and ``deisctl`` commands and options 33 - essential ``Makefile`` targets 34 - provider scripts under ``contrib/`` 35 36 Users of Deis can be confident that upgrading to a patch or to a minor release 37 will not change the behavior of these items in a backward-incompatible way. 38 39 40 Patch Releases 41 -------------- 42 43 A patch release of Deis includes backwards-compatible bug fixes. Upgrading to 44 this version is safe and can be done in-place. 45 46 Backwards-compatible bug fixes to Deis are merged into the master branch at any 47 time after they have :ref:`two approval comments <merge_approval>`. 48 49 Patch releases are created as often as needed, based on the priority of one or 50 more bug fixes that have been merged. If time or severity is crucial, an 51 individual maintainer can create a patch release without consensus from others. 52 Patch releases are created from a previous release by cherry-picking specific 53 bug fixes from the master branch, then applying and pushing the new release tag. 54 55 56 Minor Releases 57 -------------- 58 59 A minor release of Deis introduces functionality in a backward-compatible 60 manner. Upgrading to this version is safe and can be done in-place. 61 62 Backwards-compatible functionality changes to Deis are merged into the master 63 branch after they have :ref:`two approval comments <merge_approval>`, and after 64 the PR has been assigned to a milestone tracking the minor release. 65 66 It is preferable to merge several backwards-compatible functionality changes for 67 a single minor release. 68 69 The Deis project will use GitHub milestones to communicate the content and 70 timing of planned minor releases. Currently project maintainers meet each week 71 on Thursday afternoon to assign pull requests to milestones. 72 73 The Deis project will release a minor version of the platform on the first 74 Tuesday of each month. The target day may be shifted to accomodate holidays or 75 unusual circumstances. If project maintainers agree, an additional minor release 76 may occur between planned releases. Code freeze and :ref:`further acceptance 77 tests <features_to_be_tested>` begin on the Thursday before a targeted release. 78 79 A minor release may be superceded by a major release. 80 81 82 Major Releases 83 -------------- 84 85 A major release of Deis introduces incompatible API changes. Upgrading to this 86 version may involve a backup and restore process. Custom integrations with Deis 87 may need to be updated. 88 89 Incompatible changes to Deis are merged into the master branch deliberately, by 90 agreement among maintainers. In addition to 91 :ref:`two approval comments <merge_approval>`, the pull request must be assigned 92 to a planning milestone for that release, at which point it can be merged when 93 release activities and testing begin. 94 95 The Deis project will use GitHub milestones to communicate the content and 96 timing of planned major releases. 97 98 99 .. _`semantic versioning`: http://semver.org/spec/v2.0.0.html