Skip to content

Commit 957d34a

Browse files
committed
fix(r): ship vendoring script inside R package for r-universe builds
The configure script's download strategy tried to run the vendoring script from the downloaded archive, but older tags (e.g., v4.3.8) don't include scripts/ci/r/vendor-kreuzberg-core.py. Ship a copy of the script in tools/ so it's always available during R CMD INSTALL, regardless of which tag is downloaded. Also add pre-commit exclusions for vendored CI scripts.
1 parent 1049eb4 commit 957d34a

File tree

4 files changed

+376
-7
lines changed

4 files changed

+376
-7
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
default_install_hook_types:
22
- pre-commit
33
- commit-msg
4-
exclude: ^docs/snippets/|vendor/|node_modules/|target/|invalid*|dist/|artifacts/|test_documents/
4+
exclude: ^docs/snippets/|vendor/|node_modules/|target/|invalid*|dist/|artifacts/|test_documents/|scripts/ci/|packages/.*/tools/vendor-
55

66
repos:
77
# Commit message linting

packages/r/configure

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,23 @@ if [ ! -f "vendor/kreuzberg/Cargo.toml" ]; then
5757
fi
5858

5959
echo "* running vendoring script against downloaded source..."
60-
REPO_ROOT="${EXTRACTED}" python3 "${EXTRACTED}/scripts/ci/r/vendor-kreuzberg-core.py" || {
61-
echo "ERROR: vendoring from downloaded source failed."
60+
# Prefer the local copy of the vendor script (shipped with the R package)
61+
# over the one in the downloaded archive (which may not exist for older tags).
62+
LOCAL_VENDOR_SCRIPT="$(pwd)/tools/vendor-kreuzberg-core.py"
63+
if [ -f "${LOCAL_VENDOR_SCRIPT}" ]; then
64+
REPO_ROOT="${EXTRACTED}" python3 "${LOCAL_VENDOR_SCRIPT}" || {
65+
echo "ERROR: vendoring from downloaded source failed."
66+
exit 1
67+
}
68+
elif [ -f "${EXTRACTED}/scripts/ci/r/vendor-kreuzberg-core.py" ]; then
69+
REPO_ROOT="${EXTRACTED}" python3 "${EXTRACTED}/scripts/ci/r/vendor-kreuzberg-core.py" || {
70+
echo "ERROR: vendoring from downloaded source failed."
71+
exit 1
72+
}
73+
else
74+
echo "ERROR: vendoring script not found (neither local nor in downloaded source)."
6275
exit 1
63-
}
76+
fi
6477

6578
if [ ! -d "${EXTRACTED}/packages/r/vendor/kreuzberg" ]; then
6679
echo "ERROR: vendor directory was not created by vendoring script."

packages/r/configure.win

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,23 @@ if [ ! -f "vendor/kreuzberg/Cargo.toml" ]; then
5757
fi
5858

5959
echo "* running vendoring script against downloaded source..."
60-
REPO_ROOT="${EXTRACTED}" python3 "${EXTRACTED}/scripts/ci/r/vendor-kreuzberg-core.py" || {
61-
echo "ERROR: vendoring from downloaded source failed."
60+
# Prefer the local copy of the vendor script (shipped with the R package)
61+
# over the one in the downloaded archive (which may not exist for older tags).
62+
LOCAL_VENDOR_SCRIPT="$(pwd)/tools/vendor-kreuzberg-core.py"
63+
if [ -f "${LOCAL_VENDOR_SCRIPT}" ]; then
64+
REPO_ROOT="${EXTRACTED}" python3 "${LOCAL_VENDOR_SCRIPT}" || {
65+
echo "ERROR: vendoring from downloaded source failed."
66+
exit 1
67+
}
68+
elif [ -f "${EXTRACTED}/scripts/ci/r/vendor-kreuzberg-core.py" ]; then
69+
REPO_ROOT="${EXTRACTED}" python3 "${EXTRACTED}/scripts/ci/r/vendor-kreuzberg-core.py" || {
70+
echo "ERROR: vendoring from downloaded source failed."
71+
exit 1
72+
}
73+
else
74+
echo "ERROR: vendoring script not found (neither local nor in downloaded source)."
6275
exit 1
63-
}
76+
fi
6477

6578
if [ ! -d "${EXTRACTED}/packages/r/vendor/kreuzberg" ]; then
6679
echo "ERROR: vendor directory was not created by vendoring script."

0 commit comments

Comments
 (0)