Skip to content

Commit 1efa532

Browse files
authored
[rust] generate a dev version and install prod version from crates.io (#6764)
1 parent ef0f748 commit 1efa532

6 files changed

Lines changed: 55 additions & 25 deletions

File tree

tests/test_the_test/test_compute_libraries_and_scenarios.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
"python",
2828
"python_lambda",
2929
"ruby",
30+
"rust",
3031
]
3132
default_libs_with_dev = [
3233
"cpp",

utils/build/docker/rust/install_ddtrace.sh

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ set -eu
55
cd /usr/app
66

77
REPO_URL=https://github.com/DataDog/dd-trace-rs
8-
PROD_TAG=datadog-opentelemetry-v0.3.1
98

109
if [ -e /binaries/rust-load-from-git ]; then
1110
rev_or_branch=$(</binaries/rust-load-from-git)
@@ -16,10 +15,36 @@ fi
1615

1716
if [ -e /binaries/dd-trace-rs ]; then
1817
echo "install from /binaries/datadog-opentelemetry with metrics-http and metrics-grpc features"
19-
cargo add --path /binaries/dd-trace-rs/datadog-opentelemetry --features metrics-http,metrics-grpc
18+
19+
cd /binaries/dd-trace-rs
20+
21+
# get the version from the cargo.lock
22+
current_version=$(cargo metadata --no-deps --format-version 1 | jq -r '.packages[] | select(.name == "datadog-opentelemetry") | .version')
23+
24+
# bump patch (right segment); — expects MAJOR.MINOR.PATCH
25+
IFS=. read -r major minor patch <<<"$current_version"
26+
if [[ -z "${minor:-}" || -z "${patch:-}" ]]; then
27+
echo "expected semver MAJOR.MINOR.PATCH, got: $current_version" >&2
28+
exit 1
29+
fi
30+
new_version="${major}.${minor}.$((patch + 1))"
31+
32+
if [ -e /binaries/dd-trace-rs/.git ]; then
33+
dev_version="${new_version}-dev+$(git -C /binaries/dd-trace-rs rev-parse --short HEAD)"
34+
else
35+
dev_version="${new_version}-dev"
36+
fi
37+
38+
echo "generating dev version $dev_version from $current_version"
39+
cargo release version -p datadog-opentelemetry "$dev_version" -x --no-confirm
40+
41+
cd /usr/app
42+
cargo add datadog-opentelemetry --path /binaries/dd-trace-rs/datadog-opentelemetry --features metrics-http,metrics-grpc,logs-http,logs-grpc
2043
else
21-
# TODO: add lastest release from crates.io
22-
echo "install from --git $REPO_URL --tag $PROD_TAG with metrics-http and metrics-grpc features"
23-
cargo add --git "$REPO_URL" --tag "$PROD_TAG" datadog-opentelemetry --features metrics-http,metrics-grpc
44+
echo "install from crates.io with metrics-http and metrics-grpc features"
45+
46+
# remove previous depedency on datadog-opentelemetry and add the new one from crates.io
47+
cargo remove datadog-opentelemetry || true
48+
cargo add datadog-opentelemetry --features metrics-http,metrics-grpc,logs-http,logs-grpc
2449
fi
2550

utils/build/docker/rust/parametric/Cargo.lock

Lines changed: 17 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

utils/build/docker/rust/parametric/Cargo.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ license = "Apache-2.0"
77
readme = "README.md"
88
publish = false
99

10+
resolver = "3"
11+
rust-version = "1.85.1" # should match Dockerfile rustc version
12+
1013
[[bin]]
1114
name = "ddtrace-rs-client"
1215
path = "src/main.rs"
@@ -35,4 +38,4 @@ opentelemetry-stdout = { version = "0.31.0", features = ["trace", "logs"] }
3538
opentelemetry-semantic-conventions = { version = "0.31.0" }
3639

3740

38-
datadog-opentelemetry = { path = "../../../../../binaries/dd-trace-rs/datadog-opentelemetry", features = ["logs-grpc", "logs-http"] }
41+
datadog-opentelemetry = { path = "../../../../../binaries/dd-trace-rs/datadog-opentelemetry", features = ["metrics-grpc", "metrics-http", "logs-grpc", "logs-http"] }

utils/build/docker/rust/parametric/Dockerfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ COPY utils/build/docker/rust/parametric/../install_ddtrace.sh ./binaries/ /binar
55
COPY utils/build/docker/rust/parametric/Cargo.toml /usr/app/
66
COPY utils/build/docker/rust/parametric/src /usr/app/
77

8-
RUN apt-get update && apt-get install -y --no-install-recommends openssh-client git
8+
RUN apt-get update && apt-get install -y --no-install-recommends openssh-client git jq build-essential perl libssl-dev
9+
10+
RUN cargo install cargo-release@0.25.18 --locked
911

1012
RUN /binaries/install_ddtrace.sh
1113

utils/scripts/compute_libraries_and_scenarios.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,6 @@ def get_outputs(self) -> dict[str, Any]:
151151
"version": "prod",
152152
}
153153
for library in sorted(self.selected)
154-
if library not in ("rust",)
155154
] + [
156155
{
157156
"library": library,

0 commit comments

Comments
 (0)