Community Overview
The Swift.org community has the singular goal of making the world’s best general purpose programming language. Collectively we will develop the language in the open, with contributions from anyone who wishes to participate. This guideline document describes how the Swift community is organized so that we can work together to add amazing new capabilities to Swift, and make it available to even more developers across more platforms.
Communication
The Swift language is developed in the open, and all technical or administrative topics about the language or community processes should be directed to the Swift public forums. Public conversations are encouraged, and active developers of the Swift language should monitor the relevant forum categories.
- Directory of forum categories and email instructions are in the forum section.
- Source code for all Swift projects can be found on GitHub at github.com/apple.
- The Swift language bug tracking system is maintained at github.com/swiftlang/swift/issues.
All communication within project spaces should adhere to Swift project’s Code of Conduct.
Community Structure
Advancing the Swift programming language with a coherent, clear view of its evolution requires strong leadership. The leadership is taken from the community, and works closely with the much broader group of contributors and users. Roles within the community include:
- Project Lead appoints technical leaders from the community. Apple Inc. is the project lead, and interacts with the community through its representative.
- Core Team is the small group responsible for strategic direction and oversight of the Swift project.
- Code Owner is the individual responsible for a specific area of the Swift codebase.
- Committer is anyone that has commit access to the Swift code base.
- Member is anyone who is a member of the swiftlang organization on GitHub.
- 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.
- Steering Groups
- Workgroups
- C++ Interoperability is a team that works on adding the support for the bidirectional interoperability between Swift and C++.
- Contributor Experience is a team that supports contributors to the Swift project, including contributions on the Swift Forums.
- Documentation is a team that helps guide the documentation experience for Swift.
- Swift on Server is a team that promotes the use of Swift for developing and deploying server applications.
- Testing is a team that helps guide the experience, libraries, and tools for testing Swift code.
- Website is a team that helps guide the evolution on the Swift.org website.
Most importantly, everyone that uses Swift is a valued member of our extended community.
Project Lead
Apple Inc. is the project lead and serves as the arbiter for the project. The project lead makes senior appointments to leadership roles, with those leaders coming from the worldwide Swift community of contributors. The community leaders and code contributors work together to continually improve Swift, and the language will advance by the good works of everyone involved.
Ted Kremenek is the appointed representative from Apple, and acts as the voice of the project lead.
Core Team
The Core Team provides cohesion across the Swift community’s various workgroups and initiatives, providing support and strategic alignment. The Project Lead appoints members of the Core Team to bring a mixture of experience, expertise, and leadership so the group may together act as effective stewards for the Swift project and its community. The Core Team membership is expected to change over time.
The current Core Team members are:
- Ben Cohen
- Holly Borla
- Marc Aupont
- Mishal Shah
- Paris Pittman
- Saleem Abdulrasool
- Ted Kremenek
We are grateful for the service of the following emeritus Core Team members:
- Chris Lattner
- Dave Abrahams
- Doug Gregor
- Joe Groff
- Joe Pamer
- John McCall
- Tom Doron
Language Steering Group
The Language Steering Group comprises experts that the Swift Project Lead and the Core Team have identified as possessing a balance of perspectives and expertise to review, guide, and strategically align changes to the language mindfully. The Language Steering Group reviews and helps iterate language evolution proposals from the community, acting as the approver of these proposals. Workgroup members help drive the Swift language forward coherently to create the best possible general-purpose programming language. The Language Steering Group membership is expected to change over time.
The current Language Steering Group members are:
- Becca Royal-Gordon
- Ben Cohen
- Doug Gregor
- Freddy Kellison-Linn
- Holly Borla
- Joe Groff
- John McCall
- Steve Canon
- Tony Allevato
- Xiaodi Wu
Forums
The primary method of communicating among community members is through the Swift forums. Within the forums, we have a number of categories and sub-categories, to help organize discussions. Forum topics can be further organized via use of tags.
In addition to the forum web interface, the forums can be interacted with via email. Subscriptions and email preferences are configured via forum user settings.
A core principle for the Swift project is that the community is an open and inclusive one. Engagement on the forums should follow these guidelines:
-
All discussion on the forums should adhere to Swift project’s Code of Conduct.
-
Different users may have different preferences in choice of language for discussion and are encouraged to use their language of choice.
-
As a matter of courtesy, responses to a post should be in the same language as the original post in order to maintain the original inclusiveness of the discussion and not inadvertantly exclude other participants already engaged on the thread (including the author of the original post).
-
A response to a post has the option of providing additional text in a different language if that is helpful.
-
Posts should not use expressive images, such as memes; violations may be removed. Please see the forum post introducing this policy for more information.
Announcements
Announcements - For anyone interested in hearing about important announcements about the Swift project. This is a low volume category.
Swift Users
Using Swift - For newcomers or those primarily interested in using the Swift language, it is best to start by engaging within the Using Swift category. This area is intended for users to get help with or ask questions about Swift or its related tools and is not for discussion about work being done to the language itself. This category will accept email sent to: swift+swift-users@forums.swift.org.
Development
Compiler - For developers to discuss the development and implementation of the Swift compiler, low-level runtime, and SourceKit. This category will accept email sent to: swift+compiler@forums.swift.org.
Standard Library - For developers to discuss the implementation of the Swift standard library. This category will accept email sent to: swift+stdlib@forums.swift.org.
Core Libraries - For developers to discuss the implementation of the Swift core libraries. This category will accept email sent to: swift+corelibs@forums.swift.org.
LLDB - For developers to discuss the implementation of the Swift REPL and Swift-specific aspects of LLDB. This category will accept email sent to: swift+lldb@forums.swift.org.
Package Manager - For developers to discuss the implementation of the Swift package manager. This category will accept email sent to: swift+swiftpm@forums.swift.org.
LLBuild - For developers to discuss the implementation of the low level build system (llbuild). This category will accept email sent to: swift+llbuild@forums.swift.org.
Announcements - For announcements relevant to developers such as release announcements, branching, and infrastructure updates.
CI Notifications - Automated notifications from ci.swift.org for build and test failures.
Swift Evolution
Please see the Swift evolution repository to learn about Swift’s evolution process and which proposals are actively being discussed.
Announcements - For announcements of Swift evolution proposal reviews and results. All discussion and review of evolution proposals occurs on the swift-evolution mailing list.
Pitches - For proposals for the evolution of Swift including new language features, new standard library APIs, and so on before they enter the review phase. This category will accept email sent to: swift+pitches@forums.swift.org.
Proposal Reviews - Posting and commentary on proposals in the review phase. This category will accept email sent to: swift+proposal-reviews@forums.swift.org.
Discussion - For general discussion of the evolution of Swift. This category will accept email sent to: swift+evolution-discuss@forums.swift.org.
Server
For developers to discuss server-focused capabilities supported by Swift.org and the Server workgroup.
Development - For developers to discuss the implementation of server-focused capabilities developed by the Server workgroup.
Docker - For developers to discuss the official Docker image support for Swift.
Related Projects
Related Projects - The Related Projects category includes sub-categories that are dedicated to open source projects within the Swift community that are separate from the Swift language itself.
Community Showcase - The Community Showcase category is a venue for members of the Swift community to announce things they’ve created that may be of interest to other Swift developers.