Skip to content

Commit 6015555

Browse files
authored
Create a branch roadmap (#1571)
* Create a branch roadmap This should show the general layout of how we're using branches to produce prospective text for upcoming versions. * fix branch name I mistyped the branch name when creating it, but there it is.
1 parent 089fae9 commit 6015555

1 file changed

Lines changed: 97 additions & 0 deletions

File tree

admin/branch-diagram.md

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
# Version and Feature branch diagram
2+
3+
We've started building branches that have preliminary text for the C# language features in versions greater than the current standard. This gives the committee a look forward to how other features could be integrated into the standard. We also hope it enables us to move more quickly by having drafts ready for all future versions.
4+
5+
A downside is that we have more complicated branch management to ensure changes we make in the standard at version 8 are propagated forward through all the branches for each upcoming version.
6+
7+
The following diagram shows the primary branches we're using in this process. Our naming conventions are as follows:
8+
9+
- Branches that have the prefix *standard* represent the approved ECMA standard for the stated version.
10+
- Branches that have the *draft* represent the current working draft for the stated version. Updates in the *draft* branches have been approved by the committee. However, feature language may be incomplete. Issues for the draft are generally tracked with issues.
11+
- Branches that have the *alpha* suffix represent a "feature complete" version of the standard. However, the language for any features not incorporated in the standard hasn't been discussed by the committee.
12+
13+
Note that all alpha versions beyond the next version (version 9) are built on the previous version's alpha branch. Therefore the unreviewed language in the *alpha* branches accumulates with each version ahead of the committee.
14+
15+
```mermaid
16+
---
17+
title: C# Standard - Version and Feature Branches
18+
---
19+
gitGraph
20+
commit id: "standard-v5"
21+
commit id: "standard-v6"
22+
branch standard-v7
23+
checkout standard-v7
24+
commit id: "v7 features"
25+
branch draft-v8
26+
checkout draft-v8
27+
commit id: "v8 features"
28+
branch draft-v9
29+
checkout draft-v9
30+
commit id: "v9 base"
31+
commit id: "v9 reviewed features"
32+
branch v9-alpha
33+
commit id: "v9 alpha feature PRs"
34+
branch draft-10
35+
checkout draft-10
36+
commit id: "v10 base"
37+
commit id: "v10 reviewed features"
38+
branch v10-alpha
39+
commit id: "v10 alpha feature PRs"
40+
branch draft-v11
41+
checkout draft-v11
42+
commit id: "v11 base"
43+
commit id: "v11 reviewed features"
44+
branch v11-alpha
45+
commit id: "v11 alpha feature PRs"
46+
```
47+
48+
After each meeting, all changes merged since the previous meeting are propagated through each of the version specific branches. The following diagram shows the workflow:
49+
50+
```mermaid
51+
---
52+
title: C# Standard - Version and Feature Branches
53+
---
54+
gitGraph
55+
commit id: "standard-v5"
56+
commit id: "standard-v6"
57+
branch standard-v7
58+
checkout standard-v7
59+
commit id: "v7 features"
60+
branch draft-v8
61+
checkout draft-v8
62+
commit id: "v8 features"
63+
branch draft-v9
64+
checkout draft-v9
65+
commit id: "v9 base"
66+
commit id: "v9 reviewed features"
67+
branch v9-alpha
68+
commit id: "v9 alpha feature PRs"
69+
branch draft-10
70+
checkout draft-10
71+
commit id: "v10 base"
72+
commit id: "v10 reviewed features"
73+
branch v10-alpha
74+
commit id: "v10 alpha feature PRs"
75+
branch draft-v11
76+
checkout draft-v11
77+
commit id: "v11 base"
78+
commit id: "v11 reviewed features"
79+
branch v11-alpha
80+
commit id: "v11 alpha feature PRs"
81+
checkout draft-v8
82+
commit id: "PRs merged at meeting"
83+
checkout draft-v9
84+
merge draft-v8
85+
checkout v9-alpha
86+
merge draft-v9
87+
checkout draft-10
88+
merge v9-alpha
89+
checkout v10-alpha
90+
merge draft-10
91+
checkout draft-v11
92+
merge v10-alpha
93+
checkout v11-alpha
94+
merge draft-v11
95+
```
96+
97+
The changes approved by the committee are propagated in turn through all *draft* and *alpha* branches for upcoming versions. This process will introduce conflicts in feature specific PRs that will be resolved after the above workflow is completed.

0 commit comments

Comments
 (0)