diff --git a/AGENTS.md b/AGENTS.md index 0b1f129..bf24bec 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -16,7 +16,7 @@ See also: [Shared AI agent instructions for the YINI project family](../AGENTS.m - **Task runner:** Task (`Taskfile.yml`) - **Framework/stack:** setuptools package, ANTLR4-generated parser, pytest, Ruff, mypy - **Monorepo:** No -- **Status:** Alpha package for early testing and integration +- **Status:** Beta package for early testing and integration This repository contains the official Python parser for YINI, an INI-inspired, indentation-insensitive configuration format with explicit nested sections and @@ -296,7 +296,7 @@ unless the maintainer asks for release work. ## Project-Specific Notes - The public loading API is `load`, `loads`, and `YiniParseError`. -- The package is alpha; still avoid unnecessary public API churn. +- The package is beta; still avoid unnecessary public API churn. - Generated parser files are included so package users do not need Java or the ANTLR generator. - Java is only needed by maintainers regenerating parser sources. diff --git a/CHANGELOG.md b/CHANGELOG.md index 239ef33..5e6f864 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # CHANGELOG +## 0.2.0b1 - 2026 June +- **Fixed:** Improved error reporting when a YINI file has broken syntax, including unfinished block comments such as `/* comment`. +- **Fixed:** `#!` lines outside the first line are now safely ignored as comment-like lines. +- **Fixed:** `@yini` markers are now rejected if they appear after real file content. The `@yini` marker belongs at the top of the file. +- **Fixed:** Backticked keys are now handled correctly, and invalid plain keys such as `1key` and `my.key` are rejected. +- **Added:** More tests for keys, comments, parser mode handling, and invalid YINI files. + ## 0.1.0a3 - 2026 May - **Fixed:** Normalized input handling so `load(...)` and `loads(...)` accept YINI documents without a final trailing newline. - **Improved:** Cleaned up the published Python package contents by excluding tests and development-only project files from the source distribution and wheel. diff --git a/README.md b/README.md index 3753661..56fb67b 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ The official Python parser for **YINI** (by the YINI-lang project) — a human-readable, INI-inspired, indentation-insensitive configuration format with clear nested sections, explicit structure, comments, and predictable parsing. -> **Status:** Alpha. +> **Status:** Beta. > This parser is intended for early testing and integration. The public API and edge-case behavior may still change before `1.0.0`. --- @@ -201,7 +201,7 @@ enabled = true mode = "optional" ``` -YINI may not be the right choice when you need mature ecosystem support, existing schema tooling, or maximum compatibility with infrastructure that already expects JSON, YAML, or TOML. The format and parser are still alpha-stage and best suited for testing, experiments, and early integration feedback. +YINI may not be the right choice when you need mature ecosystem support, existing schema tooling, or maximum compatibility with infrastructure that already expects JSON, YAML, or TOML. The format and parser are still beta-stage and best suited for testing, experiments, and early integration feedback. --- @@ -298,6 +298,14 @@ task check --- +## 🧪 Testing and Stability + +This parser is covered by smoke, integration, and regression tests. + +It has also been run against `yini-test-suite` v0.3.0, the external [YINI conformance test suite](https://github.com/YINI-lang/yini-test-suite), with all TypeScript parser cases passing. + +--- + ## Links - [YINI specification](https://yini-lang.org/refs/specification?utm_source=github&utm_medium=referral&utm_campaign=yini_parser_python&utm_content=readme) diff --git a/pyproject.toml b/pyproject.toml index bd3e512..9e25ae1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,7 +23,7 @@ keywords = [ "configuration-file", ] classifiers = [ - "Development Status :: 3 - Alpha", + "Development Status :: 3 - Beta", "Intended Audience :: Developers", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10",