@@ -518,3 +518,49 @@ case down to 5 lines.
518
518
Happy bug hunting and test case reducing!
519
519
520
520
[ 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