Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: composer/composer
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 2.8.10
Choose a base ref
...
head repository: composer/composer
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 2.8.11
Choose a head ref
  • 15 commits
  • 40 files changed
  • 8 contributors

Commits on Jul 10, 2025

  1. Configuration menu
    Copy the full SHA
    58e667f View commit details
    Browse the repository at this point in the history

Commits on Aug 19, 2025

  1. Add more comments, refs #12445

    Seldaek committed Aug 19, 2025
    Configuration menu
    Copy the full SHA
    bd7677e View commit details
    Browse the repository at this point in the history

Commits on Aug 20, 2025

  1. Update reactphp/promise for PHP 8.5 compatibility (#12504)

    At this moment, nearly every single `composer install` on PHP 8.5 is failing on a deprecation notice coming from the `react/promise` package.
    
    To mitigate this, the ReactPHP team has just released a new version and I'd like to suggest for Composer to update to that version and release a new version of Composer itself to unblock early adopters from testing with PHP 8.5.
    
    Note: other than fixing the deprecation notice, the `3.3.0` release does not contain any user-facing changes.
    
    Ref:
    * reactphp/promise#264
    * https://github.com/reactphp/promise/releases/tag/v3.3.0
    * reactphp/promise@v3.2.0...v3.3.0
    
    Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
    jrfnl and jrfnl authored Aug 20, 2025
    Configuration menu
    Copy the full SHA
    d52d765 View commit details
    Browse the repository at this point in the history
  2. diagnose: correctly show curl features (#12485)

    Co-authored-by: Tim van der Molen <tim@kariliq.nl>
    tbvdm and Tim van der Molen authored Aug 20, 2025
    Configuration menu
    Copy the full SHA
    fb05250 View commit details
    Browse the repository at this point in the history
  3. PHP 8.5 | Prevent deprecation notices for Reflection*::setAccessible() (

    #12493)
    
    * PHP 8.5 | Prevent deprecation notices for Reflection*::setAccessible()
    
    Since PHP 8.1, calling the `Reflection*::setAccessible()` methods is no longer necessary as reflected properties/methods/etc will always be accessible.
    However, the method calls are still needed for PHP < 8.1.
    
    As of PHP 8.5, calling the `Reflection*::setAccessible()` methods is now formally deprecated and will yield a deprecation notice, which will fail test runs.
    As of PHP 9.0, the `setAccessible()` method(s) will be removed.
    
    With the latter in mind, this commit prevents the deprecation notice by making the calls to `setAccessible()` conditional.
    
    Silencing the deprecation would mean, this would need to be "fixed" again come PHP 9.0, while the current solution should be stable, including for PHP 9.0.
    
    Ref: https://wiki.php.net/rfc/deprecations_php_8_5#extreflection_deprecations
    
    * Use "and" instead of "&&" for control flow
    
    ---------
    
    Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
    jrfnl and jrfnl authored Aug 20, 2025
    Configuration menu
    Copy the full SHA
    465c3a3 View commit details
    Browse the repository at this point in the history
  4. Update baseline (1362, 80)

    Seldaek committed Aug 20, 2025
    Configuration menu
    Copy the full SHA
    5014343 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    d35c034 View commit details
    Browse the repository at this point in the history
  6. Update deps

    Seldaek committed Aug 20, 2025
    Configuration menu
    Copy the full SHA
    c50807e View commit details
    Browse the repository at this point in the history

Commits on Aug 21, 2025

  1. Configuration menu
    Copy the full SHA
    304107d View commit details
    Browse the repository at this point in the history
  2. Fix PSR-4 warnings when using exclude-from-classmap with symlinked di…

    …rectories (#12480)
    
    * Fix PSR-4 warnings when using exclude-from-classmap with symlinked directories
    
    ### Description
    
    This PR fixes an issue where Composer generates incorrect PSR-4 compliance warnings when using `exclude-from-classmap` patterns with directories that are symlinks.
    
    ### The Problem
    
    When a PSR-4 autoload path is a symlink (either relative or absolute) and the project uses `exclude-from-classmap` patterns (e.g., `**/vendor/`), Composer incorrectly reports that classes in the excluded directories don't comply with PSR-4 standards.
    
    Example warning:
    ```
    Class Doctrine\Instantiator\InstantiatorInterface located in ./tools/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php does not comply with psr-4 autoloading standard (rule: MyTools\ => ./tools). Skipping.
    ```
    
    ### Root Cause
    
    The issue occurs because:
    1. The `buildExclusionRegex` method was only matching exclude patterns against the real path of directories
    2. When scanning symlinked directories, the patterns needed to match against both the symlink path and the resolved path
    
    ### The Solution
    
    The fix updates `buildExclusionRegex` to also check exclude patterns against the normalized (non-realpath) version of the directory being scanned. This ensures that exclude patterns work correctly whether the directory is accessed via its symlink path or its real path.
    
    ### Testing
    
    Added a new test case `testAbsoluteSymlinkWithPsr4DoesNotGenerateWarnings` that:
    1. Creates a PSR-4 autoload rule pointing to an absolute symlink
    2. Uses `exclude-from-classmap` to exclude vendor directories
    3. Verifies that no PSR-4 compliance warnings are generated
    
    All existing tests continue to pass.
    
    ### Reproducing the Issue
    
    Before this fix:
    ```bash
    # Create a test directory with a symlink (relative or absolute)
    mkdir actual-tools
    ln -s actual-tools tools
    # OR with absolute path:
    # ln -s /tmp/tools-composer-test tools
    
    # Add to composer.json:
    {
        "autoload": {
            "psr-4": {
                "MyTools\\": "tools/"
            },
            "exclude-from-classmap": ["**/vendor/"]
        }
    }
    
    # Run composer dump-autoload -o
    # Results in PSR-4 warnings for files in tools/vendor/
    ```
    
    After this fix: No warnings are generated for excluded paths.
    
    Fixes #12478
    
    * Optimize code a bit and use str_starts_with for clarity
    
    ---------
    
    Co-authored-by: Jordi Boggiano <j.boggiano@seld.be>
    sanmai and Seldaek authored Aug 21, 2025
    Configuration menu
    Copy the full SHA
    e95d72a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5a85ab7 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    af81eac View commit details
    Browse the repository at this point in the history
  5. Add php 8.5 to CI

    Seldaek committed Aug 21, 2025
    Configuration menu
    Copy the full SHA
    af8ea90 View commit details
    Browse the repository at this point in the history
  6. Update changelog

    Seldaek committed Aug 21, 2025
    Configuration menu
    Copy the full SHA
    3e80d61 View commit details
    Browse the repository at this point in the history
  7. Release 2.8.11

    Seldaek committed Aug 21, 2025
    Configuration menu
    Copy the full SHA
    00e1a33 View commit details
    Browse the repository at this point in the history
Loading