Skip to content

v0.0.1

Choose a tag to compare

@github-actions github-actions released this 21 May 03:26
· 63 commits to main since this release
5c0976f

Changelog

Features

  • 1bd07a9 feat(cli): wire --config and --verbose flags
  • 7215828 feat(cli): wire pipeline, add --exclude and orphan-FK preflight
  • 57c76bf feat(compose): add MySQL dogfood schema
  • 564e09f feat(config): introduce seeder.yaml parser package
  • 666944b feat(config): support per-column yaml overrides
  • ccb407c feat(dsn): recognize mysql scheme and convert to driver format
  • 8f68d26 feat(generator): add gofakeit-based Kind dispatch with type fallback
  • 1d82999 feat(infer): add Explain for verbose inference reporting
  • e5cb01f feat(infer): add UNIQUE-aware wrap and Image-placeholder rule
  • eba9121 feat(infer): pick generator by column name with Kind fallback
  • cb16d0d feat(infer,cli): add --locale ja for Japanese-aware fake data
  • 010a971 feat(insert): accept per-table rows, verbose output, value Table
  • 368de88 feat(insert): add MySQL driver
  • 8f67e81 feat(insert): add bulk insert via pgx CopyFrom behind Driver interface
  • a8900cb feat(insert): batch insertion + LRU pool with --batch-size flag
  • da170f3 feat(insert): rework planColumns for raw default and forward-referenced self-FK
  • 7fa14e9 feat(insert,config,cli): polymorphic FK, alternate outputs, and CDC stream
  • 99584f9 feat(insert,introspect): pick composite FK targets as a single tuple
  • 0378c2a feat(introspect): add Kind.String and convert Schema to value types
  • bd62a22 feat(introspect): add MySQL driver
  • a7f9d65 feat(introspect): add Postgres schema introspection with Kind via Driver
  • 909086a feat(introspect): cache introspected schema with --cache flag
  • 7f508d8 feat(introspect): expose raw column_default and single-column UNIQUE
  • ad4f31f feat(plan): add BuildWithDeps for non-FK ordering hints
  • 95aea26 feat(plan): topologically sort tables by FK dependency

Bug fixes

  • c56cd1a fix(cli): detect unknown table names in seeder.yaml
  • a3748e0 fix(cli): handle --version/--help when arguments are reordered
  • 0c5c2a1 fix(cli): reject negative --seed with a usage error
  • d34a831 fix(cli): treat unknown columns as NOT NULL in orphan FK preflight
  • 7baf077 fix(cli,insert): make --seed 0 deterministic via optional pointer
  • 89cf744 fix(config): reject duplicate polymorphic type_col / id_col within a table
  • 54ad187 fix(config): reject non-scalar yaml values in column overrides
  • fc34b3c fix(dsn): decode URI userinfo and escape @ in MySQL driver DSN
  • d49bce1 fix(dsn): drop @-escape in password; driver splits on last @
  • 68a62d3 fix(dsn): list both postgres and postgresql in scheme error messages
  • 029c805 fix(dsn): validate ToMySQLDSN input (scheme/host/database)
  • b718688 fix(generator): emit []byte for KindBytes so bytea COPY succeeds
  • 07b6a57 fix(infer): gate name rules by Kind so type mismatch falls back
  • 35ee49f fix(infer): keep image URLs valid and bound int range under UNIQUE
  • 2e3b8bf fix(infer): route prefecture columns to State rule, not Country
  • a52ab65 fix(infer): start UNIQUE-aware int counter at 1 for tinyint/smallint
  • 03389af fix(insert): detect FKs before int-default skip and ignore empty overrides
  • 62f394d fix(insert): emit OVERRIDING SYSTEM VALUE for Postgres IDENTITY inserts in --output sql
  • 02a2f11 fix(insert): error out when a table has no writable columns
  • 1d05229 fix(insert): filter inBatch rows by FK referenced columns in pickSelfFKRow
  • fe0f3df fix(insert): let column overrides win over the int-with-default skip
  • 175dbbd fix(insert): list postgresql:// in the --output=sql DSN scheme error
  • 88bd5d7 fix(insert): mirror override precedence in explainColumn verbose output
  • b60b077 fix(insert): populate FK pool for UNIQUE non-PK referenced columns
  • a8cf373 fix(insert,cli): address Copilot review on polymorphic validation, output mode, time format, and rate doc
  • d5372b5 fix(insert,cli): keep stream pool across ticks and reject --output with --dry-run
  • 393c591 fix(insert,cli): split --output stdout from progress, bound output buffers, harden MySQL escapes and PK uniqueness
  • 3d5e5ec fix(introspect): describe enum escape in prose to dodge gofmt rewrite
  • 2f64656 fix(introspect): key MySQL UNIQUE constraints by (table, name)
  • 487a757 fix(introspect): make Column.Default a *string to keep NULL distinct from empty
  • b2ad26f fix(introspect): pair composite FK columns via pg_constraint ordinality
  • b0e1409 fix(introspect): rewrite enum escape comment to bypass gofmt typographic rewrite
  • 1026367 fix(introspect): use os.CreateTemp for cache write to avoid stale tmp collisions
  • 6143ad2 fix(introspect,insert): list postgresql in supported schemes error
  • bfeabe6 fix(matchers): use reflect.DeepEqual for safe Equal compares
  • aa5dd7a fix(mysql): harden Truncate FK restore and broaden kind detection
  • 8ecfe9c fix(test): filter base tables and quote identifiers in MySQL reset helper
  • b093e6d fix(tsql): add doc.go so the package is visible to non-integration builds
  • d6042cc fix(tsql): pin a single connection so FOREIGN_KEY_CHECKS=0 covers reset DROPs
  • 5cd776f fix: align seeder.example.yaml with dogfood schema

Performance

  • 0ebb3e7 perf(infer): hoist phoneJA prefixes to package-level var
  • fa2e738 perf(insert): cap in-batch self-FK buffer at 100k entries
  • 49500ac perf(insert): only append self-FK-referenced columns to inBatch

Refactor

  • afc377f Revert "refactor(test): pass Seed via &seed instead of new(uint64(42))"
  • 13099ce refactor(cli): use slices.Sort for codebase consistency
  • 0f0333c refactor(insert): clarify self-FK error wording and rename lookupOwnPK to lookupOwnRef
  • a8b0a66 refactor(insert): document Pool zero-value and tail-trim semantics
  • 28d1d6a refactor(insert): hold FK pool as row tuples
  • 93750be refactor(introspect): inline enum labels into Column (drop Schema.Enums)
  • ed7cdf5 refactor(test): pass Seed via &seed instead of new(uint64(42))
  • 38f67f5 refactor(test): rename testutil package to tsql
  • 499f329 refactor(test): share MySQL reset helper via internal/testutil

Documentation

  • 3600d16 docs(cli): align --seed flag wording with the implementation
  • 9d5c2ac docs(copilot): document that Go regexp supports lazy quantifiers
  • 41f98a4 docs(copilot): document that new(value) is valid Go 1.26 syntax
  • 725deed docs(example): correct preflight discovery hint for generators
  • fbcdebd docs(introspect): align UNIQUE query comments with helper behavior
  • aac7e2b docs(introspect): note that postgres constraint names are schema-unique
  • f1104e7 docs(readme): add Homebrew tap and Windows zip install instructions
  • 318a38e docs(readme): correct preflight discovery hint for generators
  • 2fbc096 docs(readme): describe overridden defaults, UNIQUE-aware, image, and self-FK
  • a9fba46 docs(readme): detect Windows arch in install snippet and clarify PATH step
  • ebe0b37 docs(readme): document --batch-size, --cache, and bounded memory
  • 8c84318 docs(readme): document MySQL support
  • 46ce751 docs(readme): document polymorphic FK, --output, and --stream
  • e74ec8c docs(readme): document seeder.yaml configuration
  • 096ad43 docs(readme): drop per-table row counts from v0.2.0 planned list
  • b970717 docs(readme): link bench/ and refresh json column guidance
  • 9aa1815 docs(readme): note jsonb size caveat for v0.1
  • ef31473 docs(readme): note that image rule also matches _url-suffixed names
  • d8ed501 docs(readme): note that self-FK in-batch buffer is also bounded
  • cda29a2 docs(readme): note that yaml generator overrides bypass --locale
  • d7b1c3d docs(readme): warn about memory usage at very large --rows
  • 45a8182 docs(readme,cli): clarify FK column override behavior

Others

  • 1eeeabc Merge remote-tracking branch 'origin/main' into feat/advanced-fk
  • 209a5ab Merge remote-tracking branch 'origin/main' into feat/locale-column-override
  • bb25728 bench: add Postgres insert benchmarks and the bench/README write-up
  • a339800 bench: gate destructive schema reset behind dedicated SEEDER_BENCH_DSN
  • 68f1171 build(goreleaser): add Windows targets and group release notes by commit type
  • 0f07054 build(goreleaser): publish brew formula into Formula/ subdir
  • 4ae9bfc build(goreleaser): replace existing artifacts on retry
  • 4a4eaa4 chore(compose): auto-load dogfood schema on postgres startup
  • b0f4ddf chore: add README and compose.yaml for v0.1 MVP
  • 5713e21 chore: initial commit
  • 0ab0162 chore: resolve golangci-lint warnings in v0.2 advanced FK additions
  • e6dd048 chore: use v0.x.0 semver for version references
  • 86a27f5 ci: add MySQL service container to integration job
  • 1da1a1a test(cli): cover Truncate precedence in buildInsertOptions
  • a2de296 test(cli): isolate TestRun_UnknownLocale from ambient seeder.yaml
  • 2ba4d5d test(infer): drop redundant t.Parallel call in loop
  • 9619288 test(infer): give each parallel subtest its own faker
  • cf4f7e0 test(infer,cli): cover LocaleEN invariant and locale wire-through
  • e8008c2 test(insert): cover column override precedence in planColumns
  • 50157af test(insert): cover per-table rows override in insertTable
  • a075d6a test(integration): add MySQL tests and split SEEDER_TEST_DSN per driver
  • 8642e2e test(integration): cover defaults, UNIQUE, and self-FK behaviors
  • 9c1ac8f test(introspect): cover mySQLKind and parseMySQLEnumLabels
  • 4513ab5 test(mysql): drop redundant DROP TABLE IF EXISTS in schema SQL