|
3 | 3 | Welcome! If you are reading this document, it means you are interested in contributing
|
4 | 4 | to the `libc` crate.
|
5 | 5 |
|
6 |
| -## v0.2 changes |
| 6 | +## v1.0 Roadmap |
7 | 7 |
|
8 |
| -If you want to add your changes to v0.2, please submit them to the `libc-0.2` branch. |
9 |
| -If you want to add any breaking changes, it should be submitted to the main branch, |
10 |
| -which has changes for v0.3. |
11 |
| -We will support and make a new release for v0.2 until we make the first release of v0.3. |
| 8 | +`libc` has two active branches: `main` and `libc-0.2`. `main` is for active |
| 9 | +development of the upcoming v1.0 release, and should be the target of all pull |
| 10 | +requests. `libc-0.2` is for updates to the currently released version. |
| 11 | + |
| 12 | +If a pull request to `main` is a good candidate for inclusion in an `0.2.x` |
| 13 | +release, include `@rustbot label stable-nominated` in a comment to propose this. |
| 14 | +Good candidates will usually meet the following: |
| 15 | + |
| 16 | +1. The included changes are non-breaking. |
| 17 | +2. The change applies cleanly to both branches. |
| 18 | +3. There is a usecase that justifies inclusion in a stable release (all |
| 19 | + additions should always have a usecase, hopefully). |
| 20 | + |
| 21 | +Once a `stable-nominated` PR targeting `main` has merged, it can be cherry |
| 22 | +picked to the `libc-0.2` branch. A maintainer will likely do these cherry |
| 23 | +picks in a batch. |
| 24 | + |
| 25 | +Alternatively, you can start this process yourself by creating a new branch |
| 26 | +based on `libc-0.2` and running `git cherry-pick -xe commit-sha-on-main` (`git |
| 27 | +cherry-pick -xe start-sha^..end-sha` if a range of commits is needed). `git` |
| 28 | +will automatically add the "cherry picked from commit" note, but try to add a |
| 29 | +backport note so the original PR gets crosslinked: |
| 30 | + |
| 31 | +``` |
| 32 | +# ... original commit message ... |
| 33 | +
|
| 34 | +(backport <https://github.com/rust-lang/libc/pull/1234>) # add manually |
| 35 | +(cherry picked from commit 104b6a4ae31c726814c36318dc718470cc96e167) # added by git |
| 36 | +``` |
| 37 | + |
| 38 | +Once the cherry-pick is complete, open a PR targeting `libc-0.2`. |
| 39 | + |
| 40 | +See the [tracking issue](https://github.com/rust-lang/libc/issues/3248) for details. |
12 | 41 |
|
13 | 42 | ## Adding an API
|
14 | 43 |
|
@@ -51,7 +80,7 @@ With that in mind, the steps for adding a new API are:
|
51 | 80 | 5. Wait for a merge!
|
52 | 81 |
|
53 | 82 | <sup>1</sup>: Note that this list has nothing to do with any Unix or Posix
|
54 |
| -standard, it's just a list shared between all OSs that declare `#[cfg(unix)]`. |
| 83 | +standard, it's just a list shared among all OSs that declare `#[cfg(unix)]`. |
55 | 84 |
|
56 | 85 | ## Test before you commit
|
57 | 86 |
|
|
0 commit comments