You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Contributions to Foundation are welcome! This project follows the [contribution guidelines for the Swift project](https://swift.org/contributing/#contributing-code). A few additional details are outlined below.
4
+
5
+
## Licensing
6
+
7
+
By submitting a pull request, you represent that you have the right to license your contribution to Apple and the community, and agree by submitting the patch that your contributions are licensed under the [Swift license](https://swift.org/LICENSE.txt).
8
+
9
+
10
+
## Bug Reports
11
+
12
+
You can use the `Foundation` component in the [bug reporter](https://bugs.swift.org) if you know your bug is specifically about Swift Foundation.
13
+
14
+
Please remember to include platform information with your report. If the bug is about the Foundation framework on Darwin, then please use the [Apple bug reporting system](https://bugreport.apple.com).
15
+
16
+
## Pull Requests
17
+
18
+
Before embarking on a large amount of work to implement missing functionality, please double-check with the community on the [swift-corelibs-dev](https://lists.swift.org/mailman/listinfo/swift-corelibs-dev) mailing list. Someone may already be working in this area, and we want to avoid duplication of work.
19
+
20
+
If your request includes functionality changes, please be sure to test your code on Linux as well as OS X. Differences in the compiler and runtime on each platform means that code that compiles and runs correctly on Darwin (where the Objective-C runtime is present) may not compile at all on Linux.
21
+
22
+
##### Review
23
+
24
+
Each pull request will be reviewed by a code owner before merging.
25
+
26
+
* Pull requests should contain small, incremental change.
27
+
* Focus on one task. If a pull request contains several unrelated commits, we will ask for the pull request to be split up.
28
+
* Please squash work-in-progress commits. Each commit should stand on its own (including the addition of tests if possible). This allows us to bisect issues more effectively.
29
+
* After addressing review feedback, please rebase your commit so that we create a clean history in the `master` branch.
30
+
31
+
##### Tests
32
+
33
+
All pull requests which contain code changes should come with a new set of automated tests, and every current test must pass on all supported platforms.
34
+
35
+
##### Documentation
36
+
37
+
Most of the methods in Foundation are lacking documentation. We appreciate your help in filling out documentation when you implement a method. Use the markdown syntax in the [Swift Naming Guidelines](https://swift.org/documentation/api-design-guidelines.html#write-doc-comment).
38
+
39
+
## API Changes
40
+
41
+
The interface of Foundation is intended to be both stable and cross-platform. This means that when API is added to Foundation, it is effectively permanent.
42
+
43
+
It is therefore critical that any code change that affects the public-facing API go through a full `swift-evolution` review process. This gives us the chance to ensure several important requirements are satisfied:
44
+
45
+
* The proposal aligns with our current goals for the upcoming release.
46
+
* We are comfortable supporting the proposed API for the long term.
47
+
* We believe we can make the same change to the API of Darwin Foundation. This could be done via changes in the overlay, changes in the compiler, or changes in Darwin Foundation itself. This must be addressed in every proposal.
0 commit comments