e9efa579a7
Mostly to remind myself about the wonky release process. Change-Id: I76ea8d9a2ed600ebb31f4b1a5368f3cefa0556d6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8598 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su> |
||
---|---|---|
.. | ||
examples | ||
src | ||
.gitignore | ||
build.rs | ||
Cargo.lock | ||
Cargo.toml | ||
default.nix | ||
README.md |
yandex-cloud-rs
Client library for Yandex Cloud gRPC APIs, as published in their GitHub repository.
Please see the online documentation for user-facing information, this README is intended for library developers.
The source code of the library lives in the TVL repository.
In order to build this library, the gRPC API definitions need to be
fetched from GitHub. By default this is done by Nix (see
default.nix
), which then injects the location of the API definitions
through the YANDEX_CLOUD_PROTOS
environment variable.
The actual code generation happens through the calls in build.rs
.
Releases of this library are done from dirty trees, meaning that the
version on crates.io should already contain all the generated code. In
order to do this, after bumping the version in Cargo.toml
and the
API commit in default.nix
, the following release procedure should be
used:
# Get rid of all generated source files
cd src
ls | grep -v '^lib.rs$' | xargs rm
cd ..
# Get rid of all old artefacts
cargo clean
# Verify that a clean build works as intended
cargo build
# Verify that all documentation builds, and verify that it looks fine:
#
# - Is the version correct (current date)?
# - Are all the services included (i.e. not an accidental empty build)?
cargo doc --open
# If everything looks fine, release:
cargo publish --allow-dirty