Get Involved

There are so many ways for you to get involved with Swift.

First, the Swift project is much more than just the compiler. There are over fifty repositories that are part of the swiftlang organization on GitHub with projects ranging from the swift-foundation package of foundational types and APIs, to the DocC documentation compiler, to the Swift Package Manager, and more.

And contributing doesn’t only mean writing code and submitting pull requests—there are many different ways for you to get involved, including answering questions on the forums, reporting or triaging bugs, and participating in the Swift evolution process.

Answering Questions

One of the most important and immediate ways you can support the community is to answer questions on the forums. Whether you’re helping a newcomer understand a language feature or troubleshooting an edge case with a seasoned developer, your knowledge and experience of Swift can go a long way to help others.

If you haven’t done so already, join the Swift forums at https://forums.swift.org.

Reporting Bugs

Reporting bugs is a great way for anyone to help improve Swift. All of the projects in the swiftlang organizatinon track issues in GitHub.

When opening an issue, please include the following:

A concise description of the problem. If the issue is a crash, include a stack trace. Otherwise, describe the behavior you were expecting to see, along with the behavior you actually observed.

A reproducible test case. Double-check that your test case reproduces the issue. A relatively small sample (roughly within 50 lines of code) is best pasted directly into the description; a larger one may be uploaded as an attachment. Consider reducing the sample to the smallest amount of code possible—a smaller test case is easier to reason about and more appealing to сontributors.

A description of the environment that reproduces the problem. Include information about the Swift compiler’s version, the deployment target (if explicitly set) and your platform.

Because Swift is under very active development, we receive a lot of bug reports. Before opening a new issue, take a moment to browse our existing issues to reduce the chance of reporting a duplicate.

Before filing an issue requesting a new language feature, see the Swift Evolution Process section.

Triaging Bugs

Reporting bugs is an important part of improving software. Nearly as important is triaging those bugs to ensure that they are reproducible, small, and unique.

There are a number of things you can do to help triage bugs in the bug tracker.

Reproduce bugs. For a bug to be actionable, it needs to be reproducible. If you can’t reproduce the bug, try to figure out why. Get in touch with the submitter if you need more information.

Reduce bugs. Once a bug can be reproduced, reduce it to the smallest amount of code possible. Reasoning about a sample that reproduces a bug in just a few lines of Swift code is easier than reasoning about a longer sample.

Eliminate duplicate bugs. If two bug reports refer to the same underlying problem, mark the newer one as a duplicate of the older one. Doing so allows others to work more effectively.

Website and Blog Post Contributions

The Swift project welcomes suggestions and enhancements to this website and community blog post contributions showcasing initiatives and stories across the community. The Swift Website Workgroup oversees all website and blog post contributions.

Learn more about contributing to this website in the Swift.org website governance process and about how to submit blog post contributions.

Swift Evolution

Shaping the future of Swift is a community effort that anyone can participate in via the Evolution section of the Swift forums. The Swift evolution process covers all changes to the Swift language and the public interface of the Swift standard library, including new language features and APIs, changes to existing language features or APIs, removal of existing features, and so on.

See the Swift evolution review schedule for current and upcoming proposal reviews.

Good First Issues

Good first issues are bugs, ideas, and tasks that are intended to be accessible for contributors that are new to working on the Swift project, and even new to the patterns and concepts behind subprojects such as the Swift compiler. Good first issues are decorated with a corresponding label and are most easily found by visiting github.com/apple//contribute, e.g. github.com/apple/swiftlang/contribute for the main Swift repository. They are expected to be low-priority and of modest scope, and not require excessive refactoring, research, or debugging — rather, they should encourage newcomers to dip their toes in some part of Swift, learn more about it, and make a real contribution.

Anyone with commit access and insight into a particular area is welcome and encouraged to pin down or think up good first issues.