Use cargo-semver-checks?
I attended this very interesting talk at FOSDEM (I recommend it, I suppose videos should be available soon), and the speaker made a quite convincing case for using cargo-semver-checks as part of crates release process.
My plan is to use it through Release-plz for system-deps
but that's not an option for us here as it relies on Github actions.
-
We should first figure out why semver-checks
does not work, it cannot buildgstreamer-sys
for some reason:
The following warnings were emitted during compilation:
warning: gstreamer-sys@0.22.0:
error: failed to run custom build command for `gstreamer-sys v0.22.0 (/var/home/cassidy/dev/rust/gstreamer-rs/gstreamer/sys)`
Caused by:
process didn't exit successfully: `/var/home/cassidy/dev/rust/gstreamer-rs/target/semver-checks/local-gstreamer-0_22_0/target/semver-checks/target/debug/build/gstreamer-sys-c713f25a5f1f4a82/build-script-build` (exit status: 1)
--- stdout
cargo:rerun-if-env-changed=GSTREAMER_1.0_NO_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
cargo:warning=
pkg-config exited with status code 1
> PKG_CONFIG_PATH=/var/home/cassidy/dev/gst/gstreamer/build/meson-uninstalled:/var/home/cassidy/dev/gst/gstreamer/prefix/lib/pkgconfig PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 pkg-config --libs --cflags gstreamer-1.0 gstreamer-1.0 >= 1.23
The system library `gstreamer-1.0` required by crate `gstreamer-sys` was not found.
The file `gstreamer-1.0.pc` needs to be installed and the PKG_CONFIG_PATH environment variable must contain its parent directory.
PKG_CONFIG_PATH contains the following:
- /var/home/cassidy/dev/gst/gstreamer/build/meson-uninstalled
- /var/home/cassidy/dev/gst/gstreamer/prefix/lib/pkgconfig
HINT: you may need to install a package such as gstreamer-1.0, gstreamer-1.0-dev or gstreamer-1.0-devel.
-
How could it be integrated as part of our release process? Maybe it could be a manual job, or run only when pushing a release
branch?