Revision history for App-Actions - run GitHub Actions workflows locally

0.002.1	Sun Oct 25 07:56:17 PM EDT 2026
	- t/regex.t checks that tokenizing four times the expression takes less
	  than eight times as long, rather than holding it to two seconds,
	  which a slower or busy machine went past.
	- t/unit.t no longer depends on which of two parallel jobs finishes
	  first when checking a result that cannot be written.
	- t/function.t's test that _system on Windows runs a program given by
	  its path no longer empties PATH for it, which kept Perl from starting
	  on GitHub's Windows runners.
	- action-run cache no longer reports an image as missing when Docker
	  has it but gives no size for it, and --prune removes such an image
	  instead of forgetting it (which left it on the daemon and out of the
	  record).
	- if: false and fail-fast: false work on Perl 5.36 again: each matrix
	  instance's copy of its job was made with Storable, whose version in
	  5.36 (3.26) turns a core boolean into an empty string, which ran the
	  job.
	- A run that uses a kept image without pulling it again updates the
	  image's last use in the record (App::Actions::Cache->touch), so
	  "action-run cache --prune --older-than" no longer removes an image
	  that runs still use.  An image the record does not hold is still never
	  added.  Jobs run in parallel report the images they used too.
	- Added t/integration.t: end-to-end tests across the modules, with
	  unwritable and unsearchable directories, an unreachable daemon, slow
	  and failing pulls, and malformed answers and files.  It needs
	  Test::Permissions and Test::Without::Module.
	- YAML::PP 0.38 is required: older versions do not load true and false
	  as Perl's own booleans, which if: false and fail-fast: false rely on
	  from Perl 5.36.
	- A pull that fails while a job runs is reported in the chosen language
	  (App::Actions::Error runner.image.pull_failed), as the preflight's
	  already was.
	- The core modules the tool and its tests use are all declared as
	  prerequisites.
	- The tests pass from a checkout with CRLF line endings (t/changes.t,
	  t/self_test.t), t/function.t no longer fails now and then when a
	  second passes during the mount check, and its fork() tests no longer
	  end the test on Windows, where Process and parallel jobs do not fork.
	- t/self_test.t runs the fake daemon's steps with the Perl under test:
	  where the first perl on PATH was another one, without the tool's
	  dependencies, the second workflow fell back to cpanm and failed
	  (a CPAN Testers report on Perl 5.44.0).
	  Fixes https://matrix.perl-magpie.org/results/fbe62b68-cfbc-11f1-b73e-b510376a2ca8

0.002.0	Fri Oct 23 02:52:55 PM EDT 2026
	- Security: an environment value is interpolated only once, so ${{ }}
	  text from a context value (a commit message, say) is no longer
	  evaluated again; a variable that refers to itself is an error
	  (runner.env_cycle).  A docker:// image is likewise interpolated once.
	- Security: keep_logs refuses a log name or run id that is not a plain
	  file name (runner.logs.bad_name).
	- if: false, pre-if, post-if and fail-fast: false are honoured on Perl
	  5.36 and later.
	- Warnings and errors go through a Log::Abstraction logger;
	  App::Actions->new takes a logger argument.  Progress and the summary
	  stay on standard output.  Log::Abstraction 0.41 is required.
	- Documented the configuration Object::Configure adds (App__Actions
	  config sections and environment variables).
	- The cache and logs listings and a child process's error lines are
	  translated.
	- Windows: a missing program is status 255 and is no longer retried
	  through cmd.exe.
	- Bug fixes in Expression (re-entrant, booleans, negative numbers,
	  quoted }}, format()), Workflow (matrix instances share no job data),
	  Runner (continue-on-error under fail-fast), Steps, Containers,
	  Images, Parallel, Process, Cache, Check, Schema, Action and the
	  preflight's deferred images.  Run errors no longer show a Perl
	  source location, the caller's $@ is preserved, and invalid
	  arguments are an App::Actions::Error (actions.invalid_arguments).
	- Removed three unreachable messages.
	- New tests: t/function.t (white-box), t/unit.t (black-box, against
	  the POD) and t/changes.t; the fixture, pre-commit, regex and
	  space-path tests were improved.  New test dependencies:
	  Test::Mockingbird, Test::Returns and Test::Memory::Cycle.
	- META: https repository URL; non-standard keys removed.
	- POD fixes.

0.001.0	Thu Oct 22 12:40:02 PM EDT 2026
	- First release