Skip to content

Commit 9b2a03c

Browse files
alexeypilyugindd-agent-integrations-bot[bot]
andauthored
Pin meson and ninja versions (#24132)
* Pin meson and ninja versions * Update dependency resolution * Renovate and claude.md support * Update dependency resolution --------- Co-authored-by: dd-agent-integrations-bot[bot] <dd-agent-integrations-bot[bot]@users.noreply.github.com>
1 parent f214fd2 commit 9b2a03c

12 files changed

Lines changed: 172 additions & 88 deletions

.builders/AGENTS.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Builder Image Guidelines
2+
3+
## Pinning Downloaded Tooling
4+
5+
Every external artifact fetched in a Dockerfile or setup script must specify both
6+
an exact version and a SHA-256 hash. Do not download "latest" or an unverified
7+
file.
8+
9+
- Define the version in an `ENV ..._VERSION` (or `ARG`) so it is visible and
10+
reusable.
11+
- On Windows, fetch with `Get-RemoteFile -Uri ... -Path ... -Hash '<sha256>'`
12+
(see `images/helpers.ps1`). The hash is mandatory for these downloads.
13+
- On Linux, verify with `echo "<sha256> <file>" | sha256sum --check` (or the
14+
`SHA256=` argument to `install-from-source.sh`).
15+
16+
Existing entries (7-Zip, Git, Rust, Python, OpenSSL, NASM, Perl, PostgreSQL,
17+
etc.) all follow this pattern; match it for anything new.
18+
19+
## Pinning Python Dependencies
20+
21+
Pin Python packages to exact versions with `==`:
22+
23+
- In the requirement files (`deps/*.txt`, `images/runner_dependencies.txt`,
24+
`test_dependencies.txt`), add new entries as `name==X.Y.Z`. Bounded ranges
25+
(e.g. `cryptography<49`) are acceptable only when a transitive constraint
26+
requires it; add a comment explaining why.
27+
- In inline `pip install` commands inside a Dockerfile, pin every package
28+
(e.g. `pip install meson==$Env:MESON_VERSION ninja==$Env:NINJA_VERSION`),
29+
never a bare package name.
30+
31+
## Keeping Pins Up To Date
32+
33+
Pins in the builder images are tracked by Renovate (the `build dependencies`
34+
group in `renovate.json`) so they don't rot. For a version to be trackable:
35+
36+
- Hoist it into its own `ENV NAME="X.Y.Z"` declaration and reference it from the
37+
`RUN` step (`$Env:NAME` under `pwsh`, `${NAME}` under bash). A `# renovate:`
38+
comment cannot live mid-`RUN` because line continuations break it, so the
39+
annotation must sit on the line directly above the `ENV`.
40+
- Annotate the `ENV` with the datasource and package name on the preceding line:
41+
42+
```dockerfile
43+
# renovate: datasource=pypi depName=meson
44+
ENV MESON_VERSION="1.11.1"
45+
```
46+
47+
The matcher lives in `renovate.json` under `customManagers` (scoped to the
48+
builder Dockerfiles under `.builders/images/`). It currently covers the `pypi`
49+
datasource; extend it there when adding pins from other ecosystems.

.builders/CLAUDE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
@AGENTS.md

.builders/images/windows-x86_64/Dockerfile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,11 @@ RUN Get-RemoteFile `
149149
Remove-Item win_flex_bison-$Env:WINFLEXBISON_VERSION.zip && `
150150
Add-ToPath -Append 'C:\winflexbison'
151151
# Meson + Ninja for building PostgreSQL 18+ on Windows
152-
RUN python -m pip install --no-warn-script-location meson ninja && `
152+
# renovate: datasource=pypi depName=meson
153+
ENV MESON_VERSION="1.11.1"
154+
# renovate: datasource=pypi depName=ninja
155+
ENV NINJA_VERSION="1.13.0"
156+
RUN python -m pip install --no-warn-script-location meson==$Env:MESON_VERSION ninja==$Env:NINJA_VERSION && `
153157
Add-ToPath -Append 'C:\Program Files\Python313\Scripts'
154158
# libpq and pg_config as needed by psycopg
155159
ENV PG_VERSION="18.3"

.builders/inputs_hash.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,9 @@
9191
'pyproject.toml',
9292
# Runs in CI to install pytest/etc; not baked into any image or artifact.
9393
'test_dependencies.txt',
94+
# Contributor documentation; not baked into any image or artifact.
95+
'AGENTS.md',
96+
'CLAUDE.md',
9497
})
9598

