Commit Graph

  • d8048df169 Tests: padded and stray-brace arguments, the inline held fence, a template under concurrent use, and the fieldless-token hint lilleman 2026-09-03 20:57:25 +02:00
  • 71cccaf4c9 Reject a leading quote that opens no JSON, and give the inline walk one home lilleman 2026-09-03 20:43:04 +02:00
  • 704d18d109 Tests: a leading quote that opens no JSON names neither a template nor a path lilleman 2026-09-03 20:42:34 +02:00
  • 44c91668f9 Give the inline pipeline its own file, and record the shape, padding and template-API decisions lilleman 2026-09-03 20:37:44 +02:00
  • 6916894ab5 One CLI classifier settling the argument shape before load; JSON strings are templates and a quote is reserved in names lilleman 2026-09-03 20:34:42 +02:00
  • 80e8d72bb7 One fence sequence over a node scope, and inline templates reject the folder sigils lilleman 2026-09-03 20:34:42 +02:00
  • 7c7bee5cd9 Tests: one fence sequence, inline folder sigils rejected, JSON string arguments, quoted names, and shape misuse before load lilleman 2026-09-03 20:31:49 +02:00
  • 841513bb27 Lead the README with what it does and a quick example, move Goals beside Decisions lilleman 2026-09-03 20:14:11 +02:00
  • 873b7678ba Address reviewer findings: reference hint, consumer-terms type errors, misuse exit code, immutability and parity docs lilleman 2026-09-03 19:21:42 +02:00
  • 4d58c93757 Tests: template misuse exits 2, and a bare token hints its reference spelling lilleman 2026-09-03 19:21:42 +02:00
  • 305d8f8edd Address stability nits: doc grammar, scalar-JSON note, bracket-rule rationale lilleman 2026-09-03 17:53:05 +02:00
  • d8ece597c8 Reserve brackets in names, add compile-once NewTemplate, let --repeat reuse it, record scope artifacts lilleman 2026-09-03 17:48:20 +02:00
  • 47ec883bb0 Tests: reusable NewTemplate, and bracket names rejected at load lilleman 2026-09-03 17:48:20 +02:00
  • 031a3ec7d6 Resolve architect findings: gate [ on json.Valid, fix the root-relative README claim, test isTemplate lilleman 2026-09-03 17:40:29 +02:00
  • e08435afa7 Document inline templates: goal 4, the CLI and library, the shape-based disambiguation lilleman 2026-09-03 17:30:09 +02:00
  • 3a9f3a4758 Route inline templates to FakeTemplate at the CLI lilleman 2026-09-03 17:29:07 +02:00
  • 4399b8b89f Tests for inline templates at the CLI lilleman 2026-09-03 17:28:14 +02:00
  • 3bc3e35045 Add FakeTemplate: compile an inline template and render it against the loaded tree lilleman 2026-09-03 17:27:54 +02:00
  • 5ba38a8281 Tests for FakeTemplate: inline format strings, JSON templates, references, and their errors lilleman 2026-09-03 17:27:51 +02:00
  • addba9abf7 Give maxLen its own literal and repeats MaxRepeat; arg errors name the spelling and the range; write's comment says what Flush reports; assert 64-bit at compile time lilleman 2026-09-02 19:25:19 +02:00
  • a9552ed966 Tests for every branch of the constant-divisor fold, arg errors naming the spelling, and shell numbers at the CLI lilleman 2026-09-02 19:24:46 +02:00
  • c5304bb6e7 Record the repeat cap's reach, 64-bit only, the constant-divisor rule and the rejected default spellings; correct the repeat cap comment lilleman 2026-09-02 19:09:50 +02:00
  • 08c7ef9b7f Keep the real data-path error, reject an empty data path, and report a crypto/rand failure instead of seeding zero lilleman 2026-09-02 19:09:29 +02:00
  • ae0527a26e Tests for the real data-path error, an empty data path, and a crypto/rand failure lilleman 2026-09-02 19:09:19 +02:00
  • 4f9285ab5c Reject non-finite float bounds, unplain integer args, constant samples, a constant zero divisor and the default separator; a binding key is no path segment; ascii keeps DEL; an unheld path panics lilleman 2026-09-02 19:08:32 +02:00
  • 7b28dc36d9 Tests for finite float bounds, plain integer args, constant samples and divisors, the default separator, binding keys in paths, DEL in ascii, and an unheld path lilleman 2026-09-02 19:07:49 +02:00
  • 3d3efbb642 Bound --repeat at MaxRepeat and stream the renders; name an unknown flag by its rune; --list rejects an inert --repeat or --separator lilleman 2026-09-02 19:06:20 +02:00
  • 5a75df8034 Tests for a bounded, streamed --repeat, rune-named flags, and --list with inert flags lilleman 2026-09-02 19:05:54 +02:00
  • fdbbf94d2c Compare and cache a read by its one spelling, so two spellings of one reference are one level; reject a slash after a sigil naming the spelling lilleman 2026-09-02 18:45:31 +02:00
  • 512696722d Tests for two spellings of one reference being one level, and a slash after a sigil lilleman 2026-09-02 18:45:21 +02:00
  • 1b8768e431 Record the compatibility policy, the override consequence and the deferred data de-duplication lilleman 2026-09-02 18:32:11 +02:00
  • f9647ff6bb Decompose compileTemplate, checkBoundLevelsHeld and loadDir; gate cyclomatic complexity at 14 lilleman 2026-09-02 18:31:38 +02:00
  • bcbf044290 One path walk under checkPath, descend, readField, pathLeaves and coverPath; split the hold and the render graph into their own files lilleman 2026-09-02 18:29:45 +02:00
  • 7581587a19 Tests for the path walk; test files named for the modules they exercise lilleman 2026-09-02 18:29:36 +02:00
  • 1bf5470c6f Reference sigils follow the filesystem: / the root, . this folder, .. the folder above lilleman 2026-09-02 18:26:02 +02:00
  • 5d1e567b8d Tests for reference sigils: / the root, . this folder, .. the folder above lilleman 2026-09-02 18:24:58 +02:00
  • 1b1b93b35f Reject weight 0, a never-numeric calc operand and a repeat product past the cap; the CLI classifies ErrNoData lilleman 2026-09-02 18:23:03 +02:00
  • 34c933b2b3 Tests for weight 0, a never-numeric calc operand, the repeat product along a path, and ErrNoData lilleman 2026-09-02 18:22:23 +02:00
  • c5c06375d8 Reject a repeated bare token of a held name, naming the single-token spelling lilleman 2026-09-02 18:21:03 +02:00
  • 5514b42b7b Tests for a repeated bare token of a held name lilleman 2026-09-02 18:19:58 +02:00
  • 88e71e666d Delete the grammar converters; their output is committed and re-running them corrupts it lilleman 2026-09-02 18:18:07 +02:00
  • 0ad88028c4 One path reads a flag's value: short flags attach and bundle, = after one is rejected naming the spelling lilleman 2026-09-02 14:09:48 +02:00
  • f6782cf477 Tests for attached and bundled short flags, and = after a short flag lilleman 2026-09-02 14:08:58 +02:00
  • 8cd603a2b1 Key the repeated-item check on the string itself; marshal only objects lilleman 2026-09-02 12:59:12 +02:00
  • 00a6160aa4 Restructure the README around the grammar, record the standing decisions, add the contributor rules lilleman 2026-09-02 12:56:11 +02:00
  • 035e51d3e1 Tests that the README examples load, render and print what they claim lilleman 2026-09-02 12:53:29 +02:00
  • 31c2f12098 Hold a reference path like a sibling path; add the lowercase, uppercase and ascii transforms lilleman 2026-09-02 12:52:19 +02:00
  • 8fa33694b9 Tests for references held like siblings and the lowercase, uppercase and ascii transforms lilleman 2026-09-02 12:42:21 +02:00
  • f0305f191f Re-pin the seeded outputs now that a one-item choice draws nothing lilleman 2026-09-02 12:39:04 +02:00
  • 054f99c94f One spelling per shape: reject a one-item choice, a repeated item and an inert object; reshape the data lilleman 2026-09-02 12:38:59 +02:00
  • de8c1d13e9 Tests for one spelling per shape: no one-item choice, repeated item or inert object lilleman 2026-09-02 12:37:21 +02:00
  • ff4b243148 Format text is literal; class runs are {digits(n)} {upper(n)} {lower(n)}; a string is a format lilleman 2026-09-02 12:37:21 +02:00
  • 99d8aa0fb7 Tests for literal format text, brace escapes and the class builtins lilleman 2026-09-02 12:26:05 +02:00
  • f210c7a764 Embed the shipped data, load any fs.FS, New takes options, Fake is safe for concurrent use lilleman 2026-09-01 23:07:15 +02:00
  • 91cbae2a44 Tests for the shipped data layer, New options and concurrent Fake lilleman 2026-09-01 23:03:53 +02:00
  • cf9de21495 GNU-style flags: --name, short aliases, any position, help on stdout lilleman 2026-09-01 23:02:19 +02:00
  • f773738243 Tests for GNU-style flags lilleman 2026-09-01 23:01:04 +02:00
  • 5576a9e05e Drop the stale kind count from the builtins registry comment lilleman 2026-09-01 21:45:45 +02:00
  • 5d33f4c0f0 Rename the builtin kind from generator to sample lilleman 2026-09-01 21:41:35 +02:00
  • 04b7b6a432 Rename the exported type to Generator and retire the faker wording lilleman 2026-09-01 21:34:27 +02:00
  • d44c941a92 Make the CI gate work on Gitea by building instead of bind-mounting lilleman 2026-09-01 20:33:04 +02:00
  • 05dc042e49 Rename the project to fejkdata and record the fork source lilleman 2026-09-01 20:24:03 +02:00
  • 64a0d29496 Say why an empty name is rejected, and finish what that removed M 2026-08-31 22:38:01 +02:00
  • 138bd21d83 Reject an empty field name M 2026-08-31 22:10:45 +02:00
  • e31e77b8a3 Tests for an empty field name M 2026-08-31 22:07:47 +02:00
  • 4b3dd011fc Pin the per-head walk, and say where the hold stops M 2026-08-31 21:44:24 +02:00
  • 21e7af6c1f Hold what a calc operand's render settled, up to a reference M 2026-08-31 21:20:15 +02:00
  • 8d03ce34bb Tests for a reference reaching into a calc operand M 2026-08-31 21:19:17 +02:00
  • cf3229cd4d Pin the route an operand fence names M 2026-08-31 17:35:50 +02:00
  • 39d59aec23 Pin the prep-time guards, and say why an operand's set is the narrow one M 2026-08-31 15:07:59 +02:00
  • f949550515 One spelling for an unvalidated builtin arg, and say what the hold buys M 2026-08-31 15:05:52 +02:00
  • 027d5c33fc Name a calc operand as one when the fence reports it M 2026-08-31 15:05:20 +02:00
  • 3f46e9c701 Tests for what a calc operand's hold actually pins M 2026-08-31 15:04:02 +02:00
  • 7e073462c8 Document the fence a calc operand gets, and trim two comments M 2026-08-31 14:03:07 +02:00
  • 0cee8b2183 Report a prep-time arg that its check should have caught M 2026-08-31 14:02:35 +02:00
  • 2e187117f8 Cover a calc operand by what it renders M 2026-08-31 14:02:00 +02:00
  • 779b89a804 Tests for what an operand's draw actually fixes M 2026-08-31 14:01:07 +02:00
  • 909596ec2d Trim comments that restate or argue M 2026-08-31 13:43:19 +02:00
  • 1b5e928d4f Fail loudly where calc says it cannot happen M 2026-08-31 13:42:41 +02:00
  • 1ba9185edc Pin the calc stream against a moving operand M 2026-08-31 13:42:16 +02:00
  • 2dbc9b1f9f Drop the unreachable reference-prefix checks M 2026-08-31 13:41:46 +02:00
  • 25a3077925 Say what a dot-prefixed data entry actually does M 2026-08-31 13:41:09 +02:00
  • 258bce3b98 Let a clearer token error win over the repeated-arm check M 2026-08-31 13:40:38 +02:00
  • dea1fcf311 Tests for an arm check that yields to a clearer error M 2026-08-31 13:40:07 +02:00
  • 465eb05704 Fence a calc operand against every route that renders it M 2026-08-31 13:39:46 +02:00
  • d664b1b25c Tests for a reference spelling of a calc operand M 2026-08-31 13:39:13 +02:00
  • ac0309cf94 Say what a name may contain, and what a calc operand reads M 2026-08-30 23:17:46 +02:00
  • 9ed0d3bf55 Hold a calc operand's draw for the expansion M 2026-08-30 23:09:58 +02:00
  • 4f87a4dd9e Tests for a calc operand reading the expansion's draw M 2026-08-30 23:08:01 +02:00
  • b09bc56e87 Reject a repeated alternation arm M 2026-08-30 23:05:00 +02:00
  • cc76d300e7 Tests for a repeated alternation arm M 2026-08-30 23:04:31 +02:00
  • b7c854f2d4 Reject a name the token grammar reserves M 2026-08-30 23:04:00 +02:00
  • cc8f8db83f Tests for a name no token can spell M 2026-08-30 23:03:12 +02:00
  • 403d68de27 Write every builtin one way M 2026-08-30 22:53:38 +02:00
  • 24084fc0cf List every node's children one way M 2026-08-30 22:51:21 +02:00
  • 5a69b02ee0 Find a format's bound readers in one ordered scan M 2026-08-30 22:27:56 +02:00
  • c1222eaf72 Label the error fences, and settle a tie by where the format writes it M 2026-08-30 22:18:50 +02:00
  • 4a1073f018 Test that a path reaches every variant it might draw M 2026-08-30 22:09:54 +02:00
  • 32b9aa5c81 Aim a path token's render edge at what it renders M 2026-08-30 21:44:35 +02:00
  • 1987deb14c Tests for a path token rendering its leaf, not the level it starts from M 2026-08-30 21:42:30 +02:00