0.003 2026-04-26 09:39:13+02:00 Europe/Vienna [Features] - Add named jobs: add() now accepts an optional leading string name, and result($name) retrieves a job's result by name. Named and unnamed jobs can be mixed freely; results() still returns all results in insertion order. - Add per-job timeout support via SIGALRM (timeout => N constructor option). Each child process is killed after N seconds. In optimized mode, the timeout covers the grouped jobs within each fork. [Bug Fixes] - Safe error handling in run_on_finish: a failing job no longer dies inside the parent's wait loop and aborts sibling collection. - Preserve return values in wait_for_all_optimized() so grouped jobs retain their individual results. - Invoke callbacks as each job completes rather than after all jobs finish — callbacks now fire in completion order. - Fix memory leak: break circular reference between $self and Parallel::ForkManager's run_on_finish closure using Scalar::Util::weaken. - Fix callback indexing bug in wait_for_all() that could skip or misalign callbacks with their corresponding job results. - Fix unnecessary empty forks in wait_for_all_optimized() when the number of jobs is fewer than available CPUs. - Validate constructor options (max_process, max_process_per_cpu, max_memory, timeout) are positive numbers — previously zero or negative values passed silently to Parallel::ForkManager with undefined behavior. - Validate callback argument in add() is a CODE reference — previously non-CODE callbacks were silently ignored at execution time. - Warn when max_memory is used on non-Linux platforms (requires Sys::Statistics::Linux::MemStats) instead of silently falling back. [Documentation] - Improve POD structure: add DESCRIPTION and METHODS sections, fix formatting issues, add missing semicolon in SYNOPSIS example. - Document named-jobs API and timeout option in POD/README. - Add CLAUDE.md with project guidelines for AI-assisted development (excluded from CPAN release via dist.ini PruneFiles, along with the .claude/ directory). - Add AI policy document. [Testing] - Modernize test suite from Test::More to Test2::V0. - Add comprehensive tests for callbacks, edge cases, memory leaks, named jobs, error handling, and timeout behavior. [CI/Infrastructure] - Switch from Travis CI to GitHub Actions. - Use dynamic Perl version matrix (5.14+) via perl-actions/perl-versions. - Run in perldocker/perl-tester containers for reproducible builds. - Use install-with-cpm with a dedicated CI cpanfile. - Restrict Dist::Zilla build to Perl >= 5.20; older Perls run prove directly. - Clean up stale test dependencies from CI cpanfile. 0.002 2018-03-20 14:16:28-06:00 America/Denver 0.001 2018-02-16 15:34:46-07:00 America/Denver * initial version