All notable changes to dataprof are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
For the user-oriented overview, upgrade checklist, and migration details, read the 0.12.0 release notes.
-
Report numbers written with a decimal comma or digit grouping (#807) by @AndreaBozzo
-
Decide sampled quality scores on a 99.9% interval over the scan (#789) by @AndreaBozzo
-
Add structured findings to ProfileReport (#770) by @AndreaBozzo
-
Record metric semantics in saved reports (#765) by @AndreaBozzo
-
Benchmarks: Measure energy and peak memory (#748) by @AndreaBozzo
-
Benchmarks: Unify suites and publish reproducible evidence (#736) by @AndreaBozzo
-
Record engine and CSV recovery provenance (#735) by @AndreaBozzo
-
Python: Remove flat quality accessors (#733) by @AndreaBozzo
-
Python: Add quality gate module entrypoint (#732) by @AndreaBozzo
-
Add a batch quality-gate API with structured results (#725) by @AndreaBozzo
-
Python: Accept Arrow C Stream inputs (#706) by @AndreaBozzo
-
Partial: Report whole-file counters in a Parquet structural report (#702) by @AndreaBozzo
-
Add column projection across profiling paths (#655) by @QinXi-ai
-
Run benchmarks from an empty Criterion directory by @AndreaBozzo
-
Stop PR runs from evicting master's caches and building the extension twice (#795) by @AndreaBozzo
-
Throttle per-chunk peak memory sampling (#775) by @AndreaBozzo
-
Raise the Examples Smoke timeout to 30 minutes (#773) by @AndreaBozzo
-
Columnar: Read the ragged-row count from arrow-csv (#754) by @AndreaBozzo
-
Measure Python and Arrow boundary costs (#750) by @AndreaBozzo
-
Distinguish benchmark startup, first use, and steady state (#747) by @AndreaBozzo
-
Python: Unify native and restored report accessors (#746) by @AndreaBozzo
-
Fuzz: Add bounded parser and report fuzz targets (#734) by @AndreaBozzo
-
Update rustls by @AndreaBozzo
-
Python: Split bindings into private modules (#705) by @AndreaBozzo
-
Tests: Split Python API test suite (#704) by @AndreaBozzo
-
Compile the advertised MSRV feature graphs on 1.96 (#684) by @AndreaBozzo
-
Run omitted database regression suites (#683) by @AndreaBozzo
-
Arrow: Remove unreachable CSV dispatch (#679) by @AndreaBozzo
-
Metrics: Compute numeric aggregates with a stable accumulator (#677) by @AndreaBozzo
-
Deps: Bump jsonschema from 0.56.0 to 0.57.0 (#796) by @dependabot[bot]
-
Deps: Bump benchmark setuptools to 81.0.0 by @dependabot[bot]
-
Deps: Bump benchmark polars to 1.44.2 by @dependabot[bot]
-
Deps: Bump ty to 0.0.81 by @dependabot[bot]
-
Deps: Bump polars to 1.44.2 by @dependabot[bot]
-
Deps: Bump ruff to 0.16.7 by @dependabot[bot]
-
Deps: Bump uuid to 1.26.1 by @dependabot[bot]
-
Deps: Bump wide to 1.7.1 by @dependabot[bot]
-
Deps: Bump toml to 1.1.6 by @dependabot[bot]
-
Deps: Bump arrow and parquet to 60.0.0 (#751) by @AndreaBozzo
-
Deps: Bump github/codeql-action from 4.37.9 to 4.38.0 (#745) by @dependabot[bot]
-
Deps: Bump jsonschema from 0.55.1 to 0.56.0 (#726) by @dependabot[bot]
-
Deps: Bump toml from 1.1.4+spec-1.1.0 to 1.1.5+spec-1.1.0 (#687) by @dependabot[bot]
-
Deps: Bump jsonschema from 0.52.1 to 0.55.0 (#688) by @dependabot[bot]
-
Deps-dev: Bump polars from 1.43.2 to 1.44.1 (#689) by @dependabot[bot]
-
Deps-dev: Bump ty from 0.0.75 to 0.0.78 (#690) by @dependabot[bot]
-
Deps-dev: Bump ruff from 0.16.5 to 0.16.6 (#691) by @dependabot[bot]
-
Deps: Bump github/codeql-action from 4.37.8 to 4.37.9 (#659) by @dependabot[bot]
-
Deps-dev: Bump ty from 0.0.71 to 0.0.75 (#634) by @dependabot[bot]
-
Deps-dev: Bump maturin from 1.14.1 to 1.15.0 (#635) by @dependabot[bot]
-
Deps-dev: Bump ruff from 0.16.3 to 0.16.5 (#636) by @dependabot[bot]
-
Deps: Bump log from 0.4.33 to 0.4.34 (#633) by @dependabot[bot]
-
Deps: Bump wide from 1.6.1 to 1.7.0 (#632) by @dependabot[bot]
-
Deps: Bump jsonschema from 0.49.9 to 0.52.0 (#631) by @dependabot[bot]
-
Deps: Bump uuid from 1.24.0 to 1.26.0 (#630) by @dependabot[bot]
-
Deps: Bump github/codeql-action from 4.37.3 to 4.37.8 (#616) by @dependabot[bot]
-
Terse README, 0.12 landing page, and a readable benchmark page (#831) by @AndreaBozzo
-
Python: Document column projection (#695) by @AndreaBozzo
-
Ci: Explain contributor decode audit (#681) by @AndreaBozzo
-
Profile decimal columns at their value, not their unscaled integer (#828) by @AndreaBozzo
-
Bound uniqueness with certainty past a million distinct rows (#820) by @AndreaBozzo
-
Validate US phone numbers against the numbering plan (#818) by @AndreaBozzo
-
Read a column's slash dates in one day/month order (#817) by @AndreaBozzo
-
Run Welford on shifted values so a large offset keeps the spread exact (#806) by @AndreaBozzo
-
Report the mean of values whose sum overflows f64, not NaN (#804) by @AndreaBozzo
-
Report an IQR that overflows f64 as null, not inf (#803) by @AndreaBozzo
-
Report a variance that overflows f64 as null, not 0.0 (#800) by @AndreaBozzo
-
Compare start and end dates only when they come from the same row (#792) by @AndreaBozzo
-
Report CSV sources that end inside a quoted field (#791) by @AndreaBozzo
-
Count distinct values exactly up to a million on every engine (#786) by @AndreaBozzo
-
Cap approximate distinct counts at the values seen (#779) by @AndreaBozzo
-
Report progress on every file route, including the default engine (#777) by @AndreaBozzo
-
Python: Make the async database helpers coroutine functions (#778) by @AndreaBozzo
-
Stop byte-capped CSV scans at the first record past the budget (#776) by @AndreaBozzo
-
Seed the numeric reservoir so in-memory profiles are deterministic (#774) by @AndreaBozzo
-
Python: Refuse text and overflowing numbers as policy thresholds (#772) by @AndreaBozzo
-
Profile nested columns by their counts, not a display string (#769) by @AndreaBozzo
-
Python: Reject malformed score weights in flat summaries (#764) by @AndreaBozzo
-
Python: Keep custom score weights in the flat summary (#761) by @AndreaBozzo
-
Persist one canonical report document (#759) by @AndreaBozzo
-
Metrics: Align text frequency absence across input paths (#758) by @AndreaBozzo
-
Columnar: Stop the CSV decode at the row cap (#755) by @AndreaBozzo
-
Benchmarks: Preserve evidence on failure (#740) by @AndreaBozzo
-
Align empty-source quality across input paths (#724) by @AndreaBozzo
-
Runtime: Record why a report carries no quality assessment (#722) by @AndreaBozzo
-
Parquet: Spread capped samples across files (#721) by @AndreaBozzo
-
Metrics: Scope and enforce the cross-engine numeric equality contract (#708) by @AndreaBozzo
-
Ci: Enforce published Python interpreters (#707) by @AndreaBozzo
-
Agent: Redact host paths in model context (#703) by @AndreaBozzo
-
Partial: Refuse duplicate Parquet column names, and name the type's source (#701) by @AndreaBozzo
-
Partial: Type Parquet text columns from their values, not the metadata (#699) by @AndreaBozzo
-
Streaming: Preserve EOF metadata for async stops (#696) by @atirna
-
Omit statistics when no values parsed (#682) by @AndreaBozzo
-
Python: Document supported engine aliases (#680) by @AndreaBozzo
-
Harden numeric statistics and Python input boundaries (#672) by @AndreaBozzo
-
Metrics: Profile timestamp columns in named time zones (#669) by @AndreaBozzo
-
Python: Profile a zero-row Arrow source over its declared columns (#666) by @AndreaBozzo
-
Python: Profile every chunk of a pandas or polars DataFrame (#662) by @AndreaBozzo
-
Parquet: Profile a column by its values, not its physical encoding (#661) by @AndreaBozzo
-
Metrics: Accept RFC 3339 offsets, on one date grammar for every engine (#660) by @AndreaBozzo
-
Metrics: Count identical JSON records as duplicates across a late key (#658) by @AndreaBozzo
-
Runtime: Make accumulator merge produce the single-pass profile (#650) by @AndreaBozzo
-
Database: Decode MySQL TIME columns as a time of day, not a duration (#644) (#646) by @AnandkumarMall
-
Database: Decode temporal, decimal, UUID and unsigned columns (#642) by @AndreaBozzo
-
Metrics: Count text lengths in Unicode scalar values, not UTF-8 bytes (#641) by @AndreaBozzo
-
Metrics: Withhold evidence for dimensions that assessed nothing (#640) by @AndreaBozzo
-
Metrics: Report no overall quality score when nothing was assessed (#629) by @AndreaBozzo
-
Preserve numeric and CSV profiling correctness (#628) by @AndreaBozzo
-
Errors: Retain originating errors as a walkable source chain (#617) by @AndreaBozzo
-
Parquet: Profile materialized Parquet bytes through the async path (#582) by @aryansk
-
Schema: Add bytes source_type for byte-buffer inputs (#583) by @aryansk
-
Python: Ship async and HTTP profiling in the default wheel (#595) by @AndreaBozzo
-
Profile: Flag a column that has no dominant type (#578) by @AndreaBozzo
-
Python: Pin the public surface to what all declares (#529) by @AndreaBozzo
-
Agents: Make the dataprof skill accurate, self-checking, and able to grow (#510) by @AndreaBozzo
-
Report: Publish versioned JSON schema (#493) by @AndreaBozzo
-
Normalize line endings with .gitattributes (#618) by @AndreaBozzo
-
Pin the Rust toolchain and fix the clippy lint 1.98 added (#615) by @AndreaBozzo
-
Release: Single-source the shipped wheel feature list (#594) by @aryansk
-
Give feature-checks room to survive a cold cache (#597) by @AndreaBozzo
-
Stop building the Rust extension in the Python lint job (#596) by @AndreaBozzo
-
Stop the wheel smoke build compiling the tree twice (#533) by @AndreaBozzo
-
Label pull requests by changed path (#508) by @AndreaBozzo
-
Deps-dev: Bump ruff from 0.16.1 to 0.16.3 (#603) by @dependabot[bot]
-
Deps-dev: Bump pyarrow from 25.0.0 to 25.0.1 (#602) by @dependabot[bot]
-
Deps: Bump thiserror from 2.0.19 to 2.0.20 (#601) by @dependabot[bot]
-
Deps: Bump async-trait from 0.1.91 to 0.1.92 (#600) by @dependabot[bot]
-
Deps: Bump futures from 0.3.33 to 0.3.34 (#599) by @dependabot[bot]
-
Deps: Bump wide from 1.6.0 to 1.6.1 (#598) by @dependabot[bot]
-
Deps: Bump pyo3 from 0.29.0 to 0.29.2 (#567) by @dependabot[bot]
-
Deps-dev: Bump ruff from 0.16.0 to 0.16.1 (#524) by @dependabot[bot]
-
Deps: Bump parquet from 59.1.0 to 59.2.0 (#566) by @dependabot[bot]
-
Deps-dev: Bump ty from 0.0.65 to 0.0.71 (#570) by @dependabot[bot]
-
Deps-dev: Bump polars from 1.39.0 to 1.43.2 (#569) by @dependabot[bot]
-
Deps: Bump jsonschema from 0.49.2 to 0.49.6 (#568) by @dependabot[bot]
-
Deps: Bump arrow from 59.1.0 to 59.2.0 (#565) by @dependabot[bot]
-
Deps: Bump toml from 1.1.3+spec-1.1.0 to 1.1.4+spec-1.1.0 (#522) by @dependabot[bot]
-
Deps: Bump wide from 1.5.0 to 1.6.0 (#523) by @dependabot[bot]
-
Deps: Bump dtolnay/rust-toolchain from 1.96 to 1.100 (#521) by @dependabot[bot]
-
Deps-dev: Bump ty from 0.0.56 to 0.0.65 (#490) by @dependabot[bot]
-
Deps: Bump ipython from 8.38.0 to 8.39.0 (#492) by @dependabot[bot]
-
Deps-dev: Bump ruff from 0.15.6 to 0.16.0 (#491) by @dependabot[bot]
-
Deps: Bump serial_test from 3.5.0 to 4.0.1 (#489) by @dependabot[bot]
-
Make the README portable and add a website contributor callout (#625) by @AndreaBozzo
-
Add software citation metadata and rewrite the PR template (#624) by @AndreaBozzo
-
Add compiling Rust examples to the JSON and Parquet entry points (#620) by @AndreaBozzo
-
Record the database decision and describe what the wheel ships (#606) by @AndreaBozzo
-
Add a code-review agent skill for Copilot reviews (#563) by @AndreaBozzo
-
Add recipes for validating saved ProfileReport JSON (#535) by @aryansk
-
Update reference format for AGENTS.md in CLAUDE.md by @AndreaBozzo
-
Metrics: Compare real dates in timeliness, not years or raw strings (#621) by @AndreaBozzo
-
Python: Document the source-build recipe and guard the shipped feature set (#619) by @AndreaBozzo
-
Python: Validate Arrow data imported over the C Data Interface (#610) by @AndreaBozzo
-
Python: Profile every batch of a chunked Table, and accept any Arrow PyCapsule producer (#608) by @AndreaBozzo
-
Metrics: Count complete records on rows, not null cells (#607) by @AndreaBozzo
-
Schema: Serialize report mapping fields in deterministic order (#584) by @aryansk
-
Core: Make StreamingError suggestions per-site instead of a hardcoded chunk-size remedy (#581) by @aryansk
-
Python: Assess quality by default on database queries (#604) by @AndreaBozzo
-
Async: Reject duplicate CSV headers (#575) by @aryansk
-
Metrics: Align empty CSV quality parity (#576) by @aryansk
-
Partial: Report schema_stable from scan exhaustion, not the raw cap (#580) by @aryansk
-
Csv: Ignore blank records when scoring delimiter candidates (#579) by @aryansk
-
Patterns: Make locale a closed set instead of a silent filter (#577) by @AndreaBozzo
-
Csv: Align header-only analysis across engines (#572) by @floze-the-genius
-
Partial: Preserve header-only CSV schema (#557) by @floze-the-genius
-
Python: Keep llm null flags stable across round-trips (#556) by @aryansk
-
Metrics: Validate date columns against the forms that typed them (#564) by @AndreaBozzo
-
Metrics: Score string columns against their dominant lexical class (#560) by @AndreaBozzo
-
Agents: Disclose sample scope, and teach the skill that a perfect score is not evidence (#555) by @AndreaBozzo
-
Engines: Count ragged rows on the columnar CSV engine (#543) by @AndreaBozzo
-
Engines: Honour and disclose a row cap of zero (#542) by @AndreaBozzo
-
Json: Define JSONL as one record per physical line on every transport (#540) by @AndreaBozzo
-
Database: Preserve query column order in profile reports (#539) by @AndreaBozzo
-
Database: Apply metric packs and locale on database queries (#538) by @AndreaBozzo
-
Core: Apply metric packs and locale on JSON, Parquet, and async paths (#537) by @AndreaBozzo
-
Json: Report a record with no fields as a row on every transport (#534) by @AndreaBozzo
-
Python: Read Parquet byte buffers natively, without pandas (#532) by @AndreaBozzo
-
Json: Never discard a non-object JSON record (#531) by @AndreaBozzo
-
One rounding convention across the Rust and Python layers (#528) by @AndreaBozzo
-
Python: Restore hint bindings and ratio precision on report round-trip (#527) by @AndreaBozzo
-
Json: Preserve source field order for JSON and JSONL columns (#507) by @AndreaBozzo
-
Accept leading UTF-8 BOM in JSON inputs (#506) by @AndreaBozzo
-
Harden profiling edge-case behavior (#498) by @AndreaBozzo
-
Json: Unify malformed-record policy across file/bytes/async JSONL (#382) (#457) by @AndreaBozzo
-
Input: Enforce duplicate column-name policy across engines (#381) (#456) by @AndreaBozzo
-
Python: Finish #435 report API ergonomics — profiles, save html/md, low_sample_warning, zero-row semantics (#455) by @AndreaBozzo
-
Errors: Standardize actionable diagnostics and preserve source context (#446) by @AndreaBozzo
-
Hints: Validate semantic hints and record binding evidence (#420) (#441) by @AndreaBozzo
-
Record report execution engine (#438) by @floze-the-genius
-
Metrics: Per-column invalid_count for values excluded from numeric stats (#437) by @AndreaBozzo
-
Report: Version the serialized ProfileReport schema (#415) by @AndreaBozzo
-
Python: Add agent security guard for MCP surfaces (#410) by @AndreaBozzo
-
Capabilities: Add capabilities function to report installed features and metadata (#409) by @AndreaBozzo
-
Contributor: Add smoke test script and update CONTRIBUTING.md (#408) by @AndreaBozzo
-
Metrics: Expose provenance for approximate distinct counts (#406) by @AndreaBozzo
-
Metrics: Add Validity and Precision dimensions (#399) by @AndreaBozzo
-
Metrics: Make quality score weights configurable (#398) by @AndreaBozzo
-
Metrics: Require explicit temporal columns (#397) by @AndreaBozzo
-
Metrics: Honor identifier column hints (#396) by @AndreaBozzo
-
Metrics: Track duplicate rows across streams (#395) by @AndreaBozzo
-
Metrics: Score only assessed dimensions, using every sub-metric (#394) by @AndreaBozzo
-
Site: Rehaul GitHub Pages into a project homepage by @AndreaBozzo
-
Ci: Parallelize database integration builds (#468) by @AndreaBozzo
-
Metrics: Add table-driven completeness scenarios (#407) by @AndreaBozzo
-
Add issue templates in the directory GitHub actually reads (#390) by @AndreaBozzo
-
Json: Format decode audit by @AndreaBozzo
-
Add cross-engine parity suite (#369) by @AndreaBozzo
-
Make the ty type check blocking now that the codebase passes it by @AndreaBozzo
-
Deny: Document why RUSTSEC-2024-0436 is ignored by @AndreaBozzo
-
Make the benchmark page generator pass ruff format and lint by @AndreaBozzo
-
Deps-dev: Bump pytest from 9.0.3 to 9.1.1 (#478) by @dependabot[bot]
-
Deps-dev: Bump maturin from 1.12.6 to 1.14.1 (#477) by @dependabot[bot]
-
Deps: Bump github/codeql-action from 4.36.1 to 4.37.3 (#476) by @dependabot[bot]
-
Deps: Bump actions/checkout from 6.0.3 to 7.0.1 (#475) by @dependabot[bot]
-
Deps-dev: Bump pyarrow from 23.0.1 to 25.0.0 (#479) by @dependabot[bot]
-
Deps: Bump actions/setup-python from 6 to 7 (#474) by @dependabot[bot]
-
Deps: Bump serde_json from 1.0.149 to 1.0.151 (#450) by @dependabot[bot]
-
Deps: Bump uuid from 1.23.4 to 1.24.0 (#451) by @dependabot[bot]
-
Deps: Bump futures from 0.3.32 to 0.3.33 (#448) by @dependabot[bot]
-
Deps: Bump toml from 0.9.12+spec-1.1.0 to 1.1.3+spec-1.1.0 (#285) by @dependabot[bot]
-
Deps: Bump wide from 1.2.0 to 1.5.0 (#391) by @dependabot[bot]
-
Deps: Bump sysinfo from 0.39.5 to 0.39.6 (#392) by @dependabot[bot]
-
Deps: Bump regex from 1.12.3 to 1.13.0 (#393) by @dependabot[bot]
-
Document workspace crate boundaries (#487) by @AndreaBozzo
-
Add "Why dataprof?" comparison guide (#414) by @AndreaBozzo
-
Templates: Drop CLI references and reinforce profile-only boundary by @AndreaBozzo
-
Add AGENTS.md with a CLAUDE.md redirect by @AndreaBozzo
-
Align SECURITY.md supported versions with the 0.9.x line by @AndreaBozzo
-
Python: Preserve async byte source sizes (#485) by @AndreaBozzo
-
Json: Validate streaming array grammar (#484) by @AndreaBozzo
-
Json: Reject truncated final JSONL records (#481) by @AndreaBozzo
-
Security: Audit every published feature graph (#464) (#473) by @AndreaBozzo
-
Sampling: Make every strategy sample, on every path (#459) (#472) by @AndreaBozzo
-
Execution: Honor resource controls and correct provenance (#460) (#471) by @AndreaBozzo
-
Async: Count ragged CSV rows and honor CSV options (#462) (#469) by @AndreaBozzo
-
Patterns: Require locale evidence for summary claims (#467) by @AndreaBozzo
-
Harden profiling contracts before 0.10 (#466) by @AndreaBozzo
-
Csv: One clean diagnostic for non-UTF-8 input (#426) (#458) by @AndreaBozzo
-
Partial: Apply multi-offset row-count sampling to JSONL (#454) by @AndreaBozzo
-
Partial: Remove prefix bias from CSV quick_row_count sampling (#453) by @AndreaBozzo
-
Csv: Surface ragged CSV rows instead of silently normalizing them (#452) by @AndreaBozzo
-
Python: Preserve DataFrame column order (#444) by @floze-the-genius
-
Assess inferred dates in timeliness (#445) by @AndreaBozzo
-
Hints: Make streamed binding evidence exact (#443) by @AndreaBozzo
-
Metrics: Base numeric stats from exact accumulators; disclose sampled order statistics (#432) by @AndreaBozzo
-
Csv: Quote-aware delimiter sniffer; absent delimiters can no longer win (#431) by @AndreaBozzo
-
Metrics: Populate execution.memory_peak_mb in incremental and columnar engines (#422) by @AndreaBozzo
-
Metrics: Track duplicate rows in columnar and record-batch engines (#421) by @AndreaBozzo
-
Python: Describe() 50% falls back to median when quartiles are absent (#416) by @AndreaBozzo
-
Metrics: Treat quality_dimensions=[] as quality not analyzed (#411) by @AndreaBozzo
-
Replace columnar 1,000-value unique-count cap with bounded estimator (#389) by @AndreaBozzo
-
Decode: Enforce audited invariants by @AndreaBozzo
-
Decode: Audit swallowed errors on decode paths by @AndreaBozzo
-
Python: Make ty check pass across examples, tests, and stubs by @AndreaBozzo
See release-notes.md for the narrative 0.9.0 notes and the migration guide.
- Python:
to_llm_context(max_tokens=1000, include_samples=False)— a token-bounded, agent-oriented report summary covering shape, provenance caveats, derived quality flags, schema, and pattern names. Tokens are estimated asceil(len / 4), so the output is deterministic and needs no tokenizer. Sections are budgeted by priority. Raw cell values are withheld unlessinclude_samples=True. (#331) - Python:
analyze_structure(path, max_rows=None)— lightweight structural profiling returning aStructureReport, joininginfer_schema()andquick_row_count()on the partial analysis surface. (#319) - Python:
ProfileReport.load(path)— reload a report saved withsave()from a.jsonfile path (the path-based counterpart tofrom_json()/from_dict())..csv/.parquetpaths raise a clearValueErrorsince they store column profiles only. (#325) - Python: report ergonomics —
to_html(),to_markdown(),compare(),from_dict(), andfrom_json(). Thecompare()return shape is provisional and will be aligned with the RustQualityDeltatype (#310). (#316) - Python:
dp.profile()accepts dict, list-of-dicts, and bytes inputs on the base wheel, going straight to the Rust core via a newprofile_columnsentry point rather than adapting overpd.DataFrame. Column order now follows the input, and an integer column containing a null stays an integer instead of being widened to float. (#360) - Python: type stubs for the compiled extension (
dataprof/_dataprof.pyi), so type checkers and IDEs can resolve the native core. The public stubs now re-export these types instead of duplicating them.
- Python: the supported runtime floor is Python 3.10+ (3.8 and 3.9 are past end-of-life). Rust MSRV is now 1.96. Project metadata, tooling, and CI exercise both minimums explicitly. (#326)
- Python: flat
DataQualityMetricsaccessors such asmissing_values_ratio,key_uniqueness, andoutlier_rationow emitDeprecationWarning. Use nested dimension properties such asquality.completeness,quality.uniqueness, andquality.accuracy, which areNonewhen a dimension was not computed. The flat accessors keep their 0.8-compatible values for the 0.9 line.low_sample_warningandoverall_quality_score()are report-level signals and are not deprecated. (#326) - Remove
panic = "abort"from the release profile. A panic in the Rust core aborted the process and took the Python interpreter with it; panics now unwind to the PyO3 boundary and surface as ordinary Python exceptions.
- Parquet/Arrow: exclude nulls from numeric column statistics. The ten numeric
array handlers guarded on
if let Some(value) = array.value(index).into(), butimpl<T> From<T> for Option<T>makes that arm always taken, so the physical value under a null (0.0) was folded intomin,mean,std_dev, andunique_count. This affected every nullable numeric column read through Parquet, pandas, polars, or Arrow. Statistics for such columns will change on upgrade; regenerate any stored baselines. (#358) - Python:
to_llm_context(include_samples=True)fails closed when redaction cannot prove safety. It previously printed raw credit-card numbers whenever pattern detection had not run — anymetrics=selection omitting the"patterns"pack, orfast_mode, silently disabled the redaction gate.ColumnProfile.patternsis nowOption<Vec<Pattern>>end to end:Nonemeans unscanned (samples withheld),[]means scanned and clean. (#355, #359) - Python: dict input whose columns have differing lengths raises
ValueErrorinstead of panicking. Row-dicts with differing keys remain accepted, taking the union of keys with nulls for the missing entries. - Python: the database helpers (
analyze_database_async,test_connection_async,get_table_schema_async,count_table_rows_async) are exported from thedataprofpackage. They were documented asdp.<fn>but only ever existed on the privatedataprof._dataprofmodule, so every documented call raisedAttributeError.analyze_database_async()now returns a wrappedProfileReportrather than the raw core report, soreport.rowsand the other wrapper accessors work as documented. Without adatabasefeature build the names resolve to stubs that raiseImportErrorexplaining the rebuild. - Database: decode non-text columns instead of reporting them as all-null. The
connectors read every column as
Option<String>and dropped the decode error with.ok(), so anINTEGERorREALvalue was indistinguishable from SQL NULL and every non-text column profiled as an all-null string on all three connectors. Integer, float, and boolean columns now decode correctly, and integral floats keep their decimal point so aREALcolumn is still inferred as a float.NUMERIC/DECIMAL, date/time types, andBLOBremain unsupported and still profile as nulls. Present since 0.8.0. Regenerate any quality baseline taken from a database query. - Python: correct the type stubs for the database helpers.
analyze_database_asynctakesbatch_size/calculate_quality(not aconfig),get_table_schema_asyncreturnslist[str](notSchemaResult), andcount_table_rows_asyncreturnsint(notRowCountEstimate). - Resolve two clippy lints introduced by Rust 1.97 (
question_markindataprof-core,byte_char_slicesindataprof-csv). - Bump
crossbeam-epochto 0.9.20 for RUSTSEC-2026-0204. (#346) - Bump
arrowandparquetfrom 57.3.0 to 58.x. (#324)
- Upgrade
pyo3andpyo3-async-runtimesfrom 0.27 to 0.29, clearing a high severity out-of-bounds read in thenth/nth_backiterator implementations forPyListandPyTuple(GHSA-36hh-v3qg-5jq4) and a missingSyncbound onPyCFunction::new_closure(GHSA-chgr-c6px-7xpp). dataprof never called the affected iterator methods, so released versions were not exploitable through the public API, but the vulnerable code was compiled into published wheels. - Arrow PyCapsule import now validates capsule names (
arrow_schema,arrow_array) before dereferencing the pointers, replacing pyo3's removed uncheckedPyCapsule::pointer()accessor withpointer_checked(). A capsule carrying an unexpected payload is now rejected instead of reinterpreted. - Bump
quinn-prototo 0.11.15 for RUSTSEC-2026-0185.
- Python: adopt ty for static type checking, wired into CI as an advisory (non-blocking) step while it is pre-1.0.
- Centralize crate metadata and dependencies via
[workspace.package]and[workspace.dependencies]. - CI: smoke-install test for the Python wheel and Rust examples, as the 0.9.0 definition of done. (#328)
- Python: accept dict, list-of-dicts, bytes, and BytesIO inputs in
dp.profile()for notebook-friendly profiling. - Python: add dogfooding coverage for sync, async, byte-stream, and local remote-URL profiling with tracked CSV/JSONL fixtures.
- Python:
ProfileReport.__getitem__now raisesTypeErrorfor non-string keys instead ofKeyError(0). - Python: missing file paths now raise standard
FileNotFoundErrorfrom the Python boundary forprofile(),infer_schema(), andquick_row_count(). - Python:
ColumnProfileandDataQualityMetricsnow have usefulrepr()output for notebook inspection.
- Add
dataprof-enginesfor adaptive, incremental, and async streaming engine ownership behind the compactdataproffacade. - Add
dataprof-partialfor schema inference and quick row-count ownership behind the compactdataproffacade. - Add facade feature-combination checks for no-default and async-streaming builds in CI.
- Per-column
outlier_count(Tukey IQR rule, same k=1.5 as the globalaccuracy.outlier_ratio) onNumericStats/ColumnProfileto make outlier triage actionable at the column level instead of only the aggregate. QualityMetrics.low_sample_warning(also surfaced asProfileReport.low_sample_warningin Python) flags reports built from fewer than 10 rows so consumers can decide whether to trust the score.- Python:
dataprof.column_to_dict(col)returns the same nested dict shape as one element ofreport.to_dict()["columns"], for piping individual columns into downstream systems without serializing the whole report. - Add explicit
positive_columnsandidentifier_columnshints across the Rust and Python profilers. Positive columns driveaccuracy.negative_values_in_positive; identifier columns are reported asidentifierand excluded from numeric stats/outlier metrics (#304, #305).
-
Profiler::format()override now wins over extension-based detection on the auto engine path (previously a.parquetfilename would route to the Parquet parser even whenFileFormat::Csvwas forced). Adds theAdaptiveProfiler::analyze_csv_file()entry that bypasses Parquet redetection for callers that have already resolved the format. -
Remote URL profiling (
Profiler::profile_url) validates the URL scheme up-front: malformed inputs likenot-a-urlnow return a clear "expected http(s)://" error instead of reqwest's opaque "builder error". -
Library noise: small-sample warnings and CSV recovery messages moved from
eprintln!tolog::warn!so library users opt in via env_logger. -
Dropped lingering
--chunk-sizeCLI-flag advice fromStreamingErrorandValidationError(CLI was retired); messages now reference the builder API. -
Boolean inference now treats
true/falsecase-insensitively and ignores empty/null/nantokens;yes/noremain strings by default (#303). -
Move the public
dataproffacade source tocrates/dataprof/srcand remove the legacysrc/shell before the 0.8.0 release. -
Drop broad legacy module-path shims from the facade; common APIs remain available as top-level exports, while lower-level modules are available from their owning workspace crates.
-
Move async HTTP Parquet profiling into
dataprof-parquet. -
Prepare the workspace for the 0.8.0 Rust facade and Python package release.
-
Refresh release-facing docs around the compact facade, retired CLI surface, and current crate-boundary status.
-
Add profile_arrow function for PyArrow Table and RecordBatch profiling (#199) by @AndreaBozzo
-
Implement Arrow PyCapsule interface for zero-copy data exchange (#196) by @AndreaBozzo
-
Autofix n.26 (#198) by @AndreaBozzo
-
Removed legacy req build txt and moved social docs to docs/ folder by @AndreaBozzo
-
Pages: Add workflow to deploy benchmark reports to GitHub Pages (#195) by @AndreaBozzo
- Deps: Bump thiserror from 2.0.17 to 2.0.18 (#184) by @dependabot[bot]
-
Update readme by @AndreaBozzo
-
Logo width 800 by @AndreaBozzo
-
Html: Simplify compression ratio calculation in report context for clippy by @AndreaBozzo
-
Build: Add anyhow to dev-dependencies, revert crate-type to rlib only by @AndreaBozzo
-
Add futures dependency and enhance DataFusionLoader with streaming query profiling by @AndreaBozzo
-
Integrate DataFusion SQL (#177) by @AndreaBozzo
-
Logging: Integrate env_logger for improved logging throughout the application ( bye emojis ) by @AndreaBozzo
-
CI: Add code coverage workflow and remove tarpaulin configuration (testing, might revert) by @AndreaBozzo
-
Enhance performance dashboard with interactive Chart.js visualizations and improved data handling by @AndreaBozzo
-
Add linting configuration and improve chunk processing readability by @AndreaBozzo
-
Refactor chunk processing to use ByteRecord and add batch processing with Rayon for improved performance by @AndreaBozzo
-
Add interactive demo section to README and include demo animation by @AndreaBozzo
-
Replace info! macro with log::info for consistency in logging by @AndreaBozzo
-
Remove clippy ( present in CI) and fine-tuning by @AndreaBozzo
-
Increase timeout for supply-chain job to 45 minutes by @AndreaBozzo
-
Remove cargo audit configuration and add deny.toml template by @AndreaBozzo
-
Update CSV analysis functions to support optional engine parameter by @AndreaBozzo
-
Remove API reference and integrations documentation for DataProf by @AndreaBozzo
-
Remove outdated guides documentation by @AndreaBozzo
-
Update version to 0.5.0 and adjust dependencies in Cargo files by @AndreaBozzo
-
Fmt by @AndreaBozzo
-
Removed example files and remade security workflow by @AndreaBozzo
-
Remove integration tests from CI workflow matrix by @AndreaBozzo
-
Remove setup of system dependencies from CI workflow by @AndreaBozzo
-
Re-add simplified issue templates for bug reports and feature requests ( same as Ceres ) by @AndreaBozzo
-
Update comments and add feature flags for arrow in integration regression tests by @AndreaBozzo
-
Rename IsoQualityThresholds to IsoQualityConfig for consistency by @AndreaBozzo
-
Rename 'with_*' methods to 'seed' and 'limits' for clarity by @AndreaBozzo
-
Standardize database analysis naming (profile_* → analyze_*) by @AndreaBozzo
-
Add *.so to .gitignore to exclude shared object files by @AndreaBozzo
-
Reorganize version import in Python bindings by @AndreaBozzo
-
Remove SimpleColumnarProfiler and update integration tests to use ArrowProfiler by @AndreaBozzo
-
Remove deprecated development container files and update references to docker-compose by @AndreaBozzo
-
Improvedevelopment databases and testing scripts by @AndreaBozzo
-
Metrics: Split metrics into separate dimensions by @AndreaBozzo
-
Remove unused streaming arguments and related tests for analyze and report commands by @AndreaBozzo
-
Update toml dependency to version 0.9.8 by @AndreaBozzo
-
Clippy & fmt by @AndreaBozzo
-
Tests: Remove outdated testing modules and legacy tests by @AndreaBozzo
-
Replace println! with log statements for improved logging consistency, followup of 7c5a802 by @AndreaBozzo
-
Docs, CI: Add Codecov token to coverage upload and update README with Codecov badge by @AndreaBozzo
-
Add sparse protocol configuration for crates.io by @AndreaBozzo
-
Removed redundant docstrings by @AndreaBozzo
-
Remove pre-commit configuration file by @AndreaBozzo
-
More docs cleanup, this folder will be phased out when i finish transitioning to testcontainers by @AndreaBozzo
-
Removed unused bench folder by @AndreaBozzo
-
Remove outdated README.md for GitHub Actions workflows by @AndreaBozzo
-
Update license badge to reflect dual-license under MIT and Apache 2.0 by @AndreaBozzo
-
Update license information to dual-license under MIT and Apache 2.0; add LICENSE-APACHE file by @AndreaBozzo
-
Update changelog to reflect correct project name and removed those stupid emojis from workflow, this will be an ongoing effort by @AndreaBozzo
-
Remove VSCode snippets and workspace configuration files by @AndreaBozzo
-
Renamed old test file by @AndreaBozzo
-
Remove link to full contributing guide from README by @AndreaBozzo
-
Streamline error handling and row processing in database connectors by @AndreaBozzo
-
Fmt by @AndreaBozzo
-
Update Cargo.toml profile and enhance benchmarks documentation by @AndreaBozzo
-
Deps: Bump trufflesecurity/trufflehog from 3.83.7 to 3.92.4 (#162) by @dependabot[bot]
-
Deps: Bump parquet from 57.1.0 to 57.2.0 (#173) by @dependabot[bot]
-
Deps: Bump arrow from 57.1.0 to 57.2.0 (#172) by @dependabot[bot]
-
Deps: Bump predicates from 2.1.5 to 3.1.3 (#174) by @dependabot[bot]
-
Deps: Bump tokio from 1.48.0 to 1.49.0 (#175) by @dependabot[bot]
-
Deps: Bump toml from 0.9.8 to 0.9.10+spec-1.1.0 (#158) by @dependabot[bot]
-
Eliminated redundant doc by @AndreaBozzo
-
Update section title in Code of Conduct to reflect commitment by @AndreaBozzo
-
Update CI workflow to skip test suite ( handled by coverages tests, this saves me computing ) on master pushes by @AndreaBozzo
-
Update GitHub Actions workflows to use latest action versions and merge coverage reporting ( no need to run multiple tests runs ) by @AndreaBozzo
-
Update code coverage generation and upload configuration by @AndreaBozzo
-
Update dependencies and improve security audit configuration by @AndreaBozzo
-
Correct capitalization in TruffleHog ignore file header by @AndreaBozzo
-
Update copyright year in LICENSE file to 2026 by @AndreaBozzo
-
Reorder imports to include MemoryMappedCsvReader for memory mapping tests by @AndreaBozzo
-
Remove unnecessary Claude files from .gitignore and add mypy cache by @AndreaBozzo
-
Add "analyze" argument to subprocess calls in benchmark scripts ( yikes ) by @AndreaBozzo
-
Adjust placeholder replacement order in performance dashboard generation script by @AndreaBozzo
-
Update report links to use the correct directory structure and add timestamp generation in benchmarks workflow by @AndreaBozzo
-
Enable LTO in release profile and adjust crate-type for library configuration by @AndreaBozzo
-
Comment out lto in release profile to prevent linking issues with mixed rlib/cdylib by @AndreaBozzo
-
Optimize release profile settings for improved performance, removed useless docstrings by @AndreaBozzo
- Overhaul HTML UI, fix Python bindings, and update docs (#168) by @AndreaBozzo
-
Prepare release 0.4.85 with git-cliff integration by @AndreaBozzo
-
Rename fields in JSON context for clarity in batch report by @AndreaBozzo
-
Deps: Bump tempfile from 3.23.0 to 3.24.0 (#161) by @dependabot[bot]
-
Deps: Bump rsa in the cargo group across 1 directory (#167) by @dependabot[bot]
-
Deps: Bump handlebars from 6.3.2 to 6.4.0 (#166) by @dependabot[bot]
-
Add unsafe to Windows extern block and exclude large files from crate by @AndreaBozzo
-
Ci: Use git-cliff action correctly with outputs by @AndreaBozzo
-
Ci: Use git-cliff instead of git cliff (correct command) by @AndreaBozzo
-
Ci: Add debug output for git-cliff and use --current flag by @AndreaBozzo
-
Rust 2024 unsafe extern block and update Cargo.lock by @AndreaBozzo
-
Remove unnecessary panic setting in release profile by @AndreaBozzo
-
Update dataprofhtml2026.png image asset cropping by @AndreaBozzo
-
Bump version to 0.4.84 and update changelog by @AndreaBozzo
-
Ease external PR contribution workflow (#165) by @AndreaBozzo
-
Deps: Bump actions/upload-artifact from 5 to 6 (#163) by @dependabot[bot]
-
Deps: Bump actions/download-artifact from 6 to 7 (#164) by @dependabot[bot]
-
Deps: Bump parquet from 57.0.0 to 57.1.0 by @dependabot[bot]
-
Deps: Bump log from 0.4.28 to 0.4.29 by @dependabot[bot]
-
Deps: Bump criterion from 0.7.0 to 0.8.1 by @dependabot[bot]
-
Deps: Bump arrow from 57.0.0 to 57.1.0 by @dependabot[bot]
-
Deps: Bump wide from 0.8.3 to 1.1.0 by @dependabot[bot]
-
Deps: Bump actions/upload-artifact from 4 to 5 by @dependabot[bot]
-
Deps: Bump actions/checkout from 5 to 6 by @dependabot[bot]
-
Deps: Bump pyo3 from 0.27.1 to 0.27.2 by @dependabot[bot]
-
Remove batch report animation from README by @AndreaBozzo
-
Update logo size in README for better visibility by @AndreaBozzo
-
Update README with new logo and improved project description by @AndreaBozzo
-
Add enhanced statistical analysis features and remove CI/CD section by @AndreaBozzo
- Ci: Replace deprecated macos-13 with macos-15-intel by @AndreaBozzo
-
Add precision control for numeric output formatting by @AndreaBozzo
-
Implement enhanced statistical analysis (issue #139) by @AndreaBozzo
-
Update Cargo.lock for version 0.4.83 by @AndreaBozzo
-
Bump version to 0.4.83 and update changelog by @AndreaBozzo
-
Deps: Bump clap from 4.5.51 to 4.5.53 (#142) by @dependabot[bot]
-
Deps: Bump wide from 0.8.2 to 0.8.3 (#141) by @dependabot[bot]
-
Deps: Bump indicatif from 0.18.2 to 0.18.3 (#140) by @dependabot[bot]
-
Update release title to use lowercase 'dataprof' and remove generated comment by @AndreaBozzo
-
Remove unnecessary blank line in quartiles module by @AndreaBozzo
-
Address Copilot review comments by @AndreaBozzo
-
Pre-PR improvements for code quality and compatibility by @AndreaBozzo
- Enhance pattern detection with 11 new patterns and performance improvements by @AndreaBozzo
-
Update version to 0.4.82 and add release notes in changelog by @AndreaBozzo
-
Changelog: Update dependencies section with GitHub Actions and Rust updates and removed outdated notebooks note by @AndreaBozzo
-
Improve clarity in staging to master workflow comments and messages by @AndreaBozzo
-
Deps: Bump actions/upload-pages-artifact from 3 to 4 (#130) by @dependabot[bot]
-
Deps: Bump actions/download-artifact from 4 to 6 (#129) by @dependabot[bot]
-
Deps: Bump wide from 0.8.1 to 0.8.2 (#135) by @dependabot[bot]
-
Deps: Bump github/codeql-action from 3 to 4 (#131) by @dependabot[bot]
- Disable on push and pull_request triggers in staging workflow by @AndreaBozzo
- Add code coverage workflow and configuration by @AndreaBozzo
- Minor fixes from project review by @AndreaBozzo
-
Standardize color value to 'Auto' in tarpaulin configuration by @AndreaBozzo
-
Update timeout values to include 's' suffix for consistency by @AndreaBozzo
-
Update tarpaulin configuration for coverage outputs and simplify coverage command by @AndreaBozzo
- Async: Re-enable and improve async support (issue #133) by @AndreaBozzo
-
Re-added cargo.lock by @AndreaBozzo
-
Bump version to 0.4.80 and update changelog by @AndreaBozzo
-
Applied fmt by @AndreaBozzo
-
Upgrade major dependencies and migrate to modern APIs by @AndreaBozzo
- Bump version to 0.4.78 by @AndreaBozzo
- Fixed typo in readme.md by @AndreaBozzo
-
Enable PyO3 forward compatibility for Python 3.14+ by @AndreaBozzo
-
Apply Copilot PR suggestions by @AndreaBozzo
- Update version to 0.4.77 - added lazy static - pre-comp regex for better performances - removed some unwrap calls by @AndreaBozzo
- Trimmed snippets and ws config couse my setup is slow by @AndreaBozzo
-
Update CHANGELOG for v0.4.77 by @AndreaBozzo
-
Update documentation for v0.4.75 with Parquet batch support by @AndreaBozzo
-
Apply valid Copilot suggestions by @AndreaBozzo
-
Apply Copilot suggestions - IT phone regex and total_cmp by @AndreaBozzo
-
Clippy fix by @AndreaBozzo
-
Python: Complete feature parity with Rust core for batch Parquet support by @AndreaBozzo
-
Parquet: Production-ready implementation with extended type coverage by @AndreaBozzo
-
Parquet: Add Apache Parquet format support with unified API integration by @AndreaBozzo
-
Add JSON batch export functionality and clean up formatters by @AndreaBozzo
-
Update Cargo keywords for crates.io compliance by @AndreaBozzo
-
Post-first-month cleanup - Phase 1 & 2 complete by @AndreaBozzo
-
Re-organized examples directory by @AndreaBozzo
-
Config: Technical debt cleanup - consolidate structures by @AndreaBozzo
-
Parsers: Eliminate expensive parser cloning + remove deprecated field by @AndreaBozzo
-
Engines: Consolidate streaming statistics - eliminate duplication by @AndreaBozzo
-
Core: Major architectural improvements - Priority High by @AndreaBozzo
-
Release version 0.4.75 by @AndreaBozzo
-
Update package description to highlight ISO quality metrics by @AndreaBozzo
-
Parquet: Resolve conditional compilation for is_parquet_file by @AndreaBozzo
-
Parquet: Resolve feature gate compilation error in core_logic by @AndreaBozzo
-
More imports fixes by @AndreaBozzo
-
Fixed 2 missing imports for CI by @AndreaBozzo
-
Add batch ML/HTML support and fix quality score calculation by @AndreaBozzo
-
Complete CLI subcommands refactor with backward compatibility (Phase 4/4) ✅ by @AndreaBozzo
-
Add ISO 8000/25012 configurable quality metrics and CLI refactor design by @AndreaBozzo
-
Unify database mode to use full MlReadinessEngine by @AndreaBozzo
-
Enhanced ML readiness analysis with advanced feature intelligence by @AndreaBozzo
-
Complete PyDataQualityMetrics integration and database ML pipeline by @AndreaBozzo
-
Complete DataQualityMetrics display integration by @AndreaBozzo
-
Expose ML features and output options in Python batch functions by @AndreaBozzo
-
Complete batch ML processing integration + critical ML score fix by @AndreaBozzo
-
Enable batch processing functionality + CLI validation fix by @AndreaBozzo
-
Enhanced User Experience & Terminal Intelligence - Issue #79 by @AndreaBozzo
-
Completed html refactor, added premade templates and a new gif and a dedicated metric test by @AndreaBozzo
-
Complete cleanup - remove all legacy quality code by @AndreaBozzo
-
Migrate HTML generation to Handlebars template engine (WIP) by @AndreaBozzo
-
Massive architecture cleanup - eliminate tech debt (~730 lines) by @AndreaBozzo
-
Eliminate code duplication and fix all clippy warnings by @AndreaBozzo
-
Remove legacy code and simplify architecture (~2400 lines removed) by @AndreaBozzo
-
Add shared core logic for CLI commands to inherit improvements by @AndreaBozzo
-
Cleanup legacy code and enhance transparency documentation by @AndreaBozzo
-
Docs update round before 0.4.70 release by @AndreaBozzo
-
Update CHANGELOG with unified database ML implementation by @AndreaBozzo
-
Fix ISO compliance tests by meeting minimum sample size requirements by @AndreaBozzo
-
Ignore legacy integration tests with outdated expectations by @AndreaBozzo
-
Fix VSCode config, separate heavy DB tests, rewrite CLI tests for new subcommand structure by @AndreaBozzo
-
I'm out of tears for today pls pass by @AndreaBozzo
-
Complete CI failures - align with QualityReport refactor by @AndreaBozzo
-
Critical HTML quality score bug + complete Timeliness support by @AndreaBozzo
-
Complete QualityIssue removal - establish single source of truth by @AndreaBozzo
-
Critical bugfix - quality score calculation (outlier_ratio & stale_data_ratio) by @AndreaBozzo
-
Complete Python bindings with timeliness metrics (ISO 8000-8) by @AndreaBozzo
-
Calculate actual total_rows and quality metrics in streaming profiler by @AndreaBozzo
-
Update tests for timeliness metrics (ISO 8000-8) by @AndreaBozzo
-
Correct all command implementations with proper types (Phase 3/4) by @AndreaBozzo
-
Clippy warnings in script_generator by @AndreaBozzo
-
Benchmakr comp and html reports for single files, batch and db tests to come after by @AndreaBozzo
-
Add clippy allow for too_many_arguments in Python batch functions by @AndreaBozzo
-
Fixed both BatchConfig initializations in the Python batch processing module by adding the missing required fields by @AndreaBozzo
-
Improve ML readiness scoring algorithm for realistic assessments by @AndreaBozzo
-
Enhanced delimiter detection + complete test suite fixes by @AndreaBozzo
-
CRITICAL - Resolve delimiter detection bug and enhance documentation by @AndreaBozzo
-
Prevent benchmark workflow from running on feature branch pushes by @AndreaBozzo
-
Add missing return value in Linux memory detection by @AndreaBozzo
-
Resolve benchmark compilation errors by @AndreaBozzo
-
Resolve compilation errors across test files and database connectors by @AndreaBozzo
- Migrate to dual MIT OR Apache-2.0 licensing by @AndreaBozzo
-
Bump version to 0.4.61 by @AndreaBozzo
-
Simplify to MIT License only by @AndreaBozzo
- Reorganize README with CI/CD integration and improved CLI documentation by @AndreaBozzo
-
Optimize CI/CD workflows for 30-40% performance improvement by @AndreaBozzo
-
Add comprehensive demo notebook for v0.4.6 code snippet features by @AndreaBozzo
-
Enhanced ML Recommendations with Actionable Code Snippets - Issue #71 by @AndreaBozzo
-
Complete Phase 3 & 4 development environment standardization by @AndreaBozzo
-
Devenv: Implement standardized development environment (Phase 1 & 2) by @AndreaBozzo
-
Add workflow_dispatch trigger to quick benchmarks by @AndreaBozzo
-
Implement comprehensive statistical rigor framework (#60) by @AndreaBozzo
-
Consolidate and modernize benchmarking infrastructure by @AndreaBozzo
-
Create concise professional README under 80 lines by @AndreaBozzo
-
Split benchmarks into parallel jobs for better CI performance by @AndreaBozzo
-
Optimize CI workflows for GitHub standard runners by @AndreaBozzo
-
Bump version to 0.4.6 with security enhancements by @AndreaBozzo
-
Major CI/CD workflow optimization with composite actions by @AndreaBozzo
-
Deleted justfile as i'm not using it by @AndreaBozzo
-
Modularize database security.rs for better maintainability by @AndreaBozzo
-
Modularize python.rs into organized module structure by @AndreaBozzo
-
Modularize main.rs into organized CLI structure by @AndreaBozzo
-
Fix documentation links in README on master by @AndreaBozzo
-
Fix documentation links in README by @AndreaBozzo
-
Update workflows README for optimized architecture by @AndreaBozzo
-
Add comprehensive benchmarking system documentation by @AndreaBozzo
-
Update changelog with CI/CD improvements by @AndreaBozzo
-
Moved guides toa proper docs/ folder by @AndreaBozzo
-
Update changelog with refactoring improvements by @AndreaBozzo
-
Removed duplicate wiki files by @AndreaBozzo
-
Remove empty PYO3_CROSS_LIB_DIR causing macOS build failure by @AndreaBozzo
-
Update CHANGELOG.md version 0.4.6 from Unreleased status by @AndreaBozzo
-
Correct integration test execution in staging-dev workflow by @AndreaBozzo
-
Correct matrix variable access in CI workflow by @AndreaBozzo
-
Replace deprecated crates extension with dependi by @AndreaBozzo
-
Resolve clippy warnings in script generator by @AndreaBozzo
-
Update demo notebook and type stubs for v0.4.6 code snippets by @AndreaBozzo
-
Make setup scripts safer and remove problematic tool installations by @AndreaBozzo
-
Refined .vscode workspace with better rust analyzer config and removed problematic powershell dev script for now by @AndreaBozzo
-
Re-enabled CI checks on staging PRs couse i'm paranoid by @AndreaBozzo
-
Make setup scripts safer and remove problematic tool installations by @AndreaBozzo
-
Eliminate justfile completely and migrate to standard cargo commands by @AndreaBozzo
-
Trimmed pre-commit to only feature code quality checks, while we shift the testing to the gh runners by @AndreaBozzo
-
Show only real data in dashboard, remove fake placeholders by @AndreaBozzo
-
Replace broken sed with perl for dashboard placeholder replacement by @AndreaBozzo
-
Remove malformed Python multiline from YAML workflow by @AndreaBozzo
-
Create functional dashboard with real benchmark data by @AndreaBozzo
-
Replace custom benchmark actions with direct commands by @AndreaBozzo
-
Resolve security workflow issues by @AndreaBozzo
-
Update advanced security workflow to resolve CI failures by @AndreaBozzo
-
Update TruffleHog configuration for proper regex patterns by @AndreaBozzo
-
Resolve clippy warnings and update CI for deprecated PyO3 APIs by @AndreaBozzo
-
Remove system file caching to prevent permission warnings by @AndreaBozzo
-
Correct shell syntax in composite actions by @AndreaBozzo
-
Increase sample-size to meet Criterion minimum requirement by @AndreaBozzo
-
Resolve CI network issues and optimize quick benchmarks by @AndreaBozzo
-
Resolve Criterion sample size assertion failure in statistical benchmarks by @AndreaBozzo
-
Resolve failing test suite issues by @AndreaBozzo
-
Replace unsafe unwrap() calls with safe alternatives by @AndreaBozzo
-
Resolve all clippy errors and improve engine architecture by @AndreaBozzo
-
Resolve clippy compilation errors in engine benchmarks by @AndreaBozzo
-
Add missing Basic pattern support to streaming benchmarks by @AndreaBozzo
-
Resolve domain pattern matching issue with proper module imports by @AndreaBozzo
-
Resolve enum pattern matching issue in streaming domain by @AndreaBozzo
-
Improve pattern matching in streaming domain generation by @AndreaBozzo
-
Resolve unwrap() calls and benchmark compilation issues by @AndreaBozzo
-
Added new justfile by @AndreaBozzo
-
Fix Cargo.lock line endings and version by @AndreaBozzo
-
Update dependencies and gitignore by @AndreaBozzo
-
Update Cargo.lock for version 0.4.5 by @AndreaBozzo
-
PyPI wheel naming compatibility by @AndreaBozzo
-
Ensure RUSTFLAGS apply to all target architectures by @AndreaBozzo
-
Resolve clippy dead_code warning by @AndreaBozzo
-
Resolve CPU compatibility issues with Python wheels by @AndreaBozzo
- Enhance GitHub Pages dashboard and benchmark workflows by @AndreaBozzo
-
Bump version to 0.4.5 for security release by @AndreaBozzo
-
Enhance GitHub Pages dashboard visual design by @AndreaBozzo
-
Adjusted version for changelog.md by @AndreaBozzo
-
Added new Wiki pages by @AndreaBozzo
-
Resolve CI test failures and feature compilation issues by @AndreaBozzo
-
Remove unsafe unwrap() call in security module by @AndreaBozzo
-
Address critical SQL injection and information disclosure vulnerabilities by @AndreaBozzo
-
Complete Python bindings enhancement for ML/AI workflows (#40) by @AndreaBozzo
-
Implement comprehensive CLI enhancements for GitHub issue #39 by @AndreaBozzo
-
Implement comprehensive CLI improvements with ML readiness scoring by @AndreaBozzo
-
Optimize Cargo.toml build profiles and fix unwrap calls for faster compilation by @AndreaBozzo
-
Add comprehensive database enhancements with ML readiness assessment by @AndreaBozzo
- Update GitHub Actions workflows and add CLI integration tests by @AndreaBozzo
-
Update CHANGELOG.md with Python bindings ML/AI enhancements by @AndreaBozzo
-
Restructure Python documentation with organized wiki structure by @AndreaBozzo
-
Removed markdownlint.yaml as is not being utilized. by @AndreaBozzo
-
Added CLI guide wiki page by @AndreaBozzo
-
Updated CHANGELOG.md to include last 2 PRs merged. by @AndreaBozzo
-
Improve security scanner regex for more accurate detection by @AndreaBozzo
-
Remove secret keyword from test to pass security scanner by @AndreaBozzo
-
Improve security test to avoid scanner warnings by @AndreaBozzo
-
Resolve security scanner warnings in test passwords by @AndreaBozzo
-
Replace hardcoded test password with generic placeholder by @AndreaBozzo
-
Remove broken dataprof-wiki submodule by @AndreaBozzo
-
Re-applied linting by @AndreaBozzo
-
Resolve panic strategy conflict for benchmarks by @AndreaBozzo
-
Add missing public exports for CLI binary linking by @AndreaBozzo
-
Restore original thiserror v2.0 configuration by @AndreaBozzo
-
Downgrade thiserror to v1.0 for better compatibility by @AndreaBozzo
-
Replace unsafe unwrap() calls with safe pattern matching by @AndreaBozzo
-
Use is_multiple_of() instead of manual modulo check by @AndreaBozzo
-
Applied formatting to python.rs by @AndreaBozzo
-
Improve git operations resilience in release workflow by @AndreaBozzo
-
Remove all unwrap() calls from progress.rs for safer error handling by @AndreaBozzo
-
Complete CLI enhancements and resolve all test failures by @AndreaBozzo
-
Resolve linking conflicts by using rlib crate type only by @AndreaBozzo
-
Remove problematic build rustflags that caused linking errors by @AndreaBozzo
-
Optimize staging-dev workflow to use default database features by @AndreaBozzo
-
Clarify database features are default, not optional + optimize CI workflows by @AndreaBozzo
-
Update DatabaseConfig initialization in database_examples.rs by @AndreaBozzo
-
Relax performance test threshold to 3.0x for CI environments by @AndreaBozzo
-
Complete Arrow integration and intelligent engine selection by @AndreaBozzo
-
Validate and refine performance claims with comprehensive benchmarking by @AndreaBozzo
-
Add Python artifacts to .gitignore by @AndreaBozzo
-
Remove legacy setup.py files by @AndreaBozzo
-
Update CLAUDE.md with essential commands by @AndreaBozzo
-
Add v0.4.1 changelog for intelligent engine selection by @AndreaBozzo
-
Relax performance test threshold for CI environments by @AndreaBozzo
-
Removed windows path for linux ci runner by @AndreaBozzo
-
Formatting cleanup by @AndreaBozzo
-
Make engine selection tests deterministic by @AndreaBozzo
-
Improve engine selection test for large files by @AndreaBozzo
-
Resolve cross-platform binary path issue in benchmark script by @AndreaBozzo
-
Improve GitHub Pages dashboard template and update CHANGELOG by @AndreaBozzo
-
Add fallback return in memory usage detection for Linux by @AndreaBozzo
-
Implement comprehensive performance benchmarking suite - resolves #23 by @AndreaBozzo
-
Improve release workflow with comprehensive automation by @AndreaBozzo
-
Comprehensive test coverage infrastructure - issue #21 by @AndreaBozzo
-
Bump version to 0.4.0 with comprehensive changelog by @AndreaBozzo
-
Implement modular architecture for lib.rs - resolves issue #20 by @AndreaBozzo
-
Update changelog with comprehensive quality assurance features by @AndreaBozzo
-
Redesign README for professional elegance and clarity by @AndreaBozzo
-
Add Apache Arrow integration guide and update CHANGELOG v0.3.6 by @AndreaBozzo
-
Add Code of Conduct for community guidelines by @AndreaBozzo
-
Eliminate environment variable dependency for binary upload by @AndreaBozzo
-
Add shell bash for wheel upload on Windows by @AndreaBozzo
-
Improve binary preparation for cross-platform release by @AndreaBozzo
-
Resolve GitHub Pages 404 for benchmark results by @AndreaBozzo
-
Update GitHub Pages deployment to use actions/deploy-pages@v4 by @AndreaBozzo
-
Updated benchmarks artifact generation on a specifical github page by @AndreaBozzo
-
Update benchmark workflow triggers and criterion output format by @AndreaBozzo
-
Use standard GitHub Actions runners instead of custom labels by @AndreaBozzo
-
Resolve criterion sample-size requirement and workflow skipping behavior by @AndreaBozzo
- Replace broken workflows with simple, human-logic release workflow by @AndreaBozzo
-
Add --find-interpreter flag to maturin build by @AndreaBozzo
-
Correct matrix strategy syntax in release workflow by @AndreaBozzo
-
Update Cargo.lock for version 0.3.6 [skip ci] by @AndreaBozzo
-
Release: Bump version to 0.3.6 [skip ci] by @AndreaBozzo
-
Release: V0.3.6 [skip ci] by @AndreaBozzo
-
Update gitignore for Node.js dependencies by @AndreaBozzo
- Deps: Bump thiserror from 1.0.69 to 2.0.16 (#14) by @dependabot[bot]
- Resolve duplicate thiserror entries in Cargo.lock by @AndreaBozzo
-
Enhance release automation and fix crates.io publishing by @AndreaBozzo
-
Optimize memory allocations and add leak detection for v0.3.5 by @AndreaBozzo
-
Add comprehensive database connector system by @AndreaBozzo
-
Setup staging branch development workflow by @AndreaBozzo
-
Update to v0.3.5 - Database Connectors & Memory Safety Edition by @AndreaBozzo
-
Simplify staging-to-master workflow and add release automation by @AndreaBozzo
-
Add comprehensive memory leak detection tests by @AndreaBozzo
-
Temporarily disable Python features on macOS by @AndreaBozzo
-
Apply code formatting and linter fixes by @AndreaBozzo
-
Handle existing versions gracefully in both PyPI and crates.io by @AndreaBozzo
-
Resolve compilation errors and security audit false positive by @AndreaBozzo
-
Support SQLite :memory: connections and clarify sampling key usage by @AndreaBozzo
-
Resolve streaming profiler test failures by @AndreaBozzo
-
Finalize workflows and formatting for v0.3.5 release by @AndreaBozzo
-
Replace unsafe unwrap() calls with proper error handling by @AndreaBozzo
-
Resolve --all-features conflicts and simplify CI workflows by @AndreaBozzo
-
Resolve Clippy warnings and align pre-commit hooks with CI workflows by @AndreaBozzo
-
Resolve DuckDB linking issues in CI by testing features separately by @AndreaBozzo
-
Correct unwrap() detection logic in CI workflow by @AndreaBozzo
-
Update CI workflows for database features compatibility by @AndreaBozzo
-
Remove unsafe unwrap() calls throughout codebase by @AndreaBozzo
-
Use GitHub Actions conditionals instead of bash syntax by @AndreaBozzo
-
Use correct PyO3 0.24+ Bound API pattern by @AndreaBozzo
-
Add explicit PyO3 imports for v0.24+ compatibility by @AndreaBozzo
-
Remove all unsafe unwrap() calls - resolves #18 by @AndreaBozzo
-
Reduce clippy strictness in staging workflow by @AndreaBozzo
- Upgrade PyO3 to v0.24.2 to fix RUSTSEC-2025-0020 by @AndreaBozzo
-
Comprehensive v0.3.0 development infrastructure and tooling by @AndreaBozzo
-
Implement v0.3.0 streaming and memory-efficient processing by @AndreaBozzo
-
Deps: Bump colored from 2.2.0 to 3.0.0 by @dependabot[bot]
-
Deps: Bump clap from 4.5.46 to 4.5.47 by @dependabot[bot]
-
Resolve all clippy warnings and pre-commit issues by @AndreaBozzo
-
Apply pre-commit formatting and linting fixes by @AndreaBozzo
- Implement comprehensive data quality analysis system by @AndreaBozzo