diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 297753c..fb16edc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,9 +4,12 @@ on: push: branches: - main - - ui/frontend-prototype pull_request: +concurrency: + group: ci-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + permissions: contents: read diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..37e228d --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,41 @@ +# Changelog + +All notable project changes will be recorded here. + +The project is currently in pre-release development. + +## [0.1.0-alpha.1] - 2026-09-26 + +First functional alpha of Two-Export Comparator. + +### Added + +- local CSV and TSV file inspection in the browser; +- comma, semicolon and tab delimiter detection; +- quoted and multiline CSV field parsing; +- UTF-8 and UTF-8 BOM handling; +- basic text, number and date type inference; +- deterministic automatic column-pair suggestions; +- local hash-map based comparison; +- `MATCHED`, `MISMATCH`, `ONLY_A`, `ONLY_B`, `DUPLICATE` and `AMBIGUOUS` result states; +- numeric tolerance support; +- side-by-side Visual Diff; +- CSV result export with spreadsheet formula-injection protection; +- English and Latvian UI; +- bilingual README and translation contribution guide; +- project scope, security and contribution documentation; +- GitHub issue and pull-request templates; +- GitHub Actions test/build CI. + +### Privacy model + +Selected business files are processed in browser memory for the normal comparison workflow. The application does not require accounts, cloud upload, analytics or telemetry. + +### Known alpha limitations + +- automatic matching still needs broader regression coverage; +- ambiguous date formats need explicit handling; +- large-file performance still needs a measured baseline; +- accessibility and responsive audits are not yet complete; +- offline/static distribution is still planned. + diff --git a/README.lv.md b/README.lv.md index c1e4c1a..b84cd7c 100644 --- a/README.lv.md +++ b/README.lv.md @@ -7,7 +7,7 @@ > **Divi faili iekšā. Atšķirības ārā.** > Privātumam draudzīgs pārlūka rīks, kas lokāli salīdzina divus CSV/TSV eksportus un vizuāli parāda atšķirības blakus. -**Statuss:** pirms publiskā laidiena / aktīvā izstrādē +**Statuss:** `v0.1.0-alpha.1` kandidāts — pirms publiskā laidiena / aktīvā izstrādē ## Kāpēc šis projekts pastāv diff --git a/README.md b/README.md index 93798c2..0a360e6 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ > **Two files in. Differences out.** > A privacy-first browser tool that compares two CSV/TSV exports locally and shows the differences side by side. -**Status:** pre-release / active development +**Status:** `v0.1.0-alpha.1` candidate — pre-release / active development ## Why this exists diff --git a/ROADMAP.md b/ROADMAP.md index bb9e01b..e3fa366 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -126,12 +126,12 @@ Status: ✅ complete · 🟡 in progress · ⬜ planned · ⛔ blocked ## Phase 8 — Public open-source release / Publisks open-source release ⬜ - ⬜ Final project name/branding review. -- ⬜ MIT license and public repository metadata. -- ⬜ CONTRIBUTING polish. -- ⬜ Issue and PR templates. +- 🟡 MIT license and repository metadata prepared; repository visibility remains a separate publication decision. +- ✅ CONTRIBUTING polish. +- ✅ Issue and PR templates. - ⬜ Good first issues. - ⬜ Help-wanted issues for parsers, formats and translations. -- ⬜ First tagged release. +- 🟡 First alpha release candidate prepared as v0.1.0-alpha.1. - ⬜ Public launch documentation and screenshots. --- @@ -147,7 +147,8 @@ Status: ✅ complete · 🟡 in progress · ⬜ planned · ⛔ blocked | 2026-09-26 | R4 — Visual Diff pivot | ✅ | Product flow changed to Upload → automatic comparison → side-by-side Visual Diff. Manual mapping moved behind Expert settings. | | 2026-09-26 | R5 — Real browser engine MVP | ✅ | Replaced mock default with real local CSV/TSV parsing, automatic mapping suggestions and deterministic comparison sufficient for the Visual Diff flow. Regression fixtures pass (4/4) and production build verified locally. | | 2026-09-26 | R6 — Repository polish | ✅ | Reworked EN/LV README around the Visual Diff product promise, documented strict project scope, strengthened contribution/security guidance, added GitHub issue/PR templates, README hero artwork and CI workflow. | +| 2026-09-26 | R7 — Alpha release preparation | 🟡 | Prepared v0.1.0-alpha.1 metadata, changelog and release notes; simplified CI to one PR check plus one main-branch check and added concurrency cancellation. Social Preview upload and tagged prerelease remain. | ## Next target / Nākamais mērķis -**Next:** harden automatic matching/normalization without expanding the core workflow, then prepare the first public release candidate. +**Next:** publish the Social Preview, tag `v0.1.0-alpha.1` as a prerelease, then continue matching/normalization hardening without expanding the core workflow. diff --git a/docs/releases/v0.1.0-alpha.1.md b/docs/releases/v0.1.0-alpha.1.md new file mode 100644 index 0000000..8bc63b9 --- /dev/null +++ b/docs/releases/v0.1.0-alpha.1.md @@ -0,0 +1,23 @@ +# v0.1.0-alpha.1 — First functional alpha + +Two files in. Differences out. + +This prerelease marks the first functional Two-Export Comparator alpha: two CSV/TSV exports can be loaded locally in the browser, matched automatically and inspected through a side-by-side Visual Diff. + +## Highlights + +- local-only CSV/TSV processing; +- automatic delimiter detection; +- automatic column mapping suggestions; +- deterministic record matching; +- mismatches, missing rows, duplicates and ambiguous keys surfaced explicitly; +- side-by-side Visual Diff; +- CSV result export; +- English and Latvian UI; +- no account or cloud upload required for comparison. + +## Important + +This is an alpha prerelease, not a stable production release. Automatic mapping and normalization are deliberately conservative and still need broader edge-case coverage. + +Use synthetic or non-sensitive sample data when reporting bugs publicly. diff --git a/package-lock.json b/package-lock.json index 63b640c..30eaf1d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "two-export-comparator", - "version": "0.0.1", + "version": "0.1.0-alpha.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "two-export-comparator", - "version": "0.0.1", + "version": "0.1.0-alpha.1", "devDependencies": { "vite": "^7.0.0" } diff --git a/package.json b/package.json index 93d8668..8fd7531 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "two-export-comparator", - "version": "0.0.1", + "version": "0.1.0-alpha.1", "private": true, "type": "module", "description": "Privacy-first browser utility for comparing two CSV/TSV exports locally.",