Skip to content

Commit 166d4c5

Browse files
authored
Add Ecosystem steering group charter (#981)
1 parent 31b0021 commit 166d4c5

File tree

3 files changed

+206
-0
lines changed

3 files changed

+206
-0
lines changed

_data/navigation.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@
6464
- title: LLVM and Swift
6565
name: llvm-and-swift
6666
- section: Steering Groups
67+
- title: Ecosystem
68+
url: /ecosystem-steering-group/
6769
- title: Language
6870
url: /language-steering-group/
6971
sections:

community/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ Advancing the Swift programming language with a coherent, clear view of its evol
2828
* __[Member](/contributing/#member)__ is anyone who is a member of the swiftlang organization on GitHub.
2929
* __[Contributor](/contributing/#contributor)__ is anyone who has contributed to Swift by writing code, answering questions on the forums, reporting or triaging bugs, participating in the Swift evolution process, or other ways.
3030
* __Steering Groups__
31+
* __[Ecosystem](/ecosystem-steering-group)__ is a small group of experts who focus on the direction of Swift packages and tooling.
3132
* __[Language](#language-steering-group)__ is a small group of experts that drive the Swift language forward in a coherent direction.
3233
* __[Platforms](/platform-steering-group)__ is a small group of experts that enables the Swift language and its tools to be used in new environments.
3334
* __Workgroups__

ecosystem-steering-group/index.md

Lines changed: 203 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,203 @@
1+
---
2+
layout: page
3+
title: Ecosystem Steering Group
4+
---
5+
6+
The Ecosystem Steering Group fosters a flourishing Swift package and tooling
7+
ecosystem. The Ecosystem Steering Group's primary goal is to **encourage and
8+
streamline development of new packages and evolution of existing packages that
9+
are fundamental to the Swift ecosystem and broadly used across platforms such as
10+
`swift-foundation`**. The group will work toward this goal by providing
11+
development tools and actionable guidance for Swift package authors and clients.
12+
Specifically, the Ecosystem Steering Group will:
13+
14+
- work with the Swift Core Team to define a roadmap for developer experience
15+
improvements and growing the package ecosystem,
16+
- work with the Platforms Steering Group to improve the experience of setting up
17+
a Swift development environment on all supported platforms,
18+
- work with the Language Steering Group to create resources on best practices
19+
for effective use of Swift in packages, such as adopting strict concurrency
20+
checking or other new language features, or adopting tools such as the API
21+
checker to facilitate source-stable package evolution, define and facilitate an
22+
evolution process for new tools (or features of existing tools) for producing
23+
and consuming Swift packages, adopting best practices (e.g. through linters and
24+
formatters), etc, and
25+
- provide practical guidance to package authors on how to maintain and evaluate
26+
the efficacy of their packages.
27+
28+
## Membership
29+
30+
The Ecosystem Steering Group is made up of Swift community members with a
31+
variety of backgrounds, including (but not limited to) involvement in key Swift
32+
libraries, engineering experience with developer tools such as IDEs or CI
33+
systems, or experience in software supply chain. The Swift Core Team is solely
34+
responsible for the membership of the steering group and may add or remove
35+
members as it sees fit.
36+
37+
The Core Team selects one member of the steering group as the chair. The chair has no
38+
special authority over the steering group, but they are responsible for ensuring its
39+
smooth functioning, including by:
40+
41+
- organizing and leading regular meetings,
42+
- ensuring that the workgroup communicates effectively with the community, and
43+
- coordinating meetings between workgroup representatives and other Swift
44+
workgroups or teams when necessary.
45+
46+
The current members of the Ecosystem Steering Group are:
47+
48+
- David Cummings [@daveyc123](https://github.com/daveyc123)
49+
- Franz Busch, Chair [@FranzBusch](https://github.com/FranzBusch)
50+
- Mikaela Caron [@mikaelacaron](https://github.com/mikaelacaron)
51+
- Mishal Shah, Core Team Representative [@shahmishal](https://github.com/shahmishal)
52+
- Tim Condon [@0xTim](https://github.com/0xTim)
53+
- Tina Liu [@itingliu](https://github.com/itingliu)
54+
55+
56+
# Decision making
57+
58+
The Ecosystem Steering Group is commissioned by the Swift Core Team to make
59+
decisions on its behalf, and it typically works autonomously, with a goal of
60+
reaching consensus within the steering group whenever possible. Final
61+
decision-making authority about all ecosystem evolution topics rests with the
62+
Core Team.
63+
64+
Specific responsibilities in this capacity include:
65+
66+
- Evaluating and deciding on the inclusion of new libraries into the official
67+
Swift project, ensuring alignment with established Swift project principles
68+
and overall ecosystem strategy.
69+
- Ensuring the continuity and health of packages within the Swift project; this
70+
includes identifying successor maintainers or alternative solutions if a
71+
project package becomes unmaintained or vacated.
72+
- Providing oversight and guidance for official ecosystem libraries, intervening
73+
with checks and balances if their development trajectory becomes
74+
counterproductive to the broader goals or health of the Swift ecosystem.
75+
76+
# Evolution
77+
78+
The Ecosystem Steering Group has purview over a number of areas.
79+
Areas not covered are discussed [later](#areas-not-covered). The areas covered
80+
are:
81+
82+
- SwiftPM dependency management features and specifications for package services
83+
- Build systems, including the current native SwiftPM build system, swift-build,
84+
and llbuild and its variants
85+
- Tooling related to maintaining packages such as `swift-format`
86+
- Tooling related to documentation
87+
- Tooling related to code editing including IDE/editor integration
88+
- Tooling and documentation for continuous integration and deployment
89+
- Tooling and packages related to testing
90+
- `swift-foundation`
91+
92+
Proposals or vision documents that intersect with platform specific behavior
93+
will be reviewed in collaboration with the Platform Steering Group.
94+
95+
## Areas not covered
96+
97+
Evolution authority of the Ecosystem Steering Group does not extend to:
98+
99+
- The language or the standard library
100+
- The selection of low-level tools that are used by the build system on a
101+
per-platform basis
102+
- The default invocation of low-level tools by the build system
103+
- The debugger
104+
- The linker
105+
- Libraries, such as the sanitizers
106+
107+
All of these are under the purview of the Language Steering Group or Platform
108+
Steering Group.
109+
110+
# Workgroups
111+
112+
While the Ecosystem Steering group has purview over various areas that
113+
contribute to a flourishing and healthy ecosystem. Some of those areas are
114+
already covered by existing workgroups that will fall under the governance of
115+
the Ecosystem Steering group. This includes:
116+
117+
- [The Server Workgroup](/sswg/)
118+
- [The Documentation Workgroup](/documentation-workgroup/)
119+
- [The Foundation Workgroup](/foundation-workgroup/)
120+
- [The Testing Workgroup](/testing-workgroup/)
121+
122+
## Workgroup authority
123+
124+
These workgroups are the domain experts in their respective areas; hence, the
125+
authority is with the respective workgroups. Currently, the Foundation workgroup
126+
has the authority over swift-foundation and swift-corelibs-foundation. The
127+
Testing workgroup has authority over swift-testing and swift-corelibs-xctest.
128+
129+
Not all changes to these libraries undergo the Swift evolution process, and some
130+
workgroups do not have a clear evolution process. The Ecosystem Steering Group
131+
will work with all existing and future workgroups together with the contributor
132+
experience workgroup to establish a definition of what exactly is under
133+
evolution and that all workgroups are following an aligned evolution process.
134+
135+
## New workgroups
136+
137+
To ensure coverage of all areas outlined in the 'Evolution' section, the
138+
Ecosystem Steering Group intends to establish new workgroups that are not
139+
currently overseen by an existing workgroup. Consistent with the model for
140+
existing workgroups, these new workgroups will then be responsible for driving
141+
the evolution of their respective projects and focus areas, fostering
142+
specialized expertise and community engagement within those domains.
143+
144+
## Workgroup collaboration
145+
146+
The Ecosystem Steering Group is going to foster collaboration among its overseen
147+
workgroups, ensuring they communicate effectively to build a cohesive ecosystem
148+
narrative and align on strategic goals. Crucially, it serves as a vital conduit,
149+
relaying the collective needs, progress, and challenges of these workgroups
150+
to the Core Team and other Swift steering groups, while also ensuring workgroups
151+
are informed of broader project directions and decisions.
152+
153+
# Communication
154+
155+
The Ecosystem Steering Group communicates with the community primarily using the
156+
[Ecosystem](TODO) category on the Swift forums. It may also prepare special
157+
posts for the Swift Blog.
158+
159+
Furthermore, the Ecosystem Steering Group intends to establish a well defined
160+
communication process between itself and its workgroups that fosters close
161+
collaboration and synergetic effects. Additionally, this communication process
162+
is used to inform the other steering groups and the core team about the needs
163+
and challenges in the ecosystem.
164+
165+
# Ecosystem Evolution process
166+
167+
Existing workgroups that fall under the governance of the Ecosystem Steering
168+
Group may already run evolution processes. The Ecosystem Steering Group intends
169+
to established an aligned evolution process for all areas under its purview
170+
together with the existing workgroups, the contributor experience workgroup, and
171+
the platform and language steering groups. The goal is to have a clear
172+
definition for each area that covers:
173+
174+
- What packages or libraries are under evolution?
175+
- What APIs or CLI arguments are under evolution?
176+
- Is the evolution delegated to a specific workgroup?
177+
- Where does the evolution process run?
178+
179+
# Community participation
180+
181+
The Ecosystem Steering Group is not separate from the Swift community. Steering
182+
Group members participate in ecosystem evolution discussions and propose changes
183+
just like any other member of the community. When the Steering Group develops a
184+
new idea about a proposal in the course of its internal deliberations, a
185+
Steering Group member is expected to bring that idea to the community for
186+
discussion before the review is considered complete.
187+
188+
Proposals or feedback about the Swift ecosystem, the Ecosystem Evolution
189+
process, a specific Ecosystem Evolution proposal, or any other topic under the
190+
purview of the Ecosystem Steering Group are always welcome. The primary way to
191+
communicate with the Ecosystem Steering Group is simply to post in the Evolution
192+
category on the Swift forums, either by adding a reply to an existing review,
193+
pitch, or other discussion thread, or by creating a new thread in [Evolution >
194+
Discussion](https://forums.swift.org/c/evolution/discuss) or [Evolution >
195+
Pitches](https://forums.swift.org/c/evolution/pitches). Community members may
196+
also reach out privately to members of the Ecosystem Steering Group by private
197+
message on the forums using `@ecosystem-steering-group`.
198+
199+
The Ecosystem Steering Group follows the [Swift Code of
200+
Conduct](/code-of-conduct/). Instances of abusive,
201+
harassing, or otherwise unacceptable behavior may be reported by contacting the
202+
Steering Group chair or a member of the Swift Core Team or by flagging the
203+
behavior for moderation, whether you are the target of that behavior or not.

0 commit comments

Comments
 (0)