Skip to content

php(-nts)-xdebug: Update to version 3.4.7-84, fix checkver & autoupdate#16638

Merged
z-Fng merged 3 commits into
ScoopInstaller:masterfrom
SorYoshino:php(-nts)-xdebug
Nov 23, 2025
Merged

php(-nts)-xdebug: Update to version 3.4.7-84, fix checkver & autoupdate#16638
z-Fng merged 3 commits into
ScoopInstaller:masterfrom
SorYoshino:php(-nts)-xdebug

Conversation

@SorYoshino

@SorYoshino SorYoshino commented Nov 22, 2025

Copy link
Copy Markdown
Contributor

Summary

Updates both php-xdebug and php-nts-xdebug to version 3.4.7-84, corrects upstream asset naming changes, rebuilds the checkver / autoupdate logic to ensure reliable version detection and hashing, and improves the manifest metadata for accuracy and future maintainability.

Related issues or pull requests

Changes

  • Updated version to 3.4.7-84 for both manifests
  • Improved license field
  • Updated download URLs and SHA256 hashes to match the latest upstream assets
  • Rewrote checkver using a PowerShell script to:
    • Parse asset names from historical downloads instead of the main page
    • Extract Xdebug version and PHP API version via regex groups
    • Sort and select the newest compatible file dynamically
  • Updated autoupdate to:
    • Use $matchName for fully dynamic asset resolution
    • Add a new hash-matching regex compatible with the historical download page
  • Unified logic between the TS and NTS manifests for maintainability

Testing

