summaryrefslogtreecommitdiff
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
parentf8ba06be3acf7a71383cb9d01883e073e207e94e (diff)
downloadrust-libc-0758ff06a0c8b27db023612d072bd006e0c61d0b.tar.gz
Add section about semver list to contributing guide
-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):