Skip to content

Explicit importer, tests, bench y docs#6

Draft
rafageist wants to merge 25 commits intomainfrom
develop
Draft

Explicit importer, tests, bench y docs#6
rafageist wants to merge 25 commits intomainfrom
develop

Conversation

@rafageist
Copy link
Member

@rafageist rafageist commented Feb 12, 2026

Summary

This draft PR introduces the first stable baseline for divengine/runner in PHP and will remain open while more changes are added.

Included changes

  • Project scaffolding for Composer, PHPUnit, PHPStan, and GitHub Actions.
  • Initial runner implementation in src/runner.php using a shared context array by reference.
  • Explicit path-based importer for PHP files that return a callable (require), with optional .php extension.
  • Pause/jump handling through unique tokens embedded in RuntimeException messages.
  • No global lock in runner execution so jobs can run in parallel.
  • Naming normalization aligned with ecosystem conventions (lowercase namespace/class).
  • Expanded test coverage in tests/RunnerTest.php.
  • Baseline performance benchmarks with phpbench.
  • File-level and API-level docblocks in src/runner.php.

Related issues

Local validation

  • vendor/bin/phpunit -> OK
  • composer bench -> OK
  • php -l src/runner.php -> OK

Status

  • Draft PR by design. More changes will be pushed before requesting review/merge.

@rafageist rafageist requested a review from Copilot February 12, 2026 11:00
@rafageist rafageist self-assigned this Feb 12, 2026
@rafageist rafageist added the good first issue Good for newcomers label Feb 12, 2026
@rafageist rafageist moved this to In Progress in Divengine PHP SDK Feb 12, 2026
@rafageist rafageist changed the title Draft: base de runner PHP con importer explícito, tests, bench y docs Explicit importer, tests, bench y docs Feb 12, 2026
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This draft PR scaffolds the initial PHP implementation of divengine/runner, including a baseline runner core with explicit path-based importing, plus CI/static analysis, tests, benchmarks, and documentation.

Changes:

  • Introduces src/runner.php with the runner core, importer, pause/jump token mechanics, logging, and context helpers.
  • Adds PHPUnit + PHPStan configuration and GitHub Actions workflows to run them on PRs.
  • Adds initial unit tests, phpbench benchmarks, and basic docs/release notes.

Reviewed changes

Copilot reviewed 18 out of 19 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
src/runner.php New runner core implementation (run/importer/helpers/logging/flowLoop).
tests/bootstrap.php Test bootstrap loading Composer autoload or direct runner include.
tests/RunnerTest.php PHPUnit coverage for run/importer/pause-jump/helpers/serialization.
bench/runnerBench.php Baseline phpbench subjects for callable flow, importer flow, and flowLoop.
composer.json Composer package metadata + dev tooling deps + scripts (test/bench/phpstan).
phpunit.xml PHPUnit configuration and source include.
phpstan.neon PHPStan configuration (incl. baseline).
phpstan-baseline.neon Empty PHPStan baseline placeholder.
phpbench.json phpbench runner config pointing at bench and test bootstrap.
.github/workflows/tests.yml CI job running PHPUnit on PRs.
.github/workflows/phpstan.yml CI job running PHPStan on PRs.
.github/workflows/release.yml Release automation driven by composer.json version + release notes file.
README.md Package README with install/usage/docs/bench info.
docs/README.md Expanded documentation on context keys and injected helpers.
releases/README.md Release notes process documentation.
releases/v0.1.0.md Initial release notes for v0.1.0.
scripts/README.md Placeholder for automation scripts.
.gitignore Ignores vendor/build/cache/editor files.
.gitattributes Marks internal/dev folders as export-ignore.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

good first issue Good for newcomers

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

2 participants