chore: experimental DJS compatibility report tests#628
Draft
operdeck wants to merge 2 commits into
Draft
Conversation
Adds two files: - .github/djs/poetry.lock: a copy of the DJS (decision-jobs-service) poetry.lock for the health check job. Pins the exact Python dependency versions shipped in the DJS Docker image (Python 3.13, Quarto 1.8.25). See the file header for instructions on how to keep it up to date. - .github/workflows/DJS report tests.yml: runs the existing no-esbuild DJS-simulation jobs (healthcheck + explanations) but installs pdstools using the DJS-pinned versions instead of pdstools' own uv.lock. This catches regressions caused by version mismatches between what pdstools develops against and what DJS actually ships. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #628 +/- ##
=======================================
Coverage 82.23% 82.23%
=======================================
Files 72 72
Lines 9270 9270
=======================================
Hits 7623 7623
Misses 1647 1647 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
The DJS poetry.lock pins pdstools==4.4.5 (what DJS ships), but in this repo we install pdstools from source. Skip the pdstools entry when generating pip constraints to avoid a version conflict. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Collaborator
Author
|
This aims at smoothing the DJS integration. They use a different set of dependencies, managed with poetry. This new workflow has a copy, parses it and runs some verification tests. Ideally we could push the changed poetry file from the DJS repo automatically on change. Maybe something like dependabot does. @StijnKas |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds CI coverage for the exact Python dependency versions that decision-jobs-service (DJS) ships in its health check Docker image.
What's added
.github/djs/poetry.lockA copy of the DJS
jobs/pds-tools-job/main/poetry.lock. This pins the exact versions DJS runs in production (Python 3.13, Quarto 1.8.25). The file header explains how to update it when DJS bumps its dependencies..github/workflows/DJS report tests.ymlRuns the two existing DJS-simulation jobs —
healthcheck without esbuildandexplanations without esbuild— but installs pdstools using the DJS-pinned versions instead of pdstools' ownuv.lock. No tests are duplicated; only the install step differs.Why — version comparison
Comparison of pdstools' own
uv.lockvs what DJS currently ships, for packages relevant to the healthcheck/reporting extras:uv.lockpoetry.locknumpypandasgreat-tablespapermillipykernelnarwhalspyarrowplotlyrequestsduckdbpolarspydotxlsxwriterKeeping in sync
When DJS updates its
poetry.lock, copy the new file into.github/djs/poetry.lockand open a PR — the workflow will immediately validate compatibility.