aboutsummaryrefslogtreecommitdiff
path: root/src/lib/delivery
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2025-07-02 15:46:51 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2025-07-02 15:46:51 -0400
commit97677a0f53d1881e4e89d660fcc21ff3afac121e (patch)
tree136cf4c83bd71fa90e65d4bf9adae4e526b7b969 /src/lib/delivery
parent983074bc6f355f2023b6a1475e9bb252881c5d28 (diff)
downloadstasis-97677a0f53d1881e4e89d660fcc21ff3afac121e.tar.gz
Ban Python packages with VCS requirement URLs in their setup scripts/configsfail-on-baked-in-vcs-requirements
Diffstat (limited to 'src/lib/delivery')
-rw-r--r--src/lib/delivery/delivery_build.c12
-rw-r--r--src/lib/delivery/delivery_test.c12
2 files changed, 24 insertions, 0 deletions
diff --git a/src/lib/delivery/delivery_build.c b/src/lib/delivery/delivery_build.c
index 2d891d2..c5093d4 100644
--- a/src/lib/delivery/delivery_build.c
+++ b/src/lib/delivery/delivery_build.c
@@ -173,6 +173,18 @@ struct StrList *delivery_build_wheels(struct Delivery *ctx) {
memset(outdir, 0, sizeof(outdir));
memset(cmd, 0, sizeof(outdir));
+ const int dep_status = check_python_package_dependencies(".");
+ if (dep_status) {
+ fprintf(stderr, "\nPlease replace all occurrences above with standard package specs:\n"
+ "\n"
+ " package==x.y.z\n"
+ " package>=x.y.z\n"
+ " package<=x.y.z\n"
+ " ...\n"
+ "\n");
+ COE_CHECK_ABORT(dep_status, "Unreproducible delivery");
+ }
+
strcpy(dname, ctx->tests[i].name);
tolower_s(dname);
sprintf(outdir, "%s/%s", ctx->storage.wheel_artifact_dir, dname);
diff --git a/src/lib/delivery/delivery_test.c b/src/lib/delivery/delivery_test.c
index e80e0ec..6e0a226 100644
--- a/src/lib/delivery/delivery_test.c
+++ b/src/lib/delivery/delivery_test.c
@@ -97,6 +97,18 @@ void delivery_tests_run(struct Delivery *ctx) {
if (pushd(destdir)) {
COE_CHECK_ABORT(1, "Unable to enter repository directory\n");
} else {
+ int dep_status = check_python_package_dependencies(".");
+ if (dep_status) {
+ fprintf(stderr, "\nPlease replace all occurrences above with standard package specs:\n"
+ "\n"
+ " package==x.y.z\n"
+ " package>=x.y.z\n"
+ " package<=x.y.z\n"
+ " ...\n"
+ "\n");
+ COE_CHECK_ABORT(dep_status, "Unreproducible delivery");
+ }
+
char *cmd = calloc(strlen(test->script) + STASIS_BUFSIZ, sizeof(*cmd));
if (!cmd) {
SYSERROR("Unable to allocate test script buffer: %s", strerror(errno));