Skip to content

Add PHP 8.4.25 and 8.5.10 with configuration files, extension support, and dependency management - #81

Merged
jwaisner merged 4 commits into
mainfrom
august
Sep 1, 2026
Merged

jwaisner merged 4 commits into
mainfrom
august

Conversation

@N6REJ

@N6REJ N6REJ commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

@N6REJ
N6REJ requested a review from jwaisner August 27, 2026 09:36
@N6REJ N6REJ added the enhancement ✨ Improve program label Aug 27, 2026
@github-actions

github-actions Bot commented Aug 27, 2026 •

Copy link
Copy Markdown
Contributor

🐘 PHP Module Tests - Results

Test Date: 2026-08-27 09:55:58 UTC
Status: ✅ All tests passed

📊 Test Results by Version

PHP 8.4.25

win10-amd
win10-intel
win11-amd
win11-intel

PHP 8.5.10

win10-amd
win10-intel
win11-amd
win11-intel

Results: 8 of 8 tests completed

All tests passed successfully! ✨


📋 Test Phases

Each version is tested through the following phases:

  • Phase 1: Basic PHP Validation (Download, Extract, Verify Executable)
  • Phase 2: Extension Validation (Download, Architecture Check, Loading Test)
  • Phase 3: Dependency Validation (Download Dependencies, Test with Dependencies)
  • Phase 4: Functional Testing (Test Extension Functionality)

Check artifacts for detailed logs.

@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Add PHP 8.4.25 and 8.5.10 bundle definitions

✨ Enhancement ⚙️ Configuration changes 🕐 20-40 Minutes

Grey Divider

AI Description

• Adds distributable PHP 8.4.25 and 8.5.10 bundle definitions.
• Configures compatible PECL extensions, ImageMagick, PEAR, and runtime defaults.
• Expands GitHub token discovery and advances the bundle release date.
Diagram

graph TD
  Build(["Gradle build"]) --> Release["Bundle release"] --> PHP84["PHP 8.4.25"]
  Release --> PHP85["PHP 8.5.10"]
  PHP84 --> Runtime["Runtime settings"] --> Extensions["PECL extensions"]
  PHP85 --> Runtime
  PHP84 --> Dependencies["ImageMagick dependency"]
  PHP85 --> Dependencies
  PHP84 --> Pear["PEAR package"]
  PHP85 --> Pear
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Generate version bundles from templates
  • ➕ Reduces duplicated INI and manifest content
  • ➕ Centralizes shared Bearsampp defaults
  • ➕ Makes version-path substitutions deterministic
  • ➖ Adds generation logic to the build
  • ➖ Requires explicit overrides for PHP-version differences
  • ➖ Generated files may be harder to review directly

Recommendation: Keep the explicit version directories for this release because they match the repository's packaging model and preserve version-specific control. Consider template generation only if repeated configuration drift becomes a maintenance problem.

Files changed (14) +3888 / -2

Documentation (2) +4 / -0
README.txtDocument dependency injection behavior +2/-0

Document dependency injection behavior

• Explains where PHP and PECL dependencies belong and that the build adds them to PATH.

bin/php8.4.25/deps/README.txt

README.txtDocument dependency injection behavior +2/-0

Document dependency injection behavior

• Explains where PHP and PECL dependencies belong and that the build adds them to PATH.

bin/php8.5.10/deps/README.txt

Other (12) +3884 / -2
bearsampp.confRegister PHP 8.4.25 with Bearsampp +9/-0

Register PHP 8.4.25 with Bearsampp

• Defines the PHP version, CLI executables, configuration file, PEAR command, Apache 2.4 module, and release placeholder.

bin/php8.4.25/bearsampp.conf

deps.propertiesDeclare PHP 8.4.25 ImageMagick dependency +1/-0

Declare PHP 8.4.25 ImageMagick dependency

• Points the bundle to the portable ImageMagick 7.1.2-30 release asset.

bin/php8.4.25/deps.properties

exts.propertiesMap PHP 8.4 extension assets +4/-0

Map PHP 8.4 extension assets

• Adds compatible Imagick, memcache, Xdebug, and zip artifacts for the thread-safe VS17 x64 runtime.

bin/php8.4.25/exts.properties