┏[ D:\Software\Scoop\Local\apps\scoop\current\bin][ master ≡]
└─> .\checkver.ps1 -App php-* -Dir "D:\Temporary\Software\Microsoft\Windows Sandbox\Repositories\Scoop\Buckets\Extras\bucket" -f                
php-nts-xdebug: 3.4.7-84 (scoop version is 3.4.7-8.4) autoupdate available                                                                     
Forcing autoupdate!
Autoupdating php-nts-xdebug
DEBUG[1763823212] [$updatedProperties] = [url hash] -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:491:5
DEBUG[1763823212] $substitutions (hashtable) -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:221:5
DEBUG[1763823212] $substitutions.$patchVersion                  7
DEBUG[1763823212] $substitutions.$minorVersion                  4
DEBUG[1763823212] $substitutions.$matchHead                     3.4.7
DEBUG[1763823212] $substitutions.$underscoreVersion             3_4_7_84
DEBUG[1763823212] $substitutions.$baseurl                       https://xdebug.org/files
DEBUG[1763823212] $substitutions.$urlNoExt                      https://xdebug.org/files/php_xdebug-3.4.7-8.4-nts-vs17-x86_64
DEBUG[1763823212] $substitutions.$version                       3.4.7-84
DEBUG[1763823212] $substitutions.$majorVersion                  3
DEBUG[1763823212] $substitutions.$dashVersion                   3-4-7-84
DEBUG[1763823212] $substitutions.$match1                        3.4.7-84
DEBUG[1763823212] $substitutions.$matchTail                     -84
DEBUG[1763823212] $substitutions.$preReleaseVersion             84
DEBUG[1763823212] $substitutions.$basenameNoExt                 php_xdebug-3.4.7-8.4-nts-vs17-x86_64
DEBUG[1763823212] $substitutions.$url                           https://xdebug.org/files/php_xdebug-3.4.7-8.4-nts-vs17-x86_64.dll
DEBUG[1763823212] $substitutions.$buildVersion
DEBUG[1763823212] $substitutions.$matchName                     php_xdebug-3.4.7-8.4-nts-vs17-x86_64.dll
DEBUG[1763823212] $substitutions.$cleanVersion                  34784
DEBUG[1763823212] $substitutions.$dotVersion                    3.4.7.84
DEBUG[1763823212] $substitutions.$basename                      php_xdebug-3.4.7-8.4-nts-vs17-x86_64.dll
DEBUG[1763823212] $hashfile_url = https://xdebug.org/download/historical -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:224:5
Searching hash for php_xdebug-3.4.7-8.4-nts-vs17-x86_64.dll in https://xdebug.org/download/historical
DEBUG[1763823213] $regex = "SHA256: ([a-fA-F0-9]{64})" href='/files/php_xdebug-3\.4\.7-8\.4-nts-vs17-x86_64\.dll' -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:78:9
Found: 1585d961e311bf138ff4cd98d04c3092c4fa00f8133b26f70a6bf946d23c43aa using Extract Mode
Writing updated php-nts-xdebug manifest
php-xdebug: 3.4.7-84 (scoop version is 3.4.7-8.4) autoupdate available
Forcing autoupdate!
Autoupdating php-xdebug
DEBUG[1763823214] [$updatedProperties] = [url hash] -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:491:5
DEBUG[1763823214] $substitutions (hashtable) -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:221:5
DEBUG[1763823214] $substitutions.$patchVersion                  7
DEBUG[1763823214] $substitutions.$minorVersion                  4
DEBUG[1763823214] $substitutions.$matchHead                     3.4.7
DEBUG[1763823214] $substitutions.$underscoreVersion             3_4_7_84
DEBUG[1763823214] $substitutions.$baseurl                       https://xdebug.org/files
DEBUG[1763823214] $substitutions.$urlNoExt                      https://xdebug.org/files/php_xdebug-3.4.7-8.4-ts-vs17-x86_64
DEBUG[1763823214] $substitutions.$version                       3.4.7-84
DEBUG[1763823214] $substitutions.$majorVersion                  3
DEBUG[1763823214] $substitutions.$dashVersion                   3-4-7-84
DEBUG[1763823214] $substitutions.$match1                        3.4.7-84
DEBUG[1763823214] $substitutions.$matchTail                     -84
DEBUG[1763823214] $substitutions.$preReleaseVersion             84
DEBUG[1763823214] $substitutions.$basenameNoExt                 php_xdebug-3.4.7-8.4-ts-vs17-x86_64
DEBUG[1763823214] $substitutions.$url                           https://xdebug.org/files/php_xdebug-3.4.7-8.4-ts-vs17-x86_64.dll
DEBUG[1763823214] $substitutions.$buildVersion
DEBUG[1763823214] $substitutions.$matchName                     php_xdebug-3.4.7-8.4-ts-vs17-x86_64.dll
DEBUG[1763823214] $substitutions.$cleanVersion                  34784
DEBUG[1763823214] $substitutions.$dotVersion                    3.4.7.84
DEBUG[1763823214] $substitutions.$basename                      php_xdebug-3.4.7-8.4-ts-vs17-x86_64.dll
DEBUG[1763823214] $hashfile_url = https://xdebug.org/download/historical -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:224:5
Searching hash for php_xdebug-3.4.7-8.4-ts-vs17-x86_64.dll in https://xdebug.org/download/historical
DEBUG[1763823215] $regex = "SHA256: ([a-fA-F0-9]{64})" href='/files/php_xdebug-3\.4\.7-8\.4-ts-vs17-x86_64\.dll' -> D:\Software\Scoop\Local\apps\scoop\current\lib\autoupdate.ps1:78:9
Found: 15e5c20a7ac0576f9cc0cd437b2adc2dad71d49904388760ff9145c22b46cb1a using Extract Mode
Writing updated php-xdebug manifest

┏[ D:\Software\Scoop\Local\apps\scoop\current\bin][ master ≡]
└─> scoop install Unofficial/php-xdebug
Installing 'php-xdebug' (3.4.7-84) [64bit] from 'Unofficial' bucket
Loading php_xdebug-3.4.7-8.4-ts-vs17-x86_64.dll from cache.
Checking hash of php_xdebug-3.4.7-8.4-ts-vs17-x86_64.dll ... ok.
Linking D:\Software\Scoop\Local\apps\php-xdebug\current => D:\Software\Scoop\Local\apps\php-xdebug\3.4.7-84            
Running post_install script...
PHP was not installed through scoop, you have to activate php_xdebug.dll manually! Add the following:

zend_extension=D:\Software\Scoop\Local\apps\php-xdebug\current\php_xdebug.dll
[xdebug]
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.discover_client_host=true

to your php.ini file
done.
'php-xdebug' (3.4.7-84) was installed successfully!
Notes
-----
Xdebug is already enabled if PHP was installed through scoop!
Otherwise add 'D:\Software\Scoop\Local\apps\php-xdebug\current\php_xdebug.dll' to your php.ini
  • Use conventional PR title: <manifest-name[@version]|chore>: <general summary of the pull request>
  • I have read the Contributing Guide

Summary by CodeRabbit

  • Updates
    • Xdebug updated to version 3.4.7 with PHP 8.4 support
    • License information and package verification mechanisms updated

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitai Bot commented Nov 22, 2025

Copy link
Copy Markdown

Walkthrough

Two Xdebug manifests (NTS and TS) update the version to 3.4.7-84, correct the license URL/identifier, refresh DLL URLs and SHA256 hashes, and replace simple checkver/autoupdate regexes with a PowerShell-based parser and $matchName-based download/hash lookup against the historical downloads page.

Changes

Cohort / File(s) Summary
Xdebug NTS manifest
bucket/php-nts-xdebug.json
Version bumped to 3.4.7-84; license identifier/URL updated; 64-bit DLL URL and SHA256 replaced; checkver switched to https://xdebug.org/download/historical with a PowerShell parsing script and updated regex; autoupdate URL uses $matchName and hash lookup moved to historical page with new regex.
Xdebug TS manifest
bucket/php-xdebug.json
Same set of changes as NTS: version 3.4.7-84, license update, 64-bit DLL URL and SHA256 updated; checkver now uses PowerShell parsing on historical page; autoupdate templated to $matchName and hash lookup adjusted to historical page regex.

Sequence Diagram(s)

sequenceDiagram
    participant S as Scoop checkver/autoupdate
    participant H as xdebug.org/download/historical
    participant PS as PowerShell parser (embedded)
    participant A as URL template ($matchName)
    participant D as Download (DLL)
    participant HASH as Hash extraction (historical page regex)

    S->>H: GET historical page
    H-->>PS: page HTML
    PS->>PS: parse entries -> produce "XdebugVersion-PHPVersion / FileName" ($matchName)
    PS-->>S: return $matchName and version
    S->>A: construct download URL using $matchName
    A->>D: fetch DLL
    S->>H: fetch historical page for hash lookup
    H-->>HASH: run regex against basename
    HASH-->>S: return SHA256
    S->>D: verify SHA256
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Pay attention to the PowerShell script correctness and edge cases in parsing the historical page.
  • Verify the updated regexes match actual historical page structure and the $matchName formatting.
  • Confirm DLL URLs and provided SHA256 values correspond exactly to the Xdebug 3.4.7 builds for PHP 8.4 (NTS/TS variations).

Suggested reviewers

  • z-Fng

Poem

🐇 I hopped through pages old and new,

Found files where versions grew;
I parsed with PowerShell, neat and spry,
Matched names and hashes passing by—
A rabbit’s cheer for builds in view!

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the primary changes: version update to 3.4.7-84 and fixes to checkver & autoupdate logic, directly reflecting the main objectives.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description check ✅ Passed The pull request description is comprehensive, well-structured, and follows the repository template requirements with conventional title, summary, related issues, detailed changes, and testing evidence.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

Copy link
Copy Markdown
Contributor

All changes look good.

Wait for review from human collaborators.

php-nts-xdebug

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate
  • Autoupdate Hash Extraction

php-xdebug

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate
  • Autoupdate Hash Extraction

Check the full log for details.

@SorYoshino

Copy link
Copy Markdown
Contributor Author

/verify

@github-actions

Copy link
Copy Markdown
Contributor

All changes look good.

Wait for review from human collaborators.

php-nts-xdebug

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate
  • Autoupdate Hash Extraction

php-xdebug

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate
  • Autoupdate Hash Extraction

Check the full log for details.

@z-Fng z-Fng left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks!

@z-Fng z-Fng merged commit 655fcfb into ScoopInstaller:master Nov 23, 2025
3 checks passed
@SorYoshino SorYoshino deleted the php(-nts)-xdebug branch November 24, 2025 05:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants