|
1 | 1 | # Release cycle and cadence
|
2 |
| -The Dapr project aims to release four updates in a yearly time period, typically one in each quarter (every 3 months). For example in 2022 the minor releases were Jan (1.6.0), April (1.7.0), July (1.8.0), Oct (1.9.0) and the same is expected for 2023. |
| 2 | +The Dapr project aims to release four updates in a yearly time period, typically one in each quarter (every 3 months). For example in 2022 the minor releases were Jan (1.6.0), April (1.7.0), July (1.8.0), Oct (1.9.0). |
3 | 3 |
|
4 | 4 |
|
5 | 5 | <img src="images/release-cycle-diagram.png?raw=true">
|
6 | 6 |
|
7 | 7 |
|
8 |
| -This cadence provides a balance between regular feature releases and bug fixes, giving end users time to adopt a release and providing contributors clarity on releases they can contribute towards. By having a regular “train” of releases end users and contributors can plan ahead. |
| 8 | +This cadence provides a balance between regular feature releases and bug fixes, giving end users time to adopt a release and providing contributors clarity on releases they can contribute towards. By having a regular “train” of releases end users and contributors can plan ahead. |
| 9 | + |
| 10 | +Although this is the desired candence, imbalance between scope and availability of contributors and maintainers might impact the number of releases in a given year. Maintainers might decide to reduce the number of releases in order to have more time to finish high priority improvements. |
| 11 | + |
| 12 | +## Versioning, tagging and branching |
| 13 | + |
| 14 | +All release artifacts must follow [Semantic Versioning](https://semver.org). Each release milestone increments the minor version. In exceptional cases, the major version can be increased too. |
| 15 | + |
| 16 | +See our documentation on [versioning policy](https://docs.dapr.io/operations/support/support-versioning). |
| 17 | + |
| 18 | +At code freeze of a release milestone, the master (or main) branch is forked into a branch named `release-<MAJOR>.<MINOR>`, which lives forever. To trigger a release candidate or a release, tagging should happen in the correspondig release branch. For example, to release version `1.2.3`, the tag `v1.2.3` must be cut out of the `release-1.2` branch. |
| 19 | + |
| 20 | +Hotfixes should also be applied directly into each of the impacted release branches. Then, the fix can be merged back into master (or main) branch or cherry-picked. |
| 21 | + |
| 22 | +Ideally, a release should be 100% automated and require only the tag to be pushed upstream. |
9 | 23 |
|
10 | 24 | ## Release milestone
|
11 | 25 | The Dapr project is under continuous development addressing issues for both bugs on existing features and new features. Features go through a lifecycle from proposal, design, code, test, docs, and often quickstart and SDKs deliverables. Feature proposals can be raised and reviewed by the community and maintainers at any time.
|
@@ -39,8 +53,7 @@ On assignment, the release team lead and shadow(s) are included into the Github
|
39 | 53 | - [ ] Communicating status to the community on an on-going basis.
|
40 | 54 |
|
41 | 55 |
|
42 |
| -[ |
43 |
| -- Read about the K8s release team selection [here](https://github.com/kubernetes/sig-release/blob/master/release-team/release-team-selection.md#selection-criteria)] |
| 56 | +As a reference, find the K8s release team selection [here](https://github.com/kubernetes/sig-release/blob/master/release-team/release-team-selection.md#selection-criteria) |
44 | 57 |
|
45 | 58 | ## Feature definition phase (~2 weeks)
|
46 | 59 | With ongoing feature definition, some set of issues will bubble up as targeting a given release. In this phase, a set of feature proposals and significant design changes to existing features are reviewed where contributors are able to dedicate time to completing the issue or starting an issue for a future release.
|
|
0 commit comments