pear.propertiesConfigure PEAR for PHP 8.4.25 +1/-0

Configure PEAR for PHP 8.4.25

• References the PEAR 1.10.26 package archive for installation.

bin/php8.4.25/pear.properties

php.iniAdd Bearsampp runtime defaults for PHP 8.4.25 +1925/-0

Add Bearsampp runtime defaults for PHP 8.4.25

• Provides development-oriented PHP settings, Bearsampp paths, common extensions, disabled OPcache defaults, and triggered Xdebug debugging. Paths target the new PHP 8.4.25 bundle.

bin/php8.4.25/php.ini

bearsampp.confRegister PHP 8.5.10 with Bearsampp +9/-0

Register PHP 8.5.10 with Bearsampp

• Defines the PHP version, CLI executables, configuration file, PEAR command, Apache 2.4 module, and release placeholder.

bin/php8.5.10/bearsampp.conf

deps.propertiesDeclare PHP 8.5.10 ImageMagick dependency +1/-0

Declare PHP 8.5.10 ImageMagick dependency

• Points the bundle to the portable ImageMagick 7.1.2-30 release asset.

bin/php8.5.10/deps.properties

exts.propertiesMap PHP 8.5 extension assets +4/-0

Map PHP 8.5 extension assets

• Adds compatible Imagick, memcache, Xdebug, and zip artifacts for the thread-safe VS17 x64 runtime.

bin/php8.5.10/exts.properties

pear.propertiesConfigure PEAR for PHP 8.5.10 +1/-0

Configure PEAR for PHP 8.5.10

• References the PEAR 1.10.26 package archive for installation.

bin/php8.5.10/pear.properties

php.iniAdd Bearsampp runtime defaults for PHP 8.5.10 +1915/-0

Add Bearsampp runtime defaults for PHP 8.5.10

• Provides development-oriented PHP settings, Bearsampp paths, common extensions, disabled OPcache defaults, and triggered Xdebug debugging. Paths target the new PHP 8.5.10 bundle.

bin/php8.5.10/php.ini

build.gradleExpand GitHub credential resolution for asset fetching +13/-1

Expand GitHub credential resolution for asset fetching

• Prioritizes GITHUB_TOKEN, then GH_PAT, Gradle properties, and build.local.properties when authenticating release API requests.

build.gradle

build.propertiesAdvance the PHP bundle release +1/-1

Advance the PHP bundle release

• Updates the bundle release identifier from 2026.8.6 to 2026.8.27.

build.properties

@qodo-code-review

qodo-code-review Bot commented Aug 27, 2026 •

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📜 Skill insights (0)

Grey Divider


Remediation recommended

1. Credential file remains trackable ✓ Resolved 🐞 Bug ⛨ Security
Description
The fetch task now reads github.token from build.local.properties, but that credential file is
not ignored by Git. Developers using this fallback can therefore accidentally commit a GitHub token
to the repository.
Code

build.gradle[R943-945]

+        def localProps = new Properties()
+        def localPropsFile = file('build.local.properties')
+        if (localPropsFile.exists() && !githubToken) {
Evidence
The added fetch logic explicitly loads github.token from build.local.properties, while the
repository's Gradle ignore rules list build artifacts but do not exclude that file.

build.gradle[943-947]
.gitignore[20-25]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`build.local.properties` is now a supported location for `github.token`, but Git still tracks this filename, creating an accidental secret-commit risk.

## Issue Context
Keep the local token fallback while ensuring the credential-bearing file cannot be added to source control.

## Fix Focus Areas
- .gitignore[20-25]
- build.gradle[943-947]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Context sources
Review mode: ⚖️ Balanced: This adds runtime PHP configurations, extension/dependency URLs, release metadata, and build credential-loading behavior with meaningful compatibility and supply-chain risk, but the substantive logic is localized rather than bug-dense across many independent paths.

Grey Divider

Tip of the day
💡 Did you know, you can describe a rule in plain language on the Rules page and Qodo drafts it for you

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

Comment thread build.gradle
@jwaisner
jwaisner merged commit e13cbda into main Sep 1, 2026
12 checks passed
@jwaisner
jwaisner deleted the august branch September 1, 2026 02:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement ✨ Improve program

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants