Skip to content

compat: emit stock PHP ini defaults to match shivammathur/setup-php@v2 #79

Description

@phramz

Context

PR #77 lands a PR-time compat-diff gate against a pinned v2 baseline. The canonical cell (noble/x86_64/8.4) currently goes red because our phpup install returns empty for ~12 ini keys per fixture that v2 emits via stock upstream defaults. See the sticky compat-report comment on #77 for the exact per-fixture list.

These are pre-existing gaps in internal/compose, not regressions in #77. PR #77 deliberately did NOT add blanket allowlist kind: ignore entries to mask them.

Gaps surfaced by the gate

Stock PHP defaults (v2 ships these via Ondrej's php.ini-production):

  • expose_php = 1
  • log_errors = 1
  • max_input_time = -1
  • session.save_handler = files
  • session.gc_maxlifetime = 1440

OPcache defaults (v2's configs/ini/jit.ini fragment — see compat-matrix.md §2.3):

  • opcache.enable = 1
  • opcache.enable_cli = 0
  • opcache.memory_consumption = 128
  • opcache.revalidate_freq = 2
  • opcache.validate_timestamps = 1
  • opcache.jit = 1235
  • opcache.jit_buffer_size = 256M (x86_64) / 128M (aarch64, per compat-matrix §2.4)

Xdebug defaults under coverage: xdebug (v2's configs/ini/xdebug.ini, §2.2):

  • xdebug.mode = coverage
  • xdebug.start_with_request = default

Scope suggestion

Likely a compose-layer change in internal/compose to ship the stock php.ini-production as the base SAPI ini, plus an opcache-loaded gate that overlays the jit.ini fragment and an xdebug-loaded gate that overlays xdebug.ini.

Acceptance

  • Canonical cell noble/x86_64/8.4 in ci.yml::pipeline goes green without any allowlist suppression
  • compat-golden-refresh.yml weekly run continues to show zero drift
  • Documented in docs/compat-matrix.md if any subset is intentionally NOT replicated (with reason:)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions