|
| 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