summaryrefslogtreecommitdiff
path: root/CONTRIBUTING.md
diff options
context:
space:
mode:
authorThomas de Zeeuw <thomasdezeeuw@gmail.com>2021-03-26 12:26:33 +0100
committerThomas de Zeeuw <thomasdezeeuw@gmail.com>2021-03-27 10:27:17 +0100
commit0758ff06a0c8b27db023612d072bd006e0c61d0b (patch)
treea35bdb11d68c078f405e04ed6ac4e831732dec0e /CONTRIBUTING.md
parentf8ba06be3acf7a71383cb9d01883e073e207e94e (diff)
downloadrust-libc-0758ff06a0c8b27db023612d072bd006e0c61d0b.tar.gz
Add section about semver list to contributing guide
Diffstat (limited to 'CONTRIBUTING.md')
-rw-r--r--CONTRIBUTING.md12
1 files changed, 11 insertions, 1 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 5d52cad7fc..5be6eb9be4 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -28,14 +28,24 @@ at, fear not! This crate has CI support which tests any binding against all
platforms supported, so you'll see failures if an API is added at the wrong
level or has different signatures across platforms.
+New symbol(s) (i.e. functions, constants etc.) should also be added to the
+symbols list(s) found in the `libc-test/semver` directory. These lists keep
+track of what symbols are public in the libc crate and ensures they remain
+available between changes to the crate. If the new symbol(s) are available on
+all supported Unixes it should be added to `unix.txt` list<sup>1</sup>,
+otherwise they should be added to the OS specific list(s).
+
With that in mind, the steps for adding a new API are:
1. Determine where in the module hierarchy your API should be added.
-2. Add the API.
+2. Add the API, including adding new symbol(s) to the semver lists.
3. Send a PR to this repo.
4. Wait for CI to pass, fixing errors.
5. Wait for a merge!
+<sup>1</sup>: Note that this list has nothing to do with any Unix or Posix
+standard, it's just a list shared between all OSs that declare `#[cfg(unix)]`.
+
## Test before you commit
We have two automated tests running on [GitHub Actions](https://github.com/rust-lang/libc/actions):