NEWS


morie 2026-05-25 (2026-05-25)

CI: drop fwildclusterboot (pak recursive Remotes unreliable) (3MMM.40c)

CI: pak resolver -- transitive Remote for summclust (3MMM.40b)

R CMD check ERROR fixes (3MMM.39)

CI: setup-r-dependencies pak resolver unblocked (3MMM.40)

morie 2026-05-24 (2026-05-24)

Correctness recovery: math typesetting restored

Phase 3LLL reverses the destructive \eqn{LATEX} -> \code{LATEX} swap shipped in commit f399ec41a (Phase 3KKK1+2). That swap eliminated the "Lost-braces" warning but at the cost of stripping LaTeX math typesetting from the PDF/HTML manual and turning every greek letter, \hat, \sum, \frac, etc. into an "unknown macro" warning at R CMD check.

The proper Rd-compliant fix is the two-argument form:

\eqn{LATEX}{ASCII fallback}      # inline
\deqn{LATEX}{ASCII fallback}     # display

Every affected line (104 R files) now uses this form, preserving PDF math while satisfying the Rd parser. Driven by fix_rd_math.py, a LaTeX->ASCII transformer covering the common Greek alphabet, operators (\sum, \int, \hat, \bar, \frac, \sqrt), and relation symbols.

Auto-install helper for optional dependencies

New morie_install_extras() lets users install the ~50 optional Suggests: packages in one call. CRAN policy forbids install.packages() at .onLoad() time, so morie ships an opt-in helper instead. Three modes:

morie_install_extras()                       # missing only (default)
morie_install_extras("all", ask = FALSE)     # everything, CI-safe
morie_install_extras(c("hawkes", "sf"))      # named subset

The helper also probes for the C system libraries libcurl, libsodium, and liboqs and prints platform-specific install hints when any are missing. System libraries must be installed BEFORE re-installing morie so the configure-time probes link the C/C++ backends against them.

Bulk open-data catalog explosion

Cross-portal morie_dataset_portal_catalog() grows from ~1,044 rows to 9,242 rows across 14 portals. Every Socrata / CKAN / ArcGIS Hub / Opendatasoft portal morie touches now has its full public catalog bundled offline.

Phase 3GGG -- 6-portal bulk harvest

Phase 3HHH -- full catalogs for the last two portals

Catalog totals

calgary_opendata      933    nyc_opendata          2861
chicago              1864    ontario_ckan            38
edmonton_opendata    2027    ottawa_opendata        287
montreal_opendata     401    statcan_ccjs            10
nyc_nypd                8    toronto_opendata       540
tps_arcgis_hub         71    tps_psdp                11
vancouver_opendata    190    vpd_geodash              1
                                                  -------
                                                     9242

Bundled fixture footprint: ~3.4 MB of catalog metadata; per-row unwound this is the metadata equivalent of every NYC dataset descriptor + every CKAN package summary + every Hub item -- offline queryable via morie_datasets_browse(keyword=...).


Cross-portal open-data infrastructure

Major sprint adding 14 open-data portals + a unified browse/load interface. The cross-portal morie_dataset_portal_catalog() now spans 9 cities + 1 federal source + ~800 dataset entries across 4 different API protocols.

Phase 3CCC -- NYC + TPS deep coverage

Phase 3DDD -- Canadian municipal + federal coverage

Phase 3EEE -- Montreal + expanded Toronto/Vancouver + dispatcher

Phase 3FFF -- dispatcher hardening + prairie cities

Catalog totals (across 14 portals)

chicago             8     ontario_ckan       38
nyc_nypd            8     vancouver_opendata 190
nyc_opendata       10     vpd_geodash         1
tps_arcgis_hub     71     statcan_ccjs       10
tps_psdp           11     montreal_opendata  23
                          toronto_opendata  208
                          calgary_opendata  157
                          edmonton_opendata 195
                          ottawa_opendata   106

Total ~ 1044 catalog rows.


morie 2026-05-23 (2026-05-23)

Formula corrections (affect Python AND R sibling identically):

R-side feature additions:

Other fixes carried from the 5-layer review on 2026-05-22 (all Python-parity-verified before applying):

Earlier from 2026-05-22 marathon (already in 0.9.5.6 in tree):

morie 2026-05-22 (2026-05-22)

R-side describe() parity closure. Patch release that closes one of the two parity gaps named in v0.9.5.4: the pedagogical narratives that the Python sibling exposes via morie.describe() are now available on the R side via morie_describe() and the string-only variant morie_describe_by_name().

R API additions:

Bundled data:

Build tooling:

Tests:

Remaining parity gap:

morie 2026-05-21 (2026-05-21)

Doob → MRM chi-square rename. Patch release with deprecation aliases; no breaking changes for existing user code.

Naming:

Python API (with deprecation aliases):

R side: no R API changes; the R chi-square family was already renamed in v0.9.5 (vignette chi-square-and-anova.Rmd).

Patch release over 0.9.5.2.

CRAN Policy: full cache-leak fix (supersedes 0.9.5 which was uploaded to win-builder with incomplete cache-isolation).

Documentation + CI hardening (added 2026-05-21 to the v0.9.5 release branch alongside the SIU + rename work):

lintr / goodpractice cleanups:

SIU harvester: polite by default, manifest-aware, retry-aware, and auditable against the original published reports.

New: a generic open-data access layer, and a much wider dataset catalog.

Fix: Toronto Police Service open-data ingestion correctness and reliability.

morie 2026-05-18 (2026-05-18)

Fix: CRAN source-package compliance for the vendored C++ core header.

morie 2026-05-17 (2026-05-17)

Fix: complete the Docker image build fix; atomic release pipeline.

Fix: the Docker container build for the v0.9.1 C/C++ core.

New: a shared C/C++ computational backend and a Hawkes-process engine.

morie 2026-05-16 (2026-05-16)

New: dataset availability auditing, more open-data sources, and in-place self-update.

New: the fairness & disparity-audit subsystem (morie.fairness).

A subsystem for auditing risk-assessment, recidivism, and predictive-policing systems for racial and other group disparities. morie does not deploy such systems — it measures whether an existing one encodes disparate treatment, so researchers and oversight bodies can hold those systems accountable.

The methods are clean-room reimplementations written from published descriptions — IBM AIF360; the SciencesPo Predictive-policing-Chicago project; Barman & Barman (arXiv:2603.18987); and the COMPAS audit in pbiecek's XAI Stories. No third-party code was copied.

Security patch.

morie 2026-05-15 (2026-05-15)

License change. morie is now licensed under the GNU Affero General Public License v3 or later (AGPL-3), on both the Python and R sides.

morie 2026-05-14 (2026-05-14)

Documentation-only patch on top of 0.7.1. Supersedes the in-queue 0.7.1 submission for the rOpenSci pre-submission inquiry / next CRAN bump.

morie 2026-05-11 (2026-05-11)

morie 0.1.2

morie 0.1.0-4