Skip to content

chore: experimental DJS compatibility report tests#628

Draft
operdeck wants to merge 2 commits into
pegasystems:masterfrom
operdeck:chore/djs-compatibility-tests
Draft

chore: experimental DJS compatibility report tests#628
operdeck wants to merge 2 commits into
pegasystems:masterfrom
operdeck:chore/djs-compatibility-tests

Conversation

@operdeck

@operdeck operdeck commented Apr 8, 2026

Copy link
Copy Markdown
Collaborator

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.lock
A 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.yml
Runs the two existing DJS-simulation jobs — healthcheck without esbuild and explanations without esbuild — but installs pdstools using the DJS-pinned versions instead of pdstools' own uv.lock. No tests are duplicated; only the install step differs.

Why — version comparison

Comparison of pdstools' own uv.lock vs what DJS currently ships, for packages relevant to the healthcheck/reporting extras:

Package pdstools uv.lock DJS poetry.lock Status
numpy 1.26.4 2.4.1 🔴 major — DJS ahead
pandas 2.3.3 3.0.0 🔴 major — DJS ahead
great-tables 0.20.0 0.17.0 ⚠️ DJS older
papermill 2.7.0 2.6.0 ⚠️ DJS older
ipykernel 6.31.0 7.1.0 ⚠️ DJS ahead
narwhals 2.10.1 2.15.0 ⚠️ DJS ahead
pyarrow 21.0.0 22.0.0 ⚠️ DJS ahead
plotly 6.3.1 6.5.0 ⚠️ DJS ahead
requests 2.33.0 2.32.5 ⚠️ pdstools ahead
duckdb 1.4.3 1.4.4 ✅ minor patch
polars 1.36.1 1.36.1 ✅ same
pydot 4.0.1 4.0.1 ✅ same
xlsxwriter 3.2.9 3.2.9 ✅ same

Keeping in sync

When DJS updates its poetry.lock, copy the new file into .github/djs/poetry.lock and open a PR — the workflow will immediately validate compatibility.

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

codecov Bot commented Apr 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.23%. Comparing base (379f520) to head (f68c420).
⚠️ Report is 1 commits behind head on master.

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.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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>
@operdeck

operdeck commented Apr 8, 2026

Copy link
Copy Markdown
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

@operdeck operdeck requested a review from StijnKas April 8, 2026 12:40
@operdeck operdeck changed the title chore: add DJS compatibility report tests chore: experimental DJS compatibility report tests Apr 16, 2026
@operdeck operdeck marked this pull request as draft April 16, 2026 12:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant