App-Test-Generator

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

	  a body/source key, not a Model::Method instance. POD corrected to
	  describe the real calling convention.
	- Fix README.md's extract-schemas usage example passing two
	  positional arguments and referencing a nonexistent
	  lib/Sample/Module.pm with a .yaml extension; corrected to the real
	  invocation (extract-schemas lib/App/Test/Generator/Sample/Module.pm
	  && fuzz-harness-generator -r schemas/greet.yml) and updated its
	  GitHub Actions example to the same pinned action SHAs already used
	  in dashboard.yml/mutate.yml.

	[Enhancements]
	- Add comprehensive black-box subtests to t/unit.t validating the
	  public, POD-documented API of every .pm file under lib/ (all 27
	  modules), written strictly against each module's documented
	  Arguments/Returns contract rather than incidental implementation
	  behaviour. Where a module's existing dedicated test file
	  (e.g. t/Planner-Isolation.t, t/TestStrategy.t,
	  t/Template_unit.t) already exercised its public API exhaustively
	  in equivalent black-box style, no duplicate coverage was added to
	  t/unit.t.
	- Add missing public-API POD (Purpose, Arguments, Returns, API
	  specification) to every previously undocumented public method in
	  Model::Method.pm, which had none beyond a VERSION section; to
	  Template.pm's get_data_section(); and to Planner.pm's build_plan(),
	  which previously carried only an internal TODO-style comment
	  despite being a public method.
	- Add Notes sections to Mutation::BooleanNegation, ::ConditionalInversion,
	  ::NumericBoundary, and ::ReturnUndef documenting the context and
	  line_content fields each mutant carries for Mutator's fast-mode
	  dedup, and to CoverageGuidedFuzzer.pm documenting that a
	  target_sub die is only recorded as a bug when the triggering input
	  is schema-valid.

0.38	Mon May 18 21:19:40 EDT 2026

	[Bug fixes]
	- Fix missing TER1/TER2/TER3 column in mutation dashboard
	- remove duplicate _lcsaj_coverage_for_file calls
	- move skipped-annotation note inside summary div
	- Fix MUTANT_SKIP_BEGIN/END regex to match only lines where the annotation is the entire content,
	  preventing false positives in comments and POD

0.37	Mon May 18 14:58:48 EDT 2026

	[Enhancements]
	- Add MUTANT_SKIP_BEGIN / MUTANT_SKIP_END source annotations to exclude
	  lines from mutation testing; mismatched markers are fatal. Skipped
	  line counts appear in the per-file mutation report and summary table.

	[Bug fixes]
	- Fix fuzz schema generation looking in xt/conf instead of t/conf.
	- Fix mutate.yml for external repos: add commit step so mutation.json
	  is persisted after each run, enabling the dashboard workflow_run
	  trigger to pick up fresh results.
	- Fix BSD::Resource dependency failing on Windows; guard with OS check.

0.36	Sat May  9 18:54:04 EDT 2026

	[Bug fixes]
	- Fix uninitialized $version warning in CPAN Testers "no failures"
	  message when the CPAN API returns a 404 (no release data available).
	- Fix "Can't open lib/App/Test/Generator.pm" error when test-generator-index
	  is run from a repository other than ATG itself; ATG version is now
	  found by searching @INC with fallback to the configured module_file path.

0.35	Sat May  9 09:40:08 EDT 2026

	[Enhancements]
	- Dashboard footer now shows the App::Test::Generator version used
	  to generate it, linking to the MetaCPAN distribution page.
	- Executive Summary wording now varies by mutation score: positive
	  framing for high scores, an actionable hint for low scores, and a
	  clear message when no mutation data is available yet.  Thresholds
	  use med_threshold and low_threshold from %config rather than
	  magic numbers.
	- Coverage dashboard per-file HTML links now work correctly; Devel::Cover
	  instrumentation restored to use cover -test for accurate per-file
	  HTML generation.
	- Dashboard file links now correctly target blib-lib-* filenames as
	  generated by Devel::Cover, fixing persistent 404 errors on all
	  per-file coverage pages.
	- generate-test-dashboard now derives the Devel::Cover -select pattern
	  dynamically from GITHUB_REPOSITORY, making the script portable across
	  CPAN distributions without hardcoded module paths.
	- Fuzz schema generation now correctly looks in t/conf rather than
	  xt/conf for existing schemas to augment.
	- Redundant exclusion of mutant_*.t from prove invocation removed;
	  mutant stubs are in xt/ and were never matched by the t/ find anyway.

	[Bug fixes]
	- Fix https://www.cpantesters.org/cpan/report/04c7279a-476f-11f1-bf55-cb595875c975
	  Make t/type_params.t an extended test

0.34	Sun May  3 10:30:24 EDT 2026

    [Bug fixes]
    - Emitter::Perl: _emit_void_test() generated ok(!defined $result || 1, ...)
      which is a tautology and always passes regardless of return value.
      Fixed to ok(!defined $result, '$method returns nothing (void)').
    - Generator: schema files named after Perl builtins (e.g. abs.yml) caused
      generated tests to emit "use abs" which fails to compile.  Added
      _is_perl_builtin() guard to prevent builtin names being used as module
      names in use_ok() calls.
    - bin/test-generator-index: mutant stub generator incorrectly called
      new_ok() for class methods such as App::Test::Generator::generate().
      Added _is_class_method() helper to detect $class vs $self and emit
      the correct calling convention in generated stubs.
    - bin/test-generator-index: CPAN Testers failure table showed all
      expected NA rows for Perl < 5.036 as noise.  Rows below the detected
      Perl version cliff are now omitted with a count notice, leaving only
      unexpected failures visible.
    - CoverageGuidedFuzzer: _load_json_module() used require $mod where $mod
      contained '::' which Perl does not convert to path separators for
      variable require.  Fixed with s{::}{/}g conversion before require.

    [Enhancements]
    - Comprehensive test suite added across all modules:
      - Function tests (white-box) for all private helpers
      - Black-box unit tests for every public method against POD API spec
      - Integration tests covering 10 end-to-end pipelines
      - Edge case / destructive / boundary-condition tests
      - Extended tests targeting surviving mutants and coverage gaps
    - mutate.yml and dashboard.yml are now portable to any CPAN module.
      Copying both files to another module's .github/workflows/ directory
      will produce a working mutation test run and coverage dashboard
      without modification.  ATG-specific behaviour is gated on
      github.repository = nigelhorne/App-Test-Generator.
    - dashboard.yml: added missing local/bin PATH setup so installed
      ATG scripts are found correctly on non-ATG modules.
    - mutate.yml: Sample/Module.pm excluded from mutation scoring to
      remove 30 artificial survivors from the overall score.
    - Emitter::Perl mutation score improved from 37.5% to 100% through
      targeted direct assertions on all _emit_*() helper return values.
    - t/test-generator-index.t: 33 new tests for detect_perl_version_cliff(),
      parse_version(), extract_perl_versions(), make_key(),
      confidence_score(), and perldelta_url().

0.33	Tue Apr 21 16:09:24 EDT 2026

    - Fixed NumericBoundary mutator incorrectly identifying the '<' in



( run in 1.737 second using v1.01-cache-2.11-cpan-bbb979687b5 )