tvl-depot/ops/yandex-cloud-rs
Vincent Ambo 1bdb3e5ba8 chore(ops/yandex-cloud-rs): bump API definitions to 2023-06-13
Change-Id: Iad2d85eaffe96de0cf9ecb490fe5ba87209e1005
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8765
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
2023-06-14 10:06:37 +00:00
..
examples feat(ops/yandex-cloud-rs): generated gRPC clients for Yandex Cloud 2023-04-28 12:50:33 +00:00
src refactor(ops/yandex-cloud-rs): allow TokenProvider impls to fail 2023-06-14 10:06:37 +00:00
.gitignore feat(ops/yandex-cloud-rs): generated gRPC clients for Yandex Cloud 2023-04-28 12:50:33 +00:00
build.rs feat(ops/yandex-cloud-rs): generated gRPC clients for Yandex Cloud 2023-04-28 12:50:33 +00:00
Cargo.lock chore(ops/yandex-cloud-rs): bump API definitions to 2023-06-13 2023-06-14 10:06:37 +00:00
Cargo.toml chore(ops/yandex-cloud-rs): bump API definitions to 2023-06-13 2023-06-14 10:06:37 +00:00
default.nix chore(ops/yandex-cloud-rs): bump API definitions to 2023-06-13 2023-06-14 10:06:37 +00:00
README.md chore(ops/yandex-cloud-rs): bump API specs to 2023-05-23 2023-05-23 10:17:24 +00:00

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
find src | grep '.rs$' | grep -v '^src/lib.rs$' | xargs rm

# 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