Skip to content

GoldenMatch

v1.13.0 Feature

This release adds 3 notable features for engineering teams evaluating rollout.

Published 2mo Data Pipelines & ETL
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

data-cleaning data-engineering data-matching data-quality deduplication entity-resolution
+14 more
fellegi-sunter fuzzy-matching knowledge-graph llm master-data-management mcp-server polars pprl python record-linkage rust splink typescript zero-config

Summary

AI summary

Typed accessor API added to MatchkeyConfig and MatchkeyField.

Full changelog

goldenmatch v1.13.0

Release plumbing wave. No algorithm changes - DQbench / Febrl3 / NCVR / DBLP-ACM numbers unchanged from v1.12.0.

Added

  • Typed accessor API on MatchkeyConfig / MatchkeyField (PR #151). New properties: MatchkeyConfig.fuzzy_threshold, MatchkeyField.fuzzy_scorer, MatchkeyField.fuzzy_weight, MatchkeyField.resolved_field. Each raises ValueError when the matchkey is not a fuzzy/weighted type, so the invariant is now enforceable in pyright strict.
from goldenmatch.config.schemas import MatchkeyConfig, MatchkeyField

mk = MatchkeyConfig(
    name="identity",
    type="weighted",
    threshold=0.85,
    fields=[MatchkeyField(field="name", transforms=["lowercase"], scorer="jaro_winkler", weight=1.0)],
)
assert mk.fuzzy_threshold == 0.85  # safe on weighted matchkey
# mk.fuzzy_threshold on an exact matchkey raises ValueError
  • docs/scale-envelope.md (PR #149): Polars / DuckDB / Ray operating ranges plus block-size failure modes.
  • Postgres CI lane (PR #144): flipped from skipped to live.

Changed

  • PyPI metadata corrected (PR #148): [project.urls] Homepage / Repository / Documentation now point at the monorepo. This release is what makes the refresh land on PyPI.

Fixed

  • Reproducibility of all four published benchmark numbers (PR #152, replaces #150): DQbench composite 91.04, DBLP-ACM 0.9641, Febrl3 0.9443, NCVR 0.9719 all reproduce from a fresh clone. See docs/reproducing-benchmarks.md.

Internal (contributors only)

  • Ruff lint expanded to F / I / B-narrowed / UP rule sets across packages/python/ (PR #146).
  • Pyright strict on the 21-file core slice of goldenmatch (PR #147). Typed accessors in PR #151 eliminated 7 type-suppression workarounds.

Benchmarks (zero-config, no LLM)

Unchanged vs v1.12.0 - algorithm not touched this wave.

| Dataset | v1.12.0 | v1.13.0 | Delta |
|---|---|---|---|
| DBLP-ACM | 0.9641 | 0.9641 | +0.0000 |
| Febrl3 | 0.9443 | 0.9443 | +0.0000 |
| NCVR | 0.9719 | 0.9719 | +0.0000 |
| DQbench composite | 91.04 | 91.04 | +0.00 |

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track GoldenMatch

Get notified when new releases ship.

Sign up free

About GoldenMatch

All releases →

Related context

Related tools

Earlier breaking changes

  • v3.1.0 `GOLDENMATCH_FRAME=polars` now requires the `[polars]` extra; raises error without it.
  • vgoldencheck-v3.0.0 `inferred_type` emits neutral dtype vocabulary (str/int/uint/float/date/datetime/bool/other) instead of raw Polars dtypes.
  • vgoldencheck-v3.0.0 'inferred_type' now emits a neutral dtype vocabulary instead of raw Polars dtype strings.
  • vgoldencheck-v3.0.0 `scan_file`, `scan_dataframe`, and CLI `check` now run without Polars, using Arrow-native pyarrow.Table.
  • v3.0.0 Result frames now return pyarrow.Table instead of Polars DataFrame.

Beta — feedback welcome: [email protected]