Skip to content

Commit a52fd26

Browse files
committed
support record structs
2 parents e09c720 + 5cfad2d commit a52fd26

25 files changed

Lines changed: 203 additions & 109 deletions

.github/workflows/do-not-merge-label-check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
- 'do not merge'
2323
steps:
2424
- name: Harden Runner
25-
uses: step-security/harden-runner@5ef0c079ce82195b2a36a210272d6b661572d83e # v2.14.2
25+
uses: step-security/harden-runner@58077d3c7e43986b6b15fba718e8ea69e387dfcc # v2.15.1
2626
with:
2727
egress-policy: audit
2828

.github/workflows/grammar-validator.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919

2020
steps:
2121
- name: Check out our repo
22-
uses: actions/checkout@v6.0.1
22+
uses: actions/checkout@v6.0.2
2323

2424
- name: Setup .NET 8.0
2525
uses: actions/setup-dotnet@v5

.github/workflows/markdownlint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
statuses: write
2929

3030
steps:
31-
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
31+
- uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98
3232
- uses: DavidAnson/markdownlint-cli2-action@07035fd053f7be764496c0f8d8f9f41f98305101 # v22.0.0
3333
with:
3434
config: ".markdownlint-cli2.jsonc"

.github/workflows/renumber-sections.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424

2525
steps:
2626
- name: Check out our repo
27-
uses: actions/checkout@v6.0.1
27+
uses: actions/checkout@v6.0.2
2828

2929
- name: Setup .NET 8.0
3030
uses: actions/setup-dotnet@v5

.github/workflows/smart-quotes.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222

2323
steps:
2424
- name: Check out our repo
25-
uses: actions/checkout@v6.0.1
25+
uses: actions/checkout@v6.0.2
2626

2727
- name: Setup .NET 8.0
2828
uses: actions/setup-dotnet@v5

.github/workflows/test-examples.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131

3232
steps:
3333
- name: Check out our repo
34-
uses: actions/checkout@v6.0.1
34+
uses: actions/checkout@v6.0.2
3535

3636
# We build examples against .NET 6.0, but use
3737
# 8.0 for the tools themselves. (The closer we

.github/workflows/tools-tests.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323

2424
steps:
2525
- name: Check out our repo
26-
uses: actions/checkout@v6.0.1
26+
uses: actions/checkout@v6.0.2
2727

2828
- name: Setup .NET 8.0
2929
uses: actions/setup-dotnet@v5

.github/workflows/update-on-merge.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828

2929
steps:
3030
- name: Check out our repo
31-
uses: actions/checkout@v6.0.1
31+
uses: actions/checkout@v6.0.2
3232

3333
- name: Setup .NET 8.0
3434
uses: actions/setup-dotnet@v5
@@ -70,7 +70,7 @@ jobs:
7070
shell: bash
7171

7272
- name: Upload Word artifact
73-
uses: actions/upload-artifact@v6
73+
uses: actions/upload-artifact@v7
7474
if: >
7575
${{ steps.renumber-sections.outputs.status }} == 'success' &&
7676
${{ steps.update-grammar.outputs.status }} == 'success' &&

.github/workflows/word-converter.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828

2929
steps:
3030
- name: Check out our repo
31-
uses: actions/checkout@v6.0.1
31+
uses: actions/checkout@v6.0.2
3232

3333
- name: Setup .NET 8.0
3434
uses: actions/setup-dotnet@v5

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)