Skip to content

Commit 280ca67

Browse files
authored
Release prep docs for issue 198 (#199)
* Add release prep docs and blog for issue 198 * version updates
1 parent 6cf4512 commit 280ca67

17 files changed

Lines changed: 370 additions & 5 deletions

apps/api/CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# @anywaydata/api
22

3+
## 2.4.0
4+
5+
### Minor Changes
6+
7+
- n-wise generation and ui tidy
8+
9+
### Patch Changes
10+
11+
- Updated dependencies
12+
- @anywaydata/core@1.4.0
13+
314
## 2.3.0
415

516
### Minor Changes

apps/api/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@anywaydata/api",
3-
"version": "2.3.0",
3+
"version": "2.4.0",
44
"type": "module",
55
"private": false,
66
"bin": {

apps/cli/CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# @anywaydata/cli
22

3+
## 0.4.0
4+
5+
### Minor Changes
6+
7+
- n-wise generation and ui tidy
8+
9+
### Patch Changes
10+
11+
- Updated dependencies
12+
- @anywaydata/core@1.4.0
13+
314
## 0.3.0
415

516
### Minor Changes

apps/cli/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@anywaydata/cli",
3-
"version": "0.3.0",
3+
"version": "0.4.0",
44
"type": "module",
55
"private": false,
66
"bin": {

apps/mcp/CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# @anywaydata/mcp
22

3+
## 2.4.0
4+
5+
### Minor Changes
6+
7+
- n-wise generation and ui tidy
8+
9+
### Patch Changes
10+
11+
- Updated dependencies
12+
- @anywaydata/core@1.4.0
13+
314
## 2.3.0
415

516
### Minor Changes

apps/mcp/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@anywaydata/mcp",
3-
"version": "2.3.0",
3+
"version": "2.4.0",
44
"type": "module",
55
"private": false,
66
"bin": {
Lines changed: 211 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,211 @@
1+
---
2+
slug: release-prep-combinatorial-grid-workflows
3+
title: "Release Prep: Stronger Combinatorial Generation and Faster Grid Workflows"
4+
authors: [alan]
5+
tags: [release, feature, combinatorial, schema, import, export, ux]
6+
date: 2026-06-12T10:00
7+
---
8+
9+
The next release is centered on one theme: faster paths from existing data to realistic, constrained, exportable test sets.
10+
11+
This release adds broader combinatorial generation, schema authoring improvements, better import/export controls, and a few high-value grid usability upgrades.
12+
13+
<!-- truncate -->
14+
15+
## 1. N-wise combinatorial generation, not just pairwise
16+
17+
The biggest addition is that combinatorial generation now goes beyond pairwise.
18+
19+
Instead of stopping at 2-wise coverage, you can now choose stronger coverage levels for enum-driven schemas and compare strategies before generating.
20+
21+
Example schema:
22+
23+
```text
24+
Browser: Chrome,Firefox,Safari
25+
Device: Desktop,Tablet,Mobile
26+
Locale: en-GB,en-US,fr-FR
27+
Theme: Light,Dark
28+
```
29+
30+
With this schema you can choose:
31+
32+
- `2-wise` to cover every pair of enum values
33+
- `3-wise` to cover every triplet
34+
- stronger levels when you need more interaction coverage
35+
36+
This is especially useful when pairwise is too light, but full Cartesian generation would explode the row count.
37+
38+
Docs:
39+
40+
- [N-Wise Testing](/docs/test-data/n-wise-testing)
41+
- [Pairwise Testing](/docs/test-data/pairwise-testing)
42+
43+
![N-wise combinations dialog](/img/release-198/n-wise-generation.png)
44+
45+
## 2. Schema constraints with PICT-style `IF ... THEN ...`
46+
47+
Schema constraints make generated combinations more realistic by filtering out invalid rows.
48+
49+
Example:
50+
51+
```text
52+
Priority
53+
enum("High","Medium","Low")
54+
Status
55+
enum("Open","Queued","Closed")
56+
Escalated
57+
enum("Yes","No")
58+
59+
IF [Priority] = "High" THEN [Status] = "Open";
60+
IF [Priority] IN {"High","Medium"} THEN [Escalated] = "Yes";
61+
```
62+
63+
This means:
64+
65+
- high-priority items must be open
66+
- high and medium priorities must be escalated
67+
68+
Constraints work well with enum-heavy decision tables and combinatorial generation, giving you more realistic output without manually cleaning results afterward.
69+
70+
Docs:
71+
72+
- [Schema Definition](/docs/test-data/Schema-Definition)
73+
74+
## 3. Grid to Enum Schema for turning existing tables into generators
75+
76+
If you already have representative data in the main grid, you can now turn that grid into an enum schema automatically.
77+
78+
Example grid:
79+
80+
```text
81+
Browser,Device,Theme
82+
Chrome,Desktop,Light
83+
Firefox,Mobile,Dark
84+
Chrome,Tablet,Dark
85+
```
86+
87+
Generated schema:
88+
89+
```text
90+
Browser
91+
enum("Chrome","Firefox")
92+
Device
93+
enum("Desktop","Mobile","Tablet")
94+
Theme
95+
enum("Light","Dark")
96+
```
97+
98+
This is one of the most practical workflow improvements in the release because it shortens the path from imported examples to reusable generation rules.
99+
100+
Docs:
101+
102+
- [Data Grid Editable](/docs/test-data/data-grid-editable)
103+
104+
![Grid to enum schema in the app](/img/release-198/grid-to-enum-schema.png)
105+
106+
## 4. PICT-style inline enum definitions such as `Name: values`
107+
108+
Schema text now fits more naturally with compact PICT-style authoring.
109+
110+
Example:
111+
112+
```text
113+
Browser: Chrome,Firefox,Safari
114+
Theme: Light,Dark
115+
Priority: enum("High","Medium","Low")
116+
Owner: person.fullName
117+
```
118+
119+
That means you can mix:
120+
121+
- raw inline enum values
122+
- explicit `enum(...)`
123+
- other command-based field definitions
124+
125+
This makes it easier to paste or adapt schemas from existing combinatorial models instead of rewriting them into a stricter two-line format.
126+
127+
Docs:
128+
129+
- [Schema Definition](/docs/test-data/Schema-Definition)
130+
131+
## 5. Import trimming controls for cleaner amend and import workflows
132+
133+
Imported files and clipboard data can now be normalized during import.
134+
135+
You can trim:
136+
137+
- every imported field value
138+
- only selected fields
139+
140+
Example selected fields list:
141+
142+
```text
143+
Name, Email
144+
```
145+
146+
This helps when imported files contain accidental whitespace around values, but you do not want to aggressively rewrite every column.
147+
148+
Docs:
149+
150+
- [Import From File](/docs/editing-data/import-from-file)
151+
152+
![Import trim settings](/img/release-198/import-trim-settings.png)
153+
154+
## 6. File export settings for line endings and BOM
155+
156+
Downloads now support file transport settings without changing the preview text shown in the browser.
157+
158+
You can configure:
159+
160+
- `LF` or `Windows (CR/LF)` line endings
161+
- optional UTF-8 `BOM`
162+
163+
This is useful when exporting for spreadsheets, Windows tooling, or downstream systems that are sensitive to file encoding details.
164+
165+
Docs:
166+
167+
- [Exporting Data](/docs/editing-data/exporting-data)
168+
169+
![Download encoding settings](/img/release-198/export-encoding-settings.png)
170+
171+
## 7. Right-click context menu in the main data grid
172+
173+
The editable grid now has a right-click context menu for common grid actions.
174+
175+
This keeps more of the workflow close to the current selection and makes the app feel more like a direct data-work surface rather than a form with a grid attached to it.
176+
177+
Docs:
178+
179+
- [Data Grid Editable](/docs/test-data/data-grid-editable)
180+
181+
## 8. Always-visible total row counts in the data grid
182+
183+
The main grid now shows total row counts, and filtered views also show how many rows remain visible.
184+
185+
Examples:
186+
187+
```text
188+
Total rows: 125
189+
```
190+
191+
```text
192+
Total rows: 125 | Filtered Visible: 12
193+
```
194+
195+
It is a small change, but it removes friction during import checks, filtered analysis, and post-generation review.
196+
197+
Docs:
198+
199+
- [Data Grid Editable](/docs/test-data/data-grid-editable)
200+
201+
## Why should you care?
202+
203+
Taken together, these features make the tool better at moving through the whole workflow:
204+
205+
1. start with imported or hand-edited data
206+
2. convert it into a schema
207+
3. add constraints
208+
4. generate the right amount of combinatorial coverage
209+
5. export in the format and file encoding you actually need
210+
211+
The release adds more generation power, reduces setup time, and cleanup time around that generation.

docs-src/docs/020-editing-data/020-import-from-file.md

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,42 @@ The data will then be loaded into the Data Grid for editing via the grid, and sh
2020

2121
Once a file format tab has been selected it is also possible to drag and drop a file on to the GUI to start an import.
2222

23-
e.g. if `CSV` tab is chosen then the Drop Zone will read `[Drag And Drop .csv File Here]`, allowing you to drag and drop a file to this area to trigger an import.
23+
e.g. if `CSV` tab is chosen then the Drop Zone will read `[Drag And Drop .csv File Here]`, allowing you to drag and drop a file to this area to trigger an import.
24+
25+
## Import settings
26+
27+
The `Import settings` disclosure lets you normalize imported data before it is loaded into the grid.
28+
29+
### Trim every imported value
30+
31+
Enable trimming when your source file contains accidental leading or trailing whitespace in cells.
32+
33+
Example:
34+
35+
```text
36+
" Alice "," active "
37+
```
38+
39+
Imported with trim enabled becomes:
40+
41+
```text
42+
"Alice","active"
43+
```
44+
45+
### Trim only selected fields
46+
47+
If you only want to normalize certain columns, turn on selected-field trimming and provide a comma-separated list of field names.
48+
49+
Example field list:
50+
51+
```text
52+
Name, Email
53+
```
54+
55+
This is useful when:
56+
57+
- imported identifiers should keep whitespace exactly as-is
58+
- human-entered fields such as `Name` or `Email` need cleanup
59+
- you are preparing imported data for amend workflows and want more predictable matches
60+
61+
The trim settings apply to both file import and clipboard import.

docs-src/docs/020-editing-data/040-exporting-data.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,24 @@ When a tab has been selected the download button will change to match the format
1515

1616
Pressing the download button will start a conversion of the data in the grid to the specific format.
1717

18+
### File transport settings
19+
20+
Downloads also support file-only transport settings:
21+
22+
- line endings: `LF` or `Windows (CR/LF)`
23+
- optional UTF-8 `BOM`
24+
25+
These settings are useful when:
26+
27+
- a Windows tool expects `CR/LF`
28+
- a spreadsheet or editor works better with BOM-prefixed UTF-8 files
29+
- you want the downloaded file to match the target toolchain without changing the on-screen preview text
30+
31+
Example:
32+
33+
- preview text can stay normal `LF` text in the browser
34+
- downloaded `.csv` can use `CR/LF` plus `Include BOM`
35+
1836
## Exporting to Clipboard
1937

2038
To export to clipboard either:

0 commit comments

Comments
 (0)