-
Notifications
You must be signed in to change notification settings - Fork 222
Add Ecosystem steering group charter #981
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,203 @@ | ||
--- | ||
layout: page | ||
title: Ecosystem Steering Group | ||
--- | ||
|
||
The Ecosystem Steering Group fosters a flourishing Swift package and tooling | ||
ecosystem. The Ecosystem Steering Group's primary goal is to **encourage and | ||
streamline development of new packages and evolution of existing packages that | ||
are fundamental to the Swift ecosystem and broadly used across platforms such as | ||
`swift-foundation`**. The group will work toward this goal by providing | ||
development tools and actionable guidance for Swift package authors and clients. | ||
Specifically, the Ecosystem Steering Group will: | ||
|
||
- work with the Swift Core Team to define a roadmap for developer experience | ||
improvements and growing the package ecosystem, | ||
- work with the Platforms Steering Group to improve the experience of setting up | ||
a Swift development environment on all supported platforms, | ||
- work with the Language Steering Group to create resources on best practices | ||
for effective use of Swift in packages, such as adopting strict concurrency | ||
checking or other new language features, or adopting tools such as the API | ||
checker to facilitate source-stable package evolution, define and facilitate an | ||
evolution process for new tools (or features of existing tools) for producing | ||
and consuming Swift packages, adopting best practices (e.g. through linters and | ||
formatters), etc, and | ||
- provide practical guidance to package authors on how to maintain and evaluate | ||
the efficacy of their packages. | ||
|
||
## Membership | ||
|
||
The Ecosystem Steering Group is made up of Swift community members with a | ||
variety of backgrounds, including (but not limited to) involvement in key Swift | ||
libraries, engineering experience with developer tools such as IDEs or CI | ||
systems, or experience in software supply chain. The Swift Core Team is solely | ||
responsible for the membership of the steering group and may add or remove | ||
members as it sees fit. | ||
|
||
The Core Team selects one member of the steering group as the chair. The chair has no | ||
special authority over the steering group, but they are responsible for ensuring its | ||
smooth functioning, including by: | ||
|
||
- organizing and leading regular meetings, | ||
- ensuring that the workgroup communicates effectively with the community, and | ||
- coordinating meetings between workgroup representatives and other Swift | ||
workgroups or teams when necessary. | ||
|
||
The current members of the Ecosystem Steering Group are: | ||
|
||
- David Cummings [@daveyc123](https://github.com/daveyc123) | ||
- Franz Busch, Chair [@FranzBusch](https://github.com/FranzBusch) | ||
- Mikaela Caron [@mikaelacaron](https://github.com/mikaelacaron) | ||
- Mishal Shah, Core Team Representative [@shahmishal](https://github.com/shahmishal) | ||
- Tim Condon [@0xTim](https://github.com/0xTim) | ||
- Tina Liu [@itingliu](https://github.com/itingliu) | ||
|
||
|
||
# Decision making | ||
|
||
The Ecosystem Steering Group is commissioned by the Swift Core Team to make | ||
decisions on its behalf, and it typically works autonomously, with a goal of | ||
reaching consensus within the steering group whenever possible. Final | ||
decision-making authority about all ecosystem evolution topics rests with the | ||
Core Team. | ||
|
||
Specific responsibilities in this capacity include: | ||
|
||
- Evaluating and deciding on the inclusion of new libraries into the official | ||
Swift project, ensuring alignment with established Swift project principles | ||
and overall ecosystem strategy. | ||
- Ensuring the continuity and health of packages within the Swift project; this | ||
includes identifying successor maintainers or alternative solutions if a | ||
project package becomes unmaintained or vacated. | ||
- Providing oversight and guidance for official ecosystem libraries, intervening | ||
with checks and balances if their development trajectory becomes | ||
counterproductive to the broader goals or health of the Swift ecosystem. | ||
|
||
# Evolution | ||
|
||
The Ecosystem Steering Group has purview over a number of areas. | ||
Areas not covered are discussed [later](#areas-not-covered). The areas covered | ||
are: | ||
|
||
- SwiftPM dependency management features and specifications for package services | ||
- Build systems, including the current native SwiftPM build system, swift-build, | ||
and llbuild and its variants | ||
- Tooling related to maintaining packages such as `swift-format` | ||
- Tooling related to documentation | ||
- Tooling related to code editing including IDE/editor integration | ||
- Tooling and documentation for continuous integration and deployment | ||
- Tooling and packages related to testing | ||
- `swift-foundation` | ||
|
||
Proposals or vision documents that intersect with platform specific behavior | ||
will be reviewed in collaboration with the Platform Steering Group. | ||
|
||
## Areas not covered | ||
|
||
Evolution authority of the Ecosystem Steering Group does not extend to: | ||
|
||
- The language or the standard library | ||
- The selection of low-level tools that are used by the build system on a | ||
per-platform basis | ||
- The default invocation of low-level tools by the build system | ||
- The debugger | ||
- The linker | ||
- Libraries, such as the sanitizers | ||
|
||
All of these are under the purview of the Language Steering Group or Platform | ||
Steering Group. | ||
|
||
# Workgroups | ||
|
||
While the Ecosystem Steering group has purview over various areas that | ||
contribute to a flourishing and healthy ecosystem. Some of those areas are | ||
already covered by existing workgroups that will fall under the governance of | ||
the Ecosystem Steering group. This includes: | ||
|
||
- [The Server Workgroup](/sswg/) | ||
- [The Documentation Workgroup](/documentation-workgroup/) | ||
- [The Foundation Workgroup](/foundation-workgroup/) | ||
- [The Testing Workgroup](/testing-workgroup/) | ||
|
||
## Workgroup authority | ||
|
||
These workgroups are the domain experts in their respective areas; hence, the | ||
authority is with the respective workgroups. Currently, the Foundation workgroup | ||
has the authority over swift-foundation and swift-corelibs-foundation. The | ||
Testing workgroup has authority over swift-testing and swift-corelibs-xctest. | ||
|
||
Not all changes to these libraries undergo the Swift evolution process, and some | ||
workgroups do not have a clear evolution process. The Ecosystem Steering Group | ||
will work with all existing and future workgroups together with the contributor | ||
experience workgroup to establish a definition of what exactly is under | ||
evolution and that all workgroups are following an aligned evolution process. | ||
|
||
## New workgroups | ||
|
||
To ensure coverage of all areas outlined in the 'Evolution' section, the | ||
Ecosystem Steering Group intends to establish new workgroups that are not | ||
currently overseen by an existing workgroup. Consistent with the model for | ||
existing workgroups, these new workgroups will then be responsible for driving | ||
the evolution of their respective projects and focus areas, fostering | ||
specialized expertise and community engagement within those domains. | ||
|
||
## Workgroup collaboration | ||
|
||
The Ecosystem Steering Group is going to foster collaboration among its overseen | ||
workgroups, ensuring they communicate effectively to build a cohesive ecosystem | ||
narrative and align on strategic goals. Crucially, it serves as a vital conduit, | ||
relaying the collective needs, progress, and challenges of these workgroups | ||
to the Core Team and other Swift steering groups, while also ensuring workgroups | ||
are informed of broader project directions and decisions. | ||
|
||
# Communication | ||
|
||
The Ecosystem Steering Group communicates with the community primarily using the | ||
[Ecosystem](TODO) category on the Swift forums. It may also prepare special | ||
posts for the Swift Blog. | ||
|
||
Furthermore, the Ecosystem Steering Group intends to establish a well defined | ||
communication process between itself and its workgroups that fosters close | ||
collaboration and synergetic effects. Additionally, this communication process | ||
is used to inform the other steering groups and the core team about the needs | ||
and challenges in the ecosystem. | ||
|
||
# Ecosystem Evolution process | ||
|
||
Existing workgroups that fall under the governance of the Ecosystem Steering | ||
Group may already run evolution processes. The Ecosystem Steering Group intends | ||
to established an aligned evolution process for all areas under its purview | ||
together with the existing workgroups, the contributor experience workgroup, and | ||
the platform and language steering groups. The goal is to have a clear | ||
definition for each area that covers: | ||
|
||
- What packages or libraries are under evolution? | ||
- What APIs or CLI arguments are under evolution? | ||
- Is the evolution delegated to a specific workgroup? | ||
- Where does the evolution process run? | ||
|
||
# Community participation | ||
|
||
The Ecosystem Steering Group is not separate from the Swift community. Steering | ||
Group members participate in ecosystem evolution discussions and propose changes | ||
just like any other member of the community. When the Steering Group develops a | ||
new idea about a proposal in the course of its internal deliberations, a | ||
Steering Group member is expected to bring that idea to the community for | ||
discussion before the review is considered complete. | ||
|
||
Proposals or feedback about the Swift ecosystem, the Ecosystem Evolution | ||
process, a specific Ecosystem Evolution proposal, or any other topic under the | ||
purview of the Ecosystem Steering Group are always welcome. The primary way to | ||
communicate with the Ecosystem Steering Group is simply to post in the Evolution | ||
category on the Swift forums, either by adding a reply to an existing review, | ||
pitch, or other discussion thread, or by creating a new thread in [Evolution > | ||
Discussion](https://forums.swift.org/c/evolution/discuss) or [Evolution > | ||
Pitches](https://forums.swift.org/c/evolution/pitches). Community members may | ||
also reach out privately to members of the Ecosystem Steering Group by private | ||
message on the forums using `@ecosystem-steering-group`. | ||
|
||
The Ecosystem Steering Group follows the [Swift Code of | ||
Conduct](/code-of-conduct/). Instances of abusive, | ||
harassing, or otherwise unacceptable behavior may be reported by contacting the | ||
Steering Group chair or a member of the Swift Core Team or by flagging the | ||
behavior for moderation, whether you are the target of that behavior or not. |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo: