Skip to content

Add reproducible local development matrix - #74

Merged
solcik merged 1 commit into
Kdyby:masterfrom
davidsolc-ai:chore/local-docker-matrix
Jul 29, 2026
Merged

Add reproducible local development matrix#74
solcik merged 1 commit into
Kdyby:masterfrom
davidsolc-ai:chore/local-docker-matrix

Conversation

@davidsolc-ai

@davidsolc-ai davidsolc-ai commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add a pinned Nix development shell with PHP 8.5, Composer, Just, Docker CLI, ShellCheck, Actionlint, and Alejandra
  • use Just as the single project command interface for dependency installation, local CI, focused cells, and the full matrix
  • keep local vendor/ user-owned for editor and language-server indexing
  • mirror hosted CI in Docker with PHP 8.2, 8.3, and 8.4 on lowest/highest dependencies plus PHP 8.5 on highest dependencies
  • reject PHP 8.5/lowest before Docker work because component-model 3.1 emits PHP 8.5 deprecations
  • bake source into ephemeral images so container-owned dependency files never affect host permissions
  • execute immutable image IDs for concurrent-worktree safety and preserve signal/failure semantics

Development

  • direnv allow enters the pinned shell
  • just install creates local highest-dependency vendor/
  • just ci runs the local suite on PHP 8.5
  • just matrix runs all seven isolated compatibility cells
  • just cell 8.5 highest runs one cell

Verification

  • Nix flake checks on x86_64-linux, aarch64-linux, and aarch64-darwin
  • PHP 8.5.8, Composer 2.10.2, Docker 29.6.2 available through direnv
  • just install, just ci, and all seven Docker cells pass
  • 12 tests pass in every matrix cell
  • highest cells pass lint, PHPStan, ECS, Rector, and Tester
  • Just formatting, Alejandra, ShellCheck, Actionlint, and Git whitespace checks pass
  • HUP, INT, TERM, build-failure, and temporary-file cleanup paths verified

Provide a pinned Nix development shell with PHP 8.5, Composer, Just, Docker tooling, and linters. Use Just as the project command interface while source-baked Docker images verify seven supported PHP and dependency combinations without changing host file ownership.
@davidsolc-ai
davidsolc-ai force-pushed the chore/local-docker-matrix branch from 98d2643 to 74eba01 Compare July 29, 2026 20:54
@davidsolc-ai davidsolc-ai changed the title Add local Docker compatibility matrix Add reproducible local development matrix Jul 29, 2026
@solcik
solcik merged commit b12d75b into Kdyby:master Jul 29, 2026
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants