Skip to content

Commit 199f36a

Browse files
authored
Merge branch 'main' into feat/scs-0102-v2
2 parents 8460351 + 0db96a8 commit 199f36a

11 files changed

+213
-11
lines changed

Community-Governance/2025-12-project-board-nominees.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ For the term 2025-12 - 2026-12 the following people are nominated / have nominat
44

55
| Name, Firstname | Github Handle | E-Mail |
66
| ------------------- | -------------- | ----------------------------------- |
7+
| Bayr, Michael | @michaelbayr | <[email protected]> |
8+
| Berendt, Christian | @berendt | <[email protected]> |
79
| Garloff, Kurt | @garloff | <[email protected]> |
810
| Klare, Jan | @jklare | <[email protected]> |
9-
| Schoone, Jan | @jschoone | <[email protected]> |
1011
| Pilka, Martin | @mpilka | <[email protected]> |
1112
| Schöchlin, Marc | @scoopex | <[email protected]> |
12-
| Bayr, Michael | @michaelbayr | <[email protected]> |
13-
| Berendt, Christian | @berendt | <[email protected]> |
13+
| Schoone, Jan | @jschoone | <[email protected]> |
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Project Board Term 2026
2+
3+
Spokesperson:
4+
5+
| Name, Firstname | Github Handle | E-Mail | Remark |
6+
| ----------------------- | -------------- | ----------------------------------- |---------------------------------
7+
| Bayr, Michael | @michaelbayr | <[email protected]> | Elected by Community |
8+
| Garloff, Kurt | @garloff | <[email protected]> | Elected by Community |
9+
| Klare, Jan | @jklare | <[email protected]> | Elected by Community |
10+
| Kronlage-Dammers, Felix | @fkr | <[email protected]> | Represents Forum SCS-Standards |
11+
| Schoone, Jan | @jschoone | <[email protected]> | Elected by Community |

Standards/scs-0001-v1-sovereign-cloud-standards.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ In addition, the following OPTIONAL sections should be considered:
168168

169169
The lifecycle of an SCS document goes through the following phases:
170170
Draft, Stable, Deprecated, and Rejected.
171+
(Supplements mark a deviation; more on that below.)
171172

