Skip to content

Commit c515919

Browse files
authored
CONTRIBUTING: Add docs for doing a release. (#2358)
1 parent d828f3f commit c515919

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

CONTRIBUTING.md

+46
Original file line numberDiff line numberDiff line change
@@ -518,3 +518,49 @@ case down to 5 lines.
518518
Happy bug hunting and test case reducing!
519519

520520
[More information on using `creduce`.](https://embed.cs.utah.edu/creduce/using/)
521+
522+
## Cutting a new bindgen release
523+
524+
To cut a release, the following needs to happen:
525+
526+
### Updating the changelog
527+
528+
Update the CHANGELOG.md file with the changes from the last release. Something
529+
like the following is a useful way to check what has landed:
530+
531+
```
532+
$ git log --oneline v0.62.0..HEAD
533+
```
534+
535+
Also worth checking the [next-release tag](https://github.com/rust-lang/rust-bindgen/pulls?q=is%3Apr+label%3Anext-release).
536+
537+
Once that's done and the changelog is up-to-date, run `doctoc` on it.
538+
539+
If needed, install it locally by running:
540+
541+
```
542+
$ npm install doctoc
543+
$ ./node_modules/doctoc/doctoc.js CHANGELOG.md
544+
```
545+
546+
### Bumping the version numbers.
547+
548+
Bump version numbers as needed. Run tests just to ensure everything is working
549+
as expected.
550+
551+
### Merge to `master`
552+
553+
For regular releases, the changes above should end up in `master` before
554+
publishing. For dot-releases of an old version (e.g., cherry-picking an
555+
important fix) you can skip this.
556+
557+
### Publish and add a git tag for the right commit
558+
559+
Once you're in the right commit, do:
560+
561+
```
562+
$ git tag -a v0.62.1 # With the right version of course
563+
$ pushd bindgen && cargo publish && popd
564+
$ pushd bindgen-cli && cargo publish && popd
565+
$ git push --tags upstream # To publish the tag
566+
```

0 commit comments

Comments
 (0)