Skip to content

Add zip extension support for PHP 8.3.30, 8.4.18, and 8.5.3 and updat…#72

Merged
jwaisner merged 1 commit intomainfrom
zip
Mar 15, 2026
Merged

Add zip extension support for PHP 8.3.30, 8.4.18, and 8.5.3 and updat…#72
jwaisner merged 1 commit intomainfrom
zip

Conversation

@N6REJ
Copy link
Collaborator

@N6REJ N6REJ commented Mar 14, 2026

…e bundle release to 2026.3.13
we've had zip as a selectable extension forever but for some reaosn its always been off by default and is not listed in the php.ini as a valid extension.
This resolves that.
It makes it active by default to satisfy akeeba issues.

@N6REJ N6REJ added the enhancement ✨ Improve program label Mar 14, 2026
@qodo-code-review
Copy link

Review Summary by Qodo

Add zip extension support and update bundle release

✨ Enhancement

Grey Divider

Walkthroughs

Description
• Add zip extension support for PHP 8.3.30, 8.4.18, and 8.5.3
• Enable zip extension by default in extension properties
• Update bundle release version to 2026.3.13
Diagram
flowchart LR
  A["PHP Versions<br/>8.3.30, 8.4.18, 8.5.3"] -- "Add zip extension<br/>configuration" --> B["exts.properties<br/>files updated"]
  B -- "Reference new<br/>bundle release" --> C["Bundle 2026.3.13"]
Loading

Grey Divider

File Changes

1. bin/php8.3.30/exts.properties ⚙️ Configuration changes +1/-0

Add zip extension for PHP 8.3.30

• Add zip extension entry with version 1.22.8 for PHP 8.3
• Reference bundle release 2026.3.13
• Enable zip as selectable extension

bin/php8.3.30/exts.properties


2. bin/php8.4.18/exts.properties ⚙️ Configuration changes +1/-0

Add zip extension for PHP 8.4.18

• Add zip extension entry with version 1.22.8 for PHP 8.4
• Reference bundle release 2026.3.13
• Enable zip as selectable extension

bin/php8.4.18/exts.properties


3. bin/php8.5.3/exts.properties ⚙️ Configuration changes +1/-0

Add zip extension for PHP 8.5.3

• Add zip extension entry with version 1.22.8 for PHP 8.5
• Reference bundle release 2026.3.13
• Enable zip as selectable extension

bin/php8.5.3/exts.properties


View more (1)
4. build.properties ⚙️ Configuration changes +1/-1

Update bundle release version

• Update bundle release version from 2026.3.4 to 2026.3.13
• Align with new zip extension bundle release

build.properties


Grey Divider

Qodo Logo

@qodo-code-review
Copy link

qodo-code-review bot commented Mar 14, 2026

Code Review by Qodo

🐞 Bugs (2) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider


Remediation recommended

1. Zip URL not auto-updated 🐞 Bug ⛯ Reliability
Description
The newly-added zip entries in exts.properties will never be updated by the existing Gradle
URL-update automation, because build.gradle only discovers/updates imagick/memcache/xdebug and
omits zip from exts.properties updates. This makes the zip URL likely to drift/stale over time and
later break extension download/build for these PHP versions.
Code

bin/php8.3.30/exts.properties[4]

+zip = https://github.com/Bearsampp/modules-untouched/releases/download/php-2026.3.13/php_zip-1.22.8-8.3-ts-vs16-x64.zip
Evidence
The PR adds a zip property key in exts.properties, but the automation that scans a
modules-untouched release for extension assets and then updates exts.properties is hard-coded to
only handle imagick/memcache/xdebug, so zip cannot be refreshed automatically and will fall
behind.

bin/php8.3.30/exts.properties[1-4]
build.gradle[930-986]
build.gradle[1070-1077]

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

### Issue description
The repo’s Gradle automation that updates `exts.properties` URLs is hard-coded to only handle `imagick`, `memcache`, and `xdebug`. After this PR adds `zip` to `exts.properties`, that automation will never update `zip`, which will lead to stale/broken zip URLs over time.

### Issue Context
A `zip` entry was added to multiple `bin/php*/exts.properties` files. The Gradle task that scans a `modules-untouched` release for compatible assets and then updates `exts.properties` does not look for `php_zip` assets and does not include `zip` in the `extsUpdates` map.

### Fix Focus Areas
- build.gradle[930-986]
- build.gradle[1070-1077]

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


2. Zip URLs bypass link validation 🐞 Bug ⛯ Reliability
Description
The new zip download URLs added under bin/php*/exts.properties are not covered by the
repository’s URL-validation workflow path filters, so an invalid zip URL can merge without being
caught by CI. This can later break builds/tests that rely on downloading extensions from
exts.properties.
Code

bin/php8.4.18/exts.properties[4]

+zip = https://github.com/Bearsampp/modules-untouched/releases/download/php-2026.3.13/php_zip-1.22.8-8.4-ts-vs17-x64.zip
Evidence
The PR introduces new external URLs inside bin/php*/exts.properties. The CI workflow dedicated to
validating URLs in modified .properties files is configured to run only when
modules/*.properties or releases.properties changes, so these new bin/** URLs are excluded
from that validation.

bin/php8.4.18/exts.properties[1-4]
.github/workflows/validate-properties-links.yml[6-12]

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

### Issue description
New URLs added to `bin/php*/exts.properties` are not validated by the CI link checker because the workflow only triggers on `modules/*.properties` and `releases.properties` changes.

### Issue Context
This PR adds new `zip` URLs under `bin/php*/exts.properties`. If any of these URLs are wrong (typo, missing asset, permissions), the PR can still pass CI link validation and only fail later when someone runs the build process that downloads extensions.

### Fix Focus Areas
- .github/workflows/validate-properties-links.yml[6-12]

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


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

@github-actions
Copy link

🐘 PHP Module Tests - Results

Test Date: 2026-03-14 06:15:43 UTC
Status: ✅ All tests passed

📊 Test Results by Version

PHP 8.3.30

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

PHP 8.4.18

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

PHP 8.5.3

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

Results: 12 of 12 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.

@jwaisner jwaisner merged commit dc7aef4 into main Mar 15, 2026
16 checks passed
@jwaisner jwaisner deleted the zip branch March 15, 2026 02:21
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