Skip to content

v0.1.0

Latest

Choose a tag to compare

@marcfargas marcfargas released this 19 May 08:03
· 4 commits to develop since this release

v0.1.0 (2026-05-19)

This release is published under the LGPL-3.0-or-later License.

Bug Fixes

  • 01-04: CR-01 fix non-seekable BinaryIO crash in sniffer (f0ded91)

  • 01-04: CR-02 guard CLI read_bytes() against OSError (30d36d1)

  • 01-04: CR-03 make ContaPlusJournal.rows immutable tuple (96e57c7)

  • 01-04: CR-04 fix mixed-sign both-non-zero guard to use != 0 (744bbef)

  • 01-04: WR-02 fix column width undercount for zero numeric values (f106121)

  • 02: CR-01/WR-01/WR-02 harden ZIP extraction against zip-slip, symlink and zip-bomb (22a0708)

  • 02: CR-02 coerce numeric SUBCTA cod/titulo fields defensively (05f4c11)

  • 02: WR-01 use literal symlink mode mask, stat.S_IFMT is not a constant (723cd96)

  • 02: WR-03 make _pick_column case-insensitive internally (6a2041b)

  • 02: WR-04 normalise SUBCTA lookup keys and log enrichment misses (0f4954b)

  • 02: WR-05 carry SUBCTA schema on SubctaTable for full-dump headers (f036267)

  • 02: WR-06 wrap CLI render/write in error handling, no traceback leak (6ff493d)

  • 04: Set allow_zero_version so PSR honors the 0.1.0 first release (D-04) (464bcf9)

Chores

  • Add gitignore (excludes confidential pii-test-data) (66293ae)

  • Add project config (ff10f34)

  • 01-03: README Installation/Usage sections and .gitignore complete (15dbade)

  • 04: Point package URLs at the chispa-sideral org (119b484)

  • 04: Pyproject.toml metadata pass — PEP 639, classifiers, PSR config, typer fix (D-04/D-08/D-11/D-12) (93e1ca6)

Continuous Integration

  • 04: Add CI workflow — pytest on push and PR (c90d2fd)

  • 04: Allow on-demand TestPyPI-only release run (cf91efa)

  • 04: Skip TestPyPI upload on real releases (40b1aa9)

  • 04-03: Add micropip smoke test (D-09) — Pyodide Node.js harness (96d49a7)

  • 04-03: Add release.yml — trusted publishing workflow (D-06) (3c5cdb0)

Documentation

  • Capture exploration — lean PWA stack (110cfb2)

  • Create roadmap (5 phases) (da14ffa)

  • Define v1 requirements (bfb55e2)

  • Note confidential real-data fixtures in pii-test-data (78f759d)

  • Synthesize project research (2003db1)

  • 01: Add code review report (fd59411)

  • 01: Add code review report (c39312f)

  • 01: Add gap-closure plan 01-04 for 4 verification blockers (98344e6)

  • 01: Add phase verification report (gaps found) (b24b978)

  • 01: Capture phase context (102aeb3)

  • 01: Create phase plan (b3d97f6)

  • 01-01: Complete journal reader core plan (57948a0)

  • 01-02: Complete XLSX renderer and CLI plan (5414066)

  • 01-03: Complete walking skeleton — human-verify APPROVED, Phase 01 done (0138c87)

  • 01-03: Plan task 1 complete — README/gitignore/wheel build verified (5648332)

  • 01-04: Complete gap-closure plan — 5 fixes, 55 tests passing (4384beb)

  • 02: Add code review fix report (5271158)

  • 02: Add code review report (c7a8d6d)

  • 02: Capture phase context (31e327b)

  • 02: Create phase plan (ef3e59e)

  • 02: Research phase - ZIP & subaccounts (fb8a66c)

  • 02-01: Complete Phase 2 Plan 01 — RED test gate SUMMARY + state update (ac00a70)

  • 02-02: Complete ZIP pipeline plan (55901b6)

  • 02-03: Complete multi-sheet XLSX renderer and --company CLI flag plan (d42d130)

  • 02-zip-subaccounts: Create Phase 2 plan — ZIP input, SUBCTA enrichment, multi-sheet XLSX (a701c61)

  • 03: Add code review report (86721c5)

  • 03: Add code review report (d66814f)

  • 03: Add missing D-NN citations to plans 01-04 (b7f7c97)

  • 03: Add phase pattern map (29a1717)

  • 03: Add phase verification report (gaps found) (8beee93)

  • 03: Capture phase context (7699128)

  • 03: Create gap-closure plan 03-05 for WR-06/WR-05/casing/sheet-count (c01a33e)

  • 03: Create phase 3 plan — 4 plans, 4 waves (79ca54d)

  • 03: Create phase plan (b8f11c3)

  • 03: Record gap-closure plan 03-05 in state (9b3e91e)

  • 03: Research phase — schemas, trial balance, lenient mechanics (120cab9)

  • 03-01: Complete Phase 3 plan 01 test scaffold summary (c606450)

  • 03-02: Complete core models, balance computation, and lenient journal loop plan (cd735fa)

  • 03-03: Complete 10-table catalogue, lenient wiring, and balance plan (98ba477)

  • 03-04: Complete Phase 3 sheet renderers and lenient CLI plan (9d3a2c4)

  • 03-05: Complete gap-closure plan summary (WR-06/WR-05/casing/sheet-count) (a69119c)

  • 04: Add colon-form D-NN decision citations to plan frontmatter (f20f50a)

  • 04: Add LICENSE (LGPL-3.0-or-later), expand README into PyPI landing page (D-10/D-11) (3997aa3)

  • 04: Add pattern map (4cd8b63)

  • 04: Capture phase context (9a69d10)

  • 04: Create phase 4 plan — CLI-03 report + PyPI publication (cd5a0c5)

  • 04: Create phase plan (fbefc65)

  • 04: Research phase 4 — CLI report, PyPI trusted publishing, micropip gate, PEP 639 (c962e2d)

  • 04-01: Complete CLI-03 conversion report plan (c2aa533)

  • 04-02: Complete package metadata plan (7f2ae66)

  • 04-03: Complete CI infrastructure plan — release.yml + micropip smoke test (bdd7d0c)

  • phase-01: Complete phase execution (f0025d4)

  • phase-01: Evolve PROJECT.md after phase completion (bfb1d4b)

  • phase-02: Add security threat verification (8019366)

  • phase-03: Add validation strategy (3985506)

  • phase-03: Complete phase execution (6feed28)

  • phase-03: Evolve PROJECT.md after phase completion (7696c3d)

  • phase-03: Update tracking after wave 1 (caa813c)

  • phase-03: Update tracking after wave 2 (108c61c)

  • phase-03: Update tracking after wave 3 (f259943)

  • phase-03: Update tracking after wave 4 (88a94c6)

  • phase-03: Update tracking after wave 5 (529a39d)

  • phase-1: Add validation strategy (5160223)

  • phase-1: Research journal slice domain (df303d1)

  • phase-2: Add validation strategy (125083e)

  • phase-2: Refresh validation strategy after Nyquist audit (2b1ca34)

  • phase-4: Add validation strategy (d16161c)

  • state: Record phase 1 context session (21e5948)

  • state: Record phase 2 context session (6062e3a)

  • state: Record phase 3 context session (8b26c05)

  • state: Record phase 4 context session (ac7e588)

Features

  • 01-01: Journal reader with D-A1...D-E3 business rules (fe13755)

  • 01-01: Package scaffold, models, bridge, and sniffer (1e7ee62)

  • 01-01: Synthetic fixture factory and ported reader test suite (ce3e785)

  • 01-02: Implement Typer CLI entry point (contaplus2xlsx) (2427c38)

  • 01-02: Implement XLSX renderer with accounting format and Spanish headers (ba250d0)

  • 02-02: Extend models, upgrade sniffer, add _zip.py and _subcta.py (229845f)

  • 02-02: Wire ZIP dispatch in _reader.py and init.py; all reader tests GREEN (deb3a63)

  • 02-03: Add --company flag to CLI and wire render(data) for multi-sheet output (ae75d05)

  • 02-03: Generalize xlsx.py to render(ContaPlusData) with multi-sheet and Descripción (d3ec20c)

  • 03-02: Create _balance.py with compute_balance Decimal accumulation (3f73a7c)

  • 03-02: Extend _reader.py and read() with lenient journal loop (dec8433)

  • 03-02: Extend models.py with Phase 3 types and ContaPlusData attributes (df99913)

  • 03-03: Wire full 10-table catalogue, lenient path, and balance into read() (9843c81)

  • 03-04: Add --lenient flag to CLI and problems count to one-line summary (132e046)

  • 03-04: Add Phase 3 sheet renderers and update render() sheet order (8267582)

  • 03-05: Fix render() crash on journal=None (WR-06) (38cc316)

  • 03-05: Fix WR-05 ValueError catch, canonicalize ProblemEntry.table, fix CLI sheet count (2d1a8f6)

  • 04-01: Implement _print_report() replacing D-16 one-liner (CLI-03 GREEN) (c9c9fed)

Testing

  • 01-02: Add failing tests for CLI entry point (RED) (1d3d326)

  • 01-02: Add failing tests for XLSX renderer (RED) (363e74f)

  • 02: Complete UAT - 3 passed, 0 issues (fb5ebb0)

  • 02: Persist human verification items as UAT (9aeebee)

  • 02-01: Add failing Phase 2 tests for ZIP read, SUBCTA enrichment, multi-sheet (4307696)

  • 02-01: Extend conftest.py with Phase 2 ZIP and table fixture builders (7e88540)

  • 02-03: Add failing tests for render() multi-sheet and Descripción column (73da9e7)

  • 02-03: Remove xfail markers from CLI company-flag tests (dc28ba5)

  • 03-01: Add failing Phase 3 test files (RED state) (114da3b)

  • 03-01: Extend conftest.py with Phase 3 synthetic fixtures (3a914c0)

  • 03-05: Add failing tests for render(journal=None) WR-06 fix and D-03 end-to-end (0e36ea6)

  • 03-05: Add failing tests for WR-05 ValueError per-row catch (9a2c2fb)

  • 04: Strip ANSI codes before --help option assertion (88cfc2b)

  • 04-01: Add diario_with_memo_dbf fixture + CLI-03 RED tests (053d15c)


Detailed Changes: v0.0.0...v0.1.0