172173
```mermaid
173174
graph TD
@@ -212,7 +213,8 @@ to get in touch with the SCS community.
212213
Community participants are encouraged to present their proposal to the SCS community early on.
213214
Note that the proposal draft's content does not need to be finished in any way at this stage.
214215

215-
The pull request for the proposal MUST add exactly one SCS document,
216+
The pull request for the proposal MUST add exactly one SCS document of any type,
217+
plus potentially any number of supplements to the former document (if applicable),
216218
in the `Standards` folder.
217219
In the proposal phase,
218220
the document number MUST be replaced with `xxxx` in the file name,
@@ -251,7 +253,8 @@ To propose major update to a Stable SCS document,
251253
a community participant creates a pull request on GitHub
252254
against the [standards repository in the SovereignCloudStack organisation][scs-standards-repo].
253255

254-
The pull request MUST add exactly one SCS document,
256+
The pull request MUST add exactly one SCS document of any type,
257+
plus potentially any number of supplements to the former document (if applicable),
255258
in the `Standards` folder.
256259
The document number MUST be the same as the document it is updating,
257260
and the major version number MUST be incremented by 1.

Standards/scs-0005-v1-project-governance.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
---
22
title: Governance of the SCS community
33
type: Procedural
4-
status: Stable
4+
status: Deprecated
55
stabilized_at: 2025-01-16
6+
deprecated_at: 2025-12-16
67
track: Global
78
description: |
89
SCS-0005 outlines the structure and governance of the SCS community by the SCS Project Board and how this is elected.
Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
---
2+
title: Governance of the SCS community
3+
type: Procedural
4+
status: Stable
5+
stabilized_at: 2025-12-16
6+
replaces: scs-0005-v1-project-governance.md
7+
track: Global
8+
description: |
9+
This is version 2 of the SCS-0005 and outlines the structure and governance of
10+
the SCS community by the SCS Project Board and how this is elected.
11+
---
12+
13+
## Introduction
14+
15+
The [Sovereign Cloud Stack (SCS)](https://scs.community) provides standards
16+
for a range of cloud infrastructure types as well as a modular open-source
17+
reference implementation.
18+
The project is governed by the _SCS Project Board_.
19+
20+
## Role of the _SCS Project Board_
21+
22+
The role of the _SCS Project Board_ is the overall governance of the SCS Community and Project.
23+
This happens together with the _Forum SCS-Standards_ of the Open Source Business Alliance. To further
24+
underline this alignment, the _Forum SCS-Standards_ is part of the _SCS Project Board_.
25+
The _SCS Project Board_ itself is elected by the _SCS Community_.
26+
27+
### Definitions
28+
29+
#### _SCS Project_
30+
31+
The _SCS Project_ is the Open-Source project that consists of the software, documentation, documents, blog posts as well as the people ("_SCS Community_") working on this.
32+
33+
#### _SCS Community_
34+
35+
The collective of people, companies, and organizations promoting the idea of the _SCS Project_ as well as the people working on the various aspects.
36+
37+
#### _SCS GitHub Organization_
38+
39+
The _SCS GitHub Organization_ is this: [https://github.com/sovereigncloudstack](https://github.com/sovereigncloudstack)
40+
41+
### Roles in the _SCS GitHub Organization_
42+
43+
#### Members
44+
45+
Joining the SCS GitHub Organization as a contributor results in being assigned the **member role** in the organization. Members are contributors or collaborators who:
46+
47+
- Actively contribute to projects within the organization.
48+
- Have repository-specific access based on their contributions.
49+
- Are eligible to vote in elections and nominate candidates for the _SCS Project Board_.
50+
- Must adhere to the [Code of Conduct](https://github.com/SovereignCloudStack/.github/blob/main/CODE_OF_CONDUCT.md).
51+
52+
#### Owners
53+
54+
Members of the _SCS Project Board_ are also designated as **owners** of the SCS GitHub organization. Owners have administrative privileges, including:
55+
56+
- Managing organization-level settings.
57+
- Onboarding new members.
58+
- Enforcing compliance with governance and community standards.
59+
60+
This alignment ensures that governance roles in the SCS Project Board directly translate into operational responsibilities within the GitHub organization.
61+
62+
## Joining the SCS GitHub Organization
63+
64+
Since being part of the GitHub organization comes with a set of responsibilities, joining the SCS GitHub Organization can be done by:
65+
66+
- being invited by the _SCS Project Board_
67+
- submitting a request to be onboarded as a member to the _SCS Project Board_
68+
- have existing members of the GitHub organization nominate you
69+
70+
One of these items is sufficient.
71+
72+
Actively contributing to one or several of the projects under the governance of the SCS project board should typically result in a membership. Please be aware of our [Code of Conduct](https://github.com/SovereignCloudStack/.github/blob/main/CODE_OF_CONDUCT.md).
73+
74+
## Election of the _SCS Project Board_
75+
76+
### Term
77+
78+
The _SCS Project Board_ is elected for the term of one calendar year. Elections are done
79+
within the last six weeks of the calendar year.
80+
81+
### Seats on the board
82+
83+
The _SCS Project Board_ contains five seats. One of these seats is filled by
84+
the delegate of the _Forum SCS-Standards_. The other four seats are voted upon.
85+
86+
#### Conflict of Interest and Organizational Diversity
87+
88+
To ensure balanced representation and avoid conflicts of interest, no more than one seat on the SCS Project
89+
Board elected by the community may be held by individuals affiliated with the same organization, company,
90+
or employer at any given time. This limitation applies only to the elected seats, not to the seat filled by
91+
the delegate of the Forum SCS-Standards.
92+
93+
If two or more candidates from the same organization are among the top-ranked choices in an election:
94+
95+
- Only the highest-ranked candidate from that organization will be elected.
96+
- The remaining seat(s) will be filled by the next highest-ranked candidate(s) from different organizations.
97+
98+
If an existing board member changes their organizational affiliation during their term, resulting in multiple board
99+
members from the same organization, one of the affected members must resign their seat. The affected members may mutually
100+
agree on who will resign. If no agreement can be reached within 30 days of the affiliation change, the member who received
101+
fewer votes in the most recent election will be required to resign. A replacement will be determined according to the most
102+
recent election results, selecting the next eligible candidate from a different organization.
103+
104+
#### Resignation
105+
106+
Resignation can happen for several reasons, such as:
107+
108+
- Elected member may sustainably no longer be willing or able to serve on the project board.
109+
- Elected member needs to resign due to conflict of interest (see above for organizational diversity rules).
110+
111+
When a board member resigns, the next eligible candidate from the last election will automatically join the board,
112+
if they accept it and does not conflict with the organizational diversity rules. In case no more candidates exist,
113+
the board will continue to exist with one fewer member. If the number of elected board members falls below three,
114+
an extraordinary election will be scheduled for the rest of the term. Resigned members are encouraged to suggest
115+
new candidates. The search for candidates should at least allow for two weeks and the election announced at least
116+
three weeks in advance of happening and run for a week.
117+
118+
### Nominations
119+
120+
Every person who is part of the Sovereign Cloud Stack GitHub organization can be
121+
nominated for the board. Likewise, one can nominate oneself.
122+
The nomination is done by adding the person with the required data to the file corresponding to the term in the "Community-Governance" folder in the [Standards](https://github.com/sovereignCloudStack/standards/) repository. Obviously, the person, that is to be nominated, should be asked before being added to the file.
123+
124+
### Eligible for voting
125+
126+
Every person who is a member of the GitHub organization "Sovereign Cloud Stack" is eligible for voting. In order to be able to vote an onboarding onto the Identity Management of the SCS community needs to happen.
127+
128+
### Electoral management
129+
130+
The voting process is governed by the _Forum SCS-Standards_.
131+
Voting is done using the [Condorcet Internet Voting Service](https://civs1.civs.us/). This is the same system as is [being used by the OpenInfra foundation](https://wiki.openstack.org/wiki/Election_Officiating_Guidelines#Running_the_election_itself).
132+
133+
### Voting period
134+
135+
The voting will be open for a week.
136+
137+
### Announcement
138+
139+
The voting will be announced on the `scs-members` mailing list as well as on the
140+
[General & Announcements](https://matrix.to/#/#scs-general:matrix.org) Matrix channel.
141+
Enlisted voters will receive e-mails to the email address used in the SCS community's
142+
Identity Management system.
143+
144+
### Mechanisms
145+
146+
Each eligible voter is asked to rank the candidates according to their priorities.
147+
The four favorite choices among all voters will be elected into the _SCS Project Board_.
148+
In case there are four or fewer nominees for the election, no formal vote will
149+
be conducted, and all nominees will be elected into the _SCS Project Board_.
150+
151+
## Roles in the _SCS Project Board_
152+
153+
Among the elected Project Board a spokesperson is nominated. The spokesperson is
154+
elected by a simple majority vote among the members of the project board. The
155+
spokesperson is elected for the whole term.
156+
157+
## Version history
158+
159+
- Version 1 existed without major changes since 16.01.2025
160+
- Version 2 extends the detail of the _SCS Project Board_ election by:
161+
- adding a section to avoid conflict of interest and ensure organizational
162+
diversity
163+
- adding a section to define the election mechanism if members of the board
164+
resign
165+
- specifying how to proceed when four or fewer candidates are nominated for
166+
the elections
167+
- using objective criteria (election results) for affiliation conflict resolution
168+
- defining a minimum quorum (3 elected members) for extraordinary elections

Standards/scs-0100-v1-flavor-naming.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ Extensions need to be specified in the above-mentioned order.
321321
These are flavors expected to exist on standard SCS clouds (x86-64).
322322

323323
We expect disk sizes to be 5, 10, 20, 50, 100, 200, 500, 1000GB, 2000GB.
324-
We expect a typical CPU:Mem[GiB] ratio of 1:4.
324+
We expect a typical CPU\:Mem[GiB] ratio of 1:4.
325325

326326
| vCPU:RAM ratio | Mandatory Flavors |
327327
| -------------- | -------------------------- |
@@ -422,7 +422,7 @@ considered broken by the SCS team.
422422

423423
## Validation
424424

425-
There is a script in [flavor_name_check.py](https://github.com/SovereignCloudStack/standards/blob/main/Tests/iaas/flavor-naming/flavor-name-check.py)
425+
There is a script in [flavor-name-check.py](https://github.com/SovereignCloudStack/standards/blob/main/Tests/iaas/scs_0100_flavor_naming/flavor-name-check.py)
426426
which can be used to decode, validate and construct flavor names.
427427
This script must stay in sync with the specification text.
428428

Standards/scs-0100-v2-flavor-naming.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ so users can expect some level of parallelism and independence.
224224
These are flavors that must exist on standard SCS clouds (x86-64).
225225

226226
We expect disk sizes to be 5, 10, 20, 50, 100, 200, 500, 1000GB, 2000GB.
227-
We expect a typical CPU:Mem[GiB] ratio of 1:4.
227+
We expect a typical CPU to Mem[GiB] ratio of 1 to 4.
228228

229229
| vCPU:RAM ratio | Mandatory Flavors |
230230
| -------------- | -------------------------- |
@@ -295,7 +295,7 @@ to suggest extensions that we can discuss and add to the official scheme.
295295

296296
## Validation
297297

298-
There is a script in [`flavor_name_check.py`](https://github.com/SovereignCloudStack/standards/blob/main/Tests/iaas/flavor-naming/flavor-name-check.py)
298+
There is a script in [`flavor-name-check.py`](https://github.com/SovereignCloudStack/standards/blob/main/Tests/iaas/scs_0100_flavor_naming/flavor-name-check.py)
299299
which can be used to decode, validate and construct flavor names.
300300
This script must stay in sync with the specification text.
301301

Standards/scs-0103-v1-standard-flavors.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ In addition, the following properties must be set (in the `extra_specs`):
149149

150150
### Remarks
151151

152-
We expect the most used vCPU:RAM[GiB] ratio to be 1:4.
152+
We expect the most used vCPU\:RAM[GiB] ratio to be 1:4.
153153

154154
Note that all vCPUs of SCS standard flavors are oversubscribed — the smallest `1L-1`
155155
flavor allows for heavy oversubscription (note the `L`), and thus can be offered very

Standards/scs-0210-v2-k8s-version-policy.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ type: Standard
44
stabilized_at: 2024-02-08
55
status: Stable
66
track: KaaS
7+
replaces: scs-0210-v1-k8s-new-version-policy.md
78
---
89

910
## Introduction

Tests/chk_adrs.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,18 @@ def check_front_matter(self, fn, front, filenames):
131131
]
132132
if errors:
133133
self.emit(f"in {fn}: syntax errors with key(s) {', '.join(errors)}")
134+
# special check for replaces field if major version > 1
135+
if fn[9:12] not in ("vN-", "v1-"):
136+
replaces = front.get("replaces")
137+
if replaces is None:
138+
self.emit(f"in {fn}: missing replaces field")
139+
else:
140+
if isinstance(replaces, str):
141+
print(f"WARNING: in {fn}: replaces field not a list", file=sys.stderr)
142+
replaces = [replaces]
143+
missing = [fn for fn in replaces if fn not in filenames]
144+
if missing:
145+
self.emit(f"in {fn}: original version(s) {','.join(missing)} not found")
134146
# now do cross-field checks
135147
status = front.get("status")
136148
if "replaced_by" in front and status not in ("Deprecated", "Rejected"):

0 commit comments

Comments
 (0)