Skip to content

v0.17.0

Choose a tag to compare

@SFJohnson24 SFJohnson24 released this 28 Aug 13:45
· 11 commits to main since this release
d82741b

Note on rules hosting: Rules and their associated reference test data are now hosted at cdisc-org/cdisc-open-rules. The project is transitioning this content to that repository, but the rule logic contained in the cache for this release may be lagging behind what's in the open rules repository. For USDM and TIG standards specifically, the open-rules repositve should be considered the source of truth as the rules and test data have been validated.

We have also incremented several dependencies with this release and modernized their pinned version via the pyproject.toml. This will not impact executable release users but if you are running via source code, please refer to https://cdisc-org.github.io/cdisc-rules-engine/#/quick-start for setting up dependency installation within your virtual environment

Features & Enhancements

Update USDM validation version from 3-0 to 4-0 — #1717 (@gerrycampion)
TIG use case harmonization — #1725 (@SFJohnson24)
702: Add regex support for target sorting in target_is_sorted_by operator — #1705 (@alexfurmenkov)
expanded condition to truncate reported issues — #1730 (@alexfurmenkov)
Add ADaM product standards to StandardTypes CLI gate — #1770 (@antonybevan)
support detailed markdown diff — #1769 (@gerrycampion)
csv reader to use _variables metadata file — #1768 (@SFJohnson24)
1023: Ensure UTF Support — #1729 (@DmitryMK)
sort csv results by column instead of by rule output variables — #1798 (@gerrycampion)
Show target var for not_exists — #1800 (@gerrycampion)
Added TUMOR to allowed datasets — #1794 (@aniemes)
Added type_insensitive parameter for equals_string_part operator — #1787 (@aniemes)
schema updates — #1807 (@SFJohnson24)
min max date — #1825 (@SFJohnson24)
supp/ap logic — #1829 (@SFJohnson24)

Bug Fixes
Updating minus operator to be order-sensitive — #1694 (@DmitryMK)
1546: fixed issue reporting for DDF00125 — #1736 (@alexfurmenkov)
1703: Remove size unit variable — #1719 (@alexfurmenkov)
date bug — #1737 (@SFJohnson24)
normalize standards — #1733 (@SFJohnson24)
fix dependency for validate published rules — #1765 (@gerrycampion)
Fixed published open rules for usdm — #1759 (@gerrycampion)
csv use empty string instead of nulls — #1766 (@gerrycampion)
don't strip results values — #1799 (@gerrycampion)
Missed csv sort key change — #1801 (@gerrycampion)
csv report errors — #1803 (@SFJohnson24)
Fix value-level greater_than comparator (used < instead of >) — #1822 (@Rdag15)
Return explicit errors instead of silently running zero rules or picking the wrong USUBJID JSON file when -d finds multiple files — #1802 (@SFJohnson24)
Fix CORE-000757: blank RELREC values silently coerced to NaN, wiping the RELREC-to-CM merge dataset; also fixes CORE-000744 negative test — #1813 (@SFJohnson24)
Fix SUPP-domain double-wrap crash and wrong-domain merge bug (e.g. validating SUPPLB could silently use SUPPDM's data) — #1815 (@SFJohnson24)
Fix CORE-000484: stop dropping valid blank USUBJID values in RELREC — #1820 (@SFJohnson24)
Fix unhandled KeyError (closes #1824) — #1830 (@SFJohnson24)
Fix Distinct operation crashing on empty/grouped datasets, plus a result-expansion bug (closes #1804) — #1831 (@SFJohnson24)
sort — #1834 (@SFJohnson24)

Pandas 3.0 / Dependency Compatibility Fixes
Replace deprecated DataFrame.applymap() with map() — #1767 (@filippsatverily)
fix: replace inplace=True mutation (pandas 3.0 CoW) — #1772 (@filippsatverily)
fix: remove unsupported dd.DataFrame type hint in parquet_reader — #1774 (@filippsatverily)
fix: remove method= and downcast= from fillna (removed in pandas 3.0) — #1776 (@filippsatverily)
fix: handle pandas 3.0 default StringDtype — #1777 (@filippsatverily)
fix: normalize null types in QNAM columns after supp merge — #1782 (@filippsatverily)
Filipps/pandas3 fix distinct groupby — #1786 (@SFJohnson24)
pandas — #1789 (@SFJohnson24)
Relax dependency constraints — #1713 (@filippsatverily)
Revert "Relax dependency constraints" — #1754 (@SFJohnson24)
Test/filipps update deps — #1757 (@SFJohnson24)
chore: upgrade click, dask, jsonpath-ng, jsonschema, pyreadstat, pytest — #1783 (@filippsatverily)

Tests & CI
Remove End2End testing for Editor — #1726 (@SFJohnson24)
691: Tests for CoW behavior in pandas — #1690 (@alexfurmenkov)
798: Action to check engine against published rules — #1700 (@alexfurmenkov)
update test_utils — #1752 (@SFJohnson24)
fix: reset LocalDataService singleton between tests — #1784 (@filippsatverily)
update regression tests and run them in CI tests — #1761 (@RamilCDISC)

Documentation
readme overhaul — #1731 (@SFJohnson24)
doc update — #1750 (@SFJohnson24)
docs — #1795 (@SFJohnson24)
🧹 Chores / Maintenance / Refactoring
update $id — #1720 (@SFJohnson24)
Change distinct sets to lists — #1721 (@gerrycampion)
define env — #1739 (@SFJohnson24)
remove unused code — #1741 (@gerrycampion)
remove editor — #1746 (@SFJohnson24)
linting changes — #1748 (@SFJohnson24)
Delete CORE-Report-2026-07-14T16-23-17.csv — #1812 (@SFJohnson24)
Rename dockerfile to Dockerfile — #1817 (@SFJohnson24)

New Contributors
@filippsatverily made their first contribution in #1713
@antonybevan made their first contribution in #1770
@aniemes made their first contribution in #1794
@Rdag15 made their first contribution in #1822

Full Changelog: v0.16.0...v0.17.0