9699

.deps/builder_inputs.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
# Hash inputs are defined in .builders/inputs_hash.py (SHARED_INPUTS,
1212
# RESOLUTION_INPUTS).
1313
[resolution]
14-
hash = "8b2d064772af89593e2aea968bb9b2cbbdaf9455cc192bf3ed424169888544ff"
14+
hash = "49659e448cd576450afd67fddcdb5df20dc3d81702887c93c12267072e72d682"
1515

1616
[images]
1717
linux-aarch64 = "a1669fbe68a979e90a7c055ccdd8b2462f1082fe663beea08a658d64459a75c0"
1818
linux-x86_64 = "6ad554e9b189a7c37f78b62412d7740131ca7df2b0dfb007dc7178175dc7e904"
1919
macos-aarch64 = "5d5a448db6d5779ab752d069af584b768008dd58ecf8a0714c8783012cfd88f3"
2020
macos-x86_64 = "68158571e4f5798d35480ea1a4d1daa5ae617bdb62181d5171570865851910a3"
21-
windows-x86_64 = "6166e3111be69c39b4df656e12792580f152d3879133b2860a67c94cd9684df2"
21+
windows-x86_64 = "26a02f1ee39f23aef1e0752f83ee0c18a73a89c044ebc1144a6b298f079ca17d"

.deps/image_digests.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"linux-aarch64": "sha256:a7d8623cc0e65c4e6ae4bb54a7045f697bfc05224be7eba327da2e7bd41a00a2",
33
"linux-x86_64": "sha256:aca380297b1e1606d3425be715bc2a330aab37ec9fbe189480ae0cd30ac37cd6",
4-
"windows-x86_64": "sha256:6e369563d1847595dde68b720852376ff4c0adb49fa1066dd51c6a5c4249cf37"
4+
"windows-x86_64": "sha256:f1faec4f3a11a9a91ebea9b19dce833a5b9d6558fa601c764d339e770c3714c6"
55
}

.deps/resolved/linux-aarch64_3.13.txt

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
aerospike @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/aerospike/aerospike-7.1.1-20260617152838-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=6de20ccf0ed810e1095f70b256521d6727ecb81bb71d6f30cc93433ab4382720
2-
botocore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/botocore/botocore-1.42.72-20260618154823-py3-none-any.whl#sha256=f1933a8ca6c1108ed23f7b01f82577327fc254e330025887fdd4ba17db03e8e2
2+
botocore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/botocore/botocore-1.42.72-20260622202613-py3-none-any.whl#sha256=f1933a8ca6c1108ed23f7b01f82577327fc254e330025887fdd4ba17db03e8e2
33
cm-client @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/cm-client/cm_client-45.0.4-20260326173357-py3-none-manylinux2014_aarch64.whl#sha256=0bbcf2766028850c26a917deef3704a096cc9ba0c25220d45ff424334d25dcd7
4-
confluent-kafka @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/confluent-kafka/confluent_kafka-2.13.2-20260618154835-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=96b2732bc2087c67138ff14ba4803bf82bee50dd0c024ba318e50358f0a04ce9
5-
cryptography @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/cryptography/cryptography-48.0.1-20260618154837-cp313-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=6d357a0de3d59f0da277b79fe53c57dbc8dd63c2f0baae529f399b81654d8779
4+
confluent-kafka @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/confluent-kafka/confluent_kafka-2.13.2-20260623162625-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=cfc486aae2d884855b86cf6665330b438ed4e22d8e989e51c846c055c723885b
5+
cryptography @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/cryptography/cryptography-48.0.1-20260623162626-cp313-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=c71b50159f74559ac8f10fbdd22eca8f3c99510918deeb58bad23ffa405800ab
66
ddtrace @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/ddtrace/ddtrace-3.19.5-20260417115249-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl#sha256=a4f8d07adccdd43908156ab2c143dbb6261ed9a3c43ba58a3bb6bd1b6ef94734
77
foundationdb @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/foundationdb/foundationdb-6.3.25-20260326173358-py3-none-manylinux2014_aarch64.whl#sha256=d34180500220db4458e57505c774de0363456d4129f0e3fe98c9e99e8eef77c2
8-
gssapi @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/gssapi/gssapi-1.11.1-20260618154840-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=eeb32bc11ae34a615623eaaf5d11bbae1caa103caa671abbb6817cda645733a6
9-
keystoneauth1 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/keystoneauth1/keystoneauth1-5.14.0-20260618154844-py3-none-any.whl#sha256=981596c8e7346d2b46ee5ec738312b8e46b0beb29d62104ccb7c113ed9c7fbef
10-
krb5 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/krb5/krb5-0.9.0-20260618154847-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=488e1a55abe21d93f191092096c451b11b5852ed8d8db3840aaff7e228d56853
11-
openstacksdk @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/openstacksdk/openstacksdk-4.10.0-20260618154907-py3-none-any.whl#sha256=88abe8f44e3b8c5c25b1093de735c700aa727a7ac408e273aa855d6db6ba38bf
12-
os-service-types @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/os-service-types/os_service_types-1.8.2-20260618154929-py3-none-any.whl#sha256=758ccaa020eea0edd84bcf4123746ddd060d1dbaeef63d04d76bd2e0ae6f91d8
13-
pbr @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pbr/pbr-7.0.3-20260618154950-py2.py3-none-any.whl#sha256=1544652b80307f0b4c491bd66f58f969cb0656994e632365f90e8e044c223b4e
8+
gssapi @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/gssapi/gssapi-1.11.1-20260622201012-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=3f5892c3492c9345b38cf2c70d3d0aaf302e3a96ab3cbd2c274ce2742facc3fb
9+
keystoneauth1 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/keystoneauth1/keystoneauth1-5.14.0-20260622202636-py3-none-any.whl#sha256=981596c8e7346d2b46ee5ec738312b8e46b0beb29d62104ccb7c113ed9c7fbef
10+
krb5 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/krb5/krb5-0.9.0-20260622201020-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=21b5258ce6ed111f70db66a289d223e28a2059499474a940e6b6dc07bc03158e
11+
openstacksdk @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/openstacksdk/openstacksdk-4.10.0-20260622202702-py3-none-any.whl#sha256=88abe8f44e3b8c5c25b1093de735c700aa727a7ac408e273aa855d6db6ba38bf
12+
os-service-types @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/os-service-types/os_service_types-1.8.2-20260622202727-py3-none-any.whl#sha256=758ccaa020eea0edd84bcf4123746ddd060d1dbaeef63d04d76bd2e0ae6f91d8
13+
pbr @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pbr/pbr-7.0.3-20260622202751-py2.py3-none-any.whl#sha256=1544652b80307f0b4c491bd66f58f969cb0656994e632365f90e8e044c223b4e
1414
psutil @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/psutil/psutil-6.0.0-20260326173401-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=22e075e3cbc57b5da0d93f72f691746c5198ce88c5aea6fdb54186b3e8c46832
1515
psycopg-c @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/psycopg-c/psycopg_c-3.3.3-20260617153030-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=9d082f4d86a3f184444b13a8ca066cc785e0485655399c204436884b878c2868
1616
pymongo @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pymongo/pymongo-4.8.0-20260617153030-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=f4deb9d6cd1c5b80cf31b819d5d0bf1f3e23374666368149d69f57b1beb2886f
1717
pyodbc @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pyodbc/pyodbc-5.3.0-20260617153031-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=b208f21b2f68d2047762a96fb58d96c460f89f0a2203f339f9baca4a78e4b5a8
18-
pysnmp-mibs @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pysnmp-mibs/pysnmp_mibs-0.1.6-20260618155014-py2.py3-none-any.whl#sha256=0cc4610711208cdc64361464a23d1f2dce88ec5990a12b4bdce4f13b6a169810
18+
pysnmp-mibs @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pysnmp-mibs/pysnmp_mibs-0.1.6-20260622202821-py2.py3-none-any.whl#sha256=0cc4610711208cdc64361464a23d1f2dce88ec5990a12b4bdce4f13b6a169810
1919
pyvmomi @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pyvmomi/pyvmomi-8.0.3.0.1-20260326173403-py2.py3-none-manylinux2014_aarch64.whl#sha256=dd71476b7308286ed4219373ca9523e4f06bfed3f5932f60e5c67d8d5a673e1e
20-
requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/requests-unixsocket2/requests_unixsocket2-1.0.1-20260618155035-py3-none-any.whl#sha256=aae3f1743ab60955ea91e9a095d54997ea56b956bab652bf194379ef4dc6fa7f
21-
securesystemslib @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/securesystemslib/securesystemslib-0.28.0-20260618155058-py3-none-any.whl#sha256=861ab6f8c1930e0c05915f32a34f1c4ae1d76ee542ad2b424121e3e26a9fb1dd
22-
setuptools @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/setuptools/setuptools-82.0.1-20260618155119-py3-none-any.whl#sha256=b020c62c9ea6c1c3e7a29a8e385967909ceb85a77398f7fbe3c63e2abab52e87
20+
requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/requests-unixsocket2/requests_unixsocket2-1.0.1-20260622202847-py3-none-any.whl#sha256=aae3f1743ab60955ea91e9a095d54997ea56b956bab652bf194379ef4dc6fa7f
21+
securesystemslib @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/securesystemslib/securesystemslib-0.28.0-20260622202912-py3-none-any.whl#sha256=861ab6f8c1930e0c05915f32a34f1c4ae1d76ee542ad2b424121e3e26a9fb1dd
22+
setuptools @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/setuptools/setuptools-82.0.1-20260622202938-py3-none-any.whl#sha256=b020c62c9ea6c1c3e7a29a8e385967909ceb85a77398f7fbe3c63e2abab52e87
2323
simplejson @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/simplejson/simplejson-3.20.2-20260326173404-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=cb739020a718c2e32041a0fa0a3f79398f45c067347fe8f286c8222fa777bc5d
24-
stevedore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/stevedore/stevedore-5.8.0-20260618155123-py3-none-any.whl#sha256=b9c2fdfb8d02797f171fc63ada01759955b4bac02a7cbe63d2ad2e827e3530f6
25-
supervisor @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/supervisor/supervisor-4.3.0-20260618155144-py2.py3-none-any.whl#sha256=81d63e968a5133203a334102b8e6e72b1f5ecfc9673c1af7680f9f7e0db8d4fd
26-
vertica-python @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/vertica-python/vertica_python-1.4.0-20260618155205-py3-none-any.whl#sha256=df8d667b7bd070532a72c25f37e7259d3673c1908ae726fdfb3087d777caa9da
27-
websocket-client @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/websocket-client/websocket_client-1.9.0-20260618155226-py3-none-any.whl#sha256=b628876a9b1eed1d49f1a230bf4b1c21fa3cd9163594f9f9628c8a8b22f97e10
24+
stevedore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/stevedore/stevedore-5.8.0-20260622202943-py3-none-any.whl#sha256=b9c2fdfb8d02797f171fc63ada01759955b4bac02a7cbe63d2ad2e827e3530f6
25+
supervisor @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/supervisor/supervisor-4.3.0-20260622203009-py2.py3-none-any.whl#sha256=81d63e968a5133203a334102b8e6e72b1f5ecfc9673c1af7680f9f7e0db8d4fd
26+
vertica-python @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/vertica-python/vertica_python-1.4.0-20260622203035-py3-none-any.whl#sha256=df8d667b7bd070532a72c25f37e7259d3673c1908ae726fdfb3087d777caa9da
27+
websocket-client @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/websocket-client/websocket_client-1.9.0-20260622203101-py3-none-any.whl#sha256=b628876a9b1eed1d49f1a230bf4b1c21fa3cd9163594f9f9628c8a8b22f97e10
2828
annotated-types @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/external/annotated-types/annotated_types-0.7.0-py3-none-any.whl#sha256=1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53
2929
attrs @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/external/attrs/attrs-26.1.0-py3-none-any.whl#sha256=c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309
3030
aws-msk-iam-sasl-signer-python @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/external/aws-msk-iam-sasl-signer-python/aws_msk_iam_sasl_signer_python-1.0.2-py2.py3-none-any.whl#sha256=310eb2db9ca0ff55ed06a24212739b87533e7f1cf6f34e43aabbd97a3b21290e

0 commit comments

Comments
 (0)