Release Fixture Tools 0.2.0
Verify / verify (push) Canceled after 0s

This commit is contained in:
2026-09-02 13:00:37 +02:00
parent f5d018c64f
commit f1c41e7079
22 changed files with 1007 additions and 126 deletions
+5
View File
@@ -1,5 +1,10 @@
# Changelog
## 0.2.0 - 2026-09-02
- Add reusable provider definitions, richer relational constraints and
deterministic cross-table generation with explicit violation evidence.
## 0.1.0 - 2026-09-01
- Add bounded JSON Schema, SQL DDL, XSD, CSV-heading, and fixture-recipe import
+3 -3
View File
@@ -1,5 +1,5 @@
==============================================================================
@add-ideas/toolbox-contract@0.2.3
@add-ideas/toolbox-contract@0.3.0
Declared licence: Apache-2.0
==============================================================================
--- LICENSE ---
@@ -198,7 +198,7 @@ Declared licence: Apache-2.0
==============================================================================
@add-ideas/toolbox-helpers@0.1.0
@add-ideas/toolbox-helpers@0.2.0
Declared licence: GPL-3.0-or-later
==============================================================================
--- LICENSE ---
@@ -879,7 +879,7 @@ Public License instead of this License. But first, please read
==============================================================================
@add-ideas/toolbox-shell-react@0.2.3
@add-ideas/toolbox-shell-react@0.3.0
Declared licence: Apache-2.0
==============================================================================
--- LICENSE ---
+12 -4
View File
@@ -3,18 +3,25 @@
Generate deterministic, privacy-safe synthetic test fixtures entirely in the
browser. Fixture Tools is a local-first module in the add·ideas Toolbox.
## v0.1.0 capabilities
## v0.2.0 capabilities
- Import a focused subset of JSON Schema, SQL `CREATE TABLE` DDL, XSD, CSV
headings, or the app's portable fixture-model JSON
- Review and edit normalized tables, fields, types, required/unique rules,
numeric and length ranges, enumerations, and foreign-key relationships
numeric and length ranges, enumerations, scalar foreign keys, composite
unique constraints, and composite foreign-key relationships
- Generate reproducible rows from a text seed with uniform, sequential,
normal, and constant distributions
- Deliberately exercise boundary values or inject invalid values, with a
separate violation ledger so negative-test fixtures cannot be mistaken for
valid data
- Preserve referential integrity and field uniqueness for valid generated rows
- Generate tables in a deterministic dependency-topological order, with an
explicit error for cyclic references
- Audit positive, boundary and intentional-negative exercise counts in a
constraint coverage matrix
- Select deterministic provider profiles (person, network, commerce), with a
typed extension point for additional local profiles
- Export JSON, spreadsheet-safe CSV, NDJSON, XML, SQL `INSERT` statements, or a
reusable fixture recipe
- Use only reserved example domains for generated email addresses
@@ -24,8 +31,9 @@ browser. Fixture Tools is a local-first module in the add·ideas Toolbox.
The importers normalize common declarative constructs; they are not complete
JSON Schema, SQL, or XML Schema validators. Remote references, schema code,
database connections, XML entities, XSD `choice`/identity constraints, SQL
dialects beyond common table/column clauses, and production-scale data loads are
out of scope in v0.1.0.
dialects beyond common table/column clauses, cyclic relational recipes, and
production-scale data loads are out of scope in v0.2.0. Coverage counts describe
generated exercises; they do not prove schema or application coverage.
Inputs are capped at 2 MiB. A recipe can contain at most 20 tables and 100
fields per table; generation is capped at 50,000 total rows and 8 MiB per
+2 -2
View File
@@ -1,7 +1,7 @@
# Corresponding source
The corresponding source for Fixture Tools 0.1.0 is available at:
The corresponding source for Fixture Tools 0.2.0 is available at:
https://git.add-ideas.de/lotobo/fixture-tools/src/tag/v0.1.0
https://git.add-ideas.de/lotobo/fixture-tools/src/tag/v0.2.0
Build with Node.js 22, npm 11, `npm ci`, and `npm run release:artifact`.
+4 -4
View File
@@ -1,12 +1,12 @@
# Third-party notices
Fixture Tools 0.1.0 directly depends on these runtime packages:
Fixture Tools 0.2.0 directly depends on these runtime packages:
| Package | Pinned version | Declared licence |
| -------------------------------- | -------------: | ---------------- |
| `@add-ideas/toolbox-contract` | 0.2.3 | Apache-2.0 |
| `@add-ideas/toolbox-helpers` | 0.1.0 | GPL-3.0-or-later |
| `@add-ideas/toolbox-shell-react` | 0.2.3 | Apache-2.0 |
| `@add-ideas/toolbox-contract` | 0.3.0 | Apache-2.0 |
| `@add-ideas/toolbox-helpers` | 0.2.0 | GPL-3.0-or-later |
| `@add-ideas/toolbox-shell-react` | 0.3.0 | Apache-2.0 |
| `react` | 19.2.8 | MIT |
| `react-dom` | 19.2.8 | MIT |
+1 -1
View File
@@ -1,5 +1,5 @@
const CACHE_PREFIX = "fixture-tools-shell-";
const CACHE_NAME = CACHE_PREFIX + "0.1.0";
const CACHE_NAME = CACHE_PREFIX + "0.2.0";
const CORE = ["./", "./manifest.webmanifest", "./favicon.svg"];
self.addEventListener("install", (event) => {
event.waitUntil(
+17 -1
View File
@@ -3,7 +3,7 @@
"schemaVersion": 1,
"id": "de.add-ideas.fixture-tools",
"name": "Fixture Tools",
"version": "0.1.0",
"version": "0.2.0",
"description": "Generate deterministic synthetic test data locally.",
"entry": "./",
"icon": "./favicon.svg",
@@ -21,6 +21,22 @@
"crossOriginIsolated": false,
"topLevelContext": false
},
"io": {
"accepts": [
{ "mediaType": "application/schema+json", "extensions": [".json"] },
{ "mediaType": "application/sql", "extensions": [".sql"] },
{ "mediaType": "application/xml", "extensions": [".xsd", ".xml"] },
{ "mediaType": "text/csv", "extensions": [".csv"] }
],
"produces": [
{ "mediaType": "application/json", "extensions": [".json"] },
{ "mediaType": "application/x-ndjson", "extensions": [".ndjson"] },
{ "mediaType": "text/csv", "extensions": [".csv"] },
{ "mediaType": "application/xml", "extensions": [".xml"] },
{ "mediaType": "application/sql", "extensions": [".sql"] }
]
},
"capabilities": { "required": [], "optional": [] },
"privacy": {
"processing": "local",
"fileUploads": true,