# Changelog

All notable changes are documented here, newest first. Entries use the timestamp scheme
`[YYYY.M.D-HHMM] - YYYY-MM-DD - HH:MM`.

## [2026.10.31-249] - 2026-10-31 - 02:49

### Added

- The explainer shows the app: a screenshot of the real window on Windows after converting the bundled example ("Conversion finished.").

## [2026.10.31-117] - 2026-10-31 - 01:17

### Added

- The explainer site is published: <https://xml-to-json-converter.niftylittletools.dev/> (GitLab Pages, built from `explainer/` by the new `.gitlab-ci.yml`), its `site` set for canonical links and the sitemap, and the README's **Live:** line.

## [2026.10.30-1916] - 2026-10-30 - 19:16

### Changed

- Repository: `gitlab.com/nifty-little-tools/desktop-apps/xml-to-json-converter`, the project renamed on GitLab to match the app.

## [2026.10.30-1844] - 2026-10-30 - 18:44

### Changed

- Renamed **XML to JSON Converter** (was "XML 1.4 to JSON Converter"): the README, the window and file-dialog text, both logos, the explainer and the project name (`xml-to-json-converter`, relocked). No XML 1.4 exists: the W3C has published 1.0 and 1.1. The README now says so, and that a file declaring 1.4 still converts, because neither lxml nor xmltodict rejects an unknown version (tested on 1.0, 1.1 and 1.4 declarations).
- Repository link: `desktop-apps/xml-1.4-to-json-converter`, the project's place since the GitLab regrouping; the path itself is renamed on GitLab next.

## [2026.10.29-1959] - 2026-10-29 - 19:59

### Documentation

- README rewritten to the workspace structure (`_templates/README.md`): the key line, Features, Parameters/Flags (none), the executable build under Development, Credits (the ChatGPT experiment notes) and Licence. The sample output is in `example/JSON Conversions/`.

### Fixed

- `uv.lock` had recorded an older version of the project itself, which `uv sync --locked` refuses; relocked (one line, no dependency changed). `check_conformance.py` now checks it.

## [2026.10.28-2156] - 2026-10-28 - 21:56

### Added

- **Explainer site** (`explainer/`, global §11): a static Astro page in the house Cyanotype style that says what the app is, what it does, how to run it, and its privacy terms, written from this README. It is light by default with its theme remembered, has a toggleable intro and the privacy notice, and loads nothing from a third party. Built from the workspace's shared template (`_explainer/`), copied unchanged and checked by `check_conformance.py`; only `src/site.js` (its words) is this tool's own. It is published once the tool's domain is chosen (plan Phase 8). The README gains an "Explainer site" section.

## [2026.10.26-1842] - 2026-10-26 - 18:42

### Changed

- Migrated from Poetry to **uv**: PEP 621 `[project]`, `package = false` (an application run as `main.py`; the old `packages = ["xml_1"]` named a folder that does not exist), `requires-python = ">=3.12"`, `.python-version` 3.12, `uv.lock`; `poetry.lock` removed. Authorship set to Arziel.
- Dependencies moved to their current releases: PyQt6 6.11, lxml 6.1 (from 4.6), chardet 7.7 (from 4.0), xmltodict 1.0 (from 0.12). Verified: converting `example/People.xml` produces JSON identical to the committed `example/JSON Conversions` output.
- README: install, run and the cx_Freeze build through uv; the Poetry section removed.

### Added

- README `## Privacy & security`: no network requests; it writes only the JSON beside your input.

### Security

- `pip-audit` over the new lockfile: no known vulnerabilities.

## [2026.10.26-1813] - 2026-10-26 - 18:13

### Changed

- `.gitattributes` normalising line endings to LF (`* text=auto eol=lf`) and marking binaries.

## Before this changelog

Reconstructed from `git log` (commit date, subject, hash):

- 2026-06-30 — Add markdownlint config (house standard) (`80f9026`)
- 2026-06-29 — Add house logo.svg (`b5f6169`)
- 2024-03-27 — Added folder support, implemented Poetry package handling (`c8f9776`)
- 2024-03-27 — Add LICENSE (`3282304`)
- 2024-03-27 — Delete LICENSE (`e54bf41`)
- 2023-03-30 — Refactor XML to JSON converter following best practices (`f26973e`)
- 2023-03-30 — Update instructions for building an executable using cx_Freeze (`f77771c`)
- 2023-03-30 — Refactored XML to JSON converter GUI application (`ad51b32`)
- 2023-03-24 — Updated the requirements and the compiled exe (`ada5568`)
- 2023-03-24 — Version 1.1 - Added threading (`e2ed767`)
- 2023-03-24 — Added a progress bar (`681e646`)
- 2023-03-24 — Sample file mention (`f8053ef`)
- 2023-03-24 — Add LICENSE (`20e52d9`)
- 2023-03-24 — Version 1.0 (`f74ced0`)
- 2023-03-24 — Version 1.0 (`8b103e6`)
