Releases: composer/composer
Releases · composer/composer
2.7.8
- Added
release-age
,release-date
andlatest-release-date
in the JSON output ofoutdated
(#12053) - Fixed PHP 8.4 deprecation warnings
- Fixed addressability of branches containing
#
signs (#12042) - Fixed
bump
command not handling some~
constraints correctly (#12038) - Fixed COMPOSER_AUTH not taking precedence over ./auth.json (#12084)
- Fixed
relative: true
sometimes not being respected in path repo symlinks (#12092) - Fixed copy from cache sometimes failing on VirtualBox shared folders (#12057)
- Fixed PSR-4 autoloading order regression in some edge case (#12063)
- Fixed duplicate lib-* packages causing issues when having pecl + core versions of the same PHP extension (#12093)
- Fixed transport-options.ssl for local cert authorization being stored in lock file making them less portable (#12019)
- Fixed memory issues when installing large binaries (#12032)
- Fixed
archive
command crashing when a path cannot be realpath'd on windows (#11544) - API: Deprecated BasePackage::$stabilities in favor of BasePackage::STABILITIES (685add7)
- Improved Docker detection (#12062)
Full Changelog: 2.7.7...2.7.8
2.7.7
This release includes fixes for issues found in a security audit by Cure53 funded by Alpha-Omega.
- Security: Fixed command injection via malicious git branch name (GHSA-47f6-5gq3-vx9c / CVE-2024-35241)
- Security: Fixed multiple command injections via malicious git/hg branch names (GHSA-v9qv-c7wm-wgmf / CVE-2024-35242)
- Security: Fixed secure-http checks that could be bypassed by using malformed URL formats (fa3b958)
- Security: Fixed Filesystem::isLocalPath including windows-specific checks on linux (3c37a67)
- Security: Fixed perforce argument escaping (3773f77)
- Security: Fixed handling of zip bombs when extracting archives (de5f7e3)
- Security: Fixed Windows command parameter escaping to prevent abuse of unicode characters with best fit encoding conversion, reported by Splitline Huang (3130a74, 04a63b3)
- Fixed PSR violations for classes not matching the namespace of a rule being hidden, this may lead to new violations being shown (#11957)
- Fixed UX when a plugin is still in vendor dir but is not required nor allowed anymore after changing branches (#12000)
- Fixed new platform requirements from composer.json not being checked if the lock file is outdated (#12001)
- Fixed ability for
config
command to remove autoload keys (#11967) - Fixed empty
type
support ininit
command (#11999) - Fixed git clone errors when
safe.bareRepository
is set tostrict
in the git config (#11969) - Fixed regression showing network errors on PHP <8.1 (#11974)
- Fixed some color bleed from a few warnings (#11972)
Full Changelog: 2.7.6...2.7.7
2.2.24
This release includes fixes for issues found in a security audit by Cure53 funded by Alpha-Omega.
- Security: Fixed command injection via malicious git branch name (GHSA-47f6-5gq3-vx9c / CVE-2024-35241)
- Security: Fixed multiple command injections via malicious git/hg branch names (GHSA-v9qv-c7wm-wgmf / CVE-2024-35242)
- Security: Fixed secure-http checks that could be bypassed by using malformed URL formats (fa3b958)
- Security: Fixed Filesystem::isLocalPath including windows-specific checks on linux (3c37a67)
- Security: Fixed perforce argument escaping (3773f77)
- Security: Fixed handling of zip bombs when extracting archives (de5f7e3)
- Security: Fixed Windows command parameter escaping to prevent abuse of unicode characters with best fit encoding conversion (3130a74, 04a63b3)
2.7.6
2.7.5
- Added
uninstall
alias toremove
command (#11951) - Added workaround for broken curl versions 8.7.0/8.7.1 causing transport exceptions (#11913)
- Fixed root usage warnings showing up within Podman containers (#11946)
- Fixed config command not handling objects correctly in some conditions (#11945)
- Fixed binary proxies not containing the correct path if the project dir is a symlink (#11947)
- Fixed Composer autoloader being overruled by project autoloaders when they are loaded by event handlers (scripts/plugins) (#11955)
- Fixed TransportException (http failures) not having a distinct exit code, should now exit with
100
as code (#11954)
2.7.4
- Fixed regression (
Call to undefined method ProxyManager::needsTransitionWarning()
) with projects requiring composer/composer in an pre-2.7.3 version (#11943, #11940)
As a side-note, requiring composer/composer
is frowned upon and should really only be done in circumstances where it is absolutely necessary, and ideally you should talk to us first to see if we can't help avoid it or help by extracting some code in a smaller library.
2.7.3
- BC Warning: Fixed
https_proxy
env var falling back tohttp_proxy
's value, this is still in place but with a warning for now, and https_proxy can now be set empty to remove the fallback. Composer 2.8.0 will remove the fallback so make sure you heed the warnings (#11915) - Fixed
show
andoutdated
commands to remove leadingv
in e.g.v1.2.3
when showing lists of packages (#11925) - Fixed
audit
command not showing any id when no CVE is present, the advisory ID is now shown (#11892) - Fixed the warning about a missing default version showing for packages with
project
type as those are typically not versioned and do not have cyclic dependencies (#11885) - Fixed PHP 8.4 deprecation warnings
- Fixed
clear-cache
command to respect the config.cache-dir setting from the local composer.json (#11921) - Fixed
status
command not handling failed download/install promises correctly (#11889) - Added support for
buy_me_a_coffee
in GitHub funding files (#11902) - Added
hg
support for SSH urls (#11878) - Fixed some env vars with an integer value causing a crash (#11908)
- Fixed context data not being output when using IOInterface as a PSR-3 logger (#11882)
2.7.2
- Added info about the PHP version when running
composer --version
(#11866) - Added warning when the root version cannot be detected (#11858)
- Fixed plugins still being enabled in a few contexts when running as root (c3efff9)
- Fixed
outdated --ignore ...
still attempting to load the latest version of the ignored packages (#11863) - Fixed handling of broken symlinks in the middle of an install path (#11864)
- Fixed
update --lock
still incorrectly updating some metadata (#11850, #11787)
Full Changelog: 2.7.1...2.7.2
2.7.1
Check the 2.7.0 release notes for common problems troubleshooting if you are experiencing issues after upgrading to Composer 2.7.x
Changelog
- Added several warnings when plugins are disabled to hint at common problems people had with 2.7.0 (#11842)
- Fixed
diagnose
auditing of Composer dependencies failing when running from the phar
2.7.0
Read the Composer 2.7 Release Announcement for more details on the release highlights and the security fix.
Common upgrade problems
- If you see errors with missing commands (
symfony-cmd: command not found
) or other failures and you are relying on plugins and running Composer as root (for example when you use AWS ElasticBeanstalk), read #11839 - If you are using plugins and bitbucket pipelines, read #11839
- If you see
Fatal error: Declaration of {some-class}::execute(...) must be compatible with Composer\Command\SomeCommand::execute(): int
then whatever code is extending a Composer command needs to be updated to also add the int return type, see #11843 for more details.
Complete Changelog
- Security: Fixed code execution and possible privilege escalation via compromised vendor dir contents (GHSA-7c6p-848j-wh5h / CVE-2024-24821)
- Changed the default of the
audit.abandoned
config setting tofail
, set it toreport
orignore
if you do not want this, or set it viaCOMPOSER_AUDIT_ABANDONED
env var (#11643) - Added --minimal-changes (-m) flag to
update
/require
/remove
commands to perform partial update with --with-dependencies while changing only what is absolutely necessary in transitive dependencies (#11665) - Added --sort-by-age (-A) flag to
outdated
/show
commands to allow sorting by and displaying the release date (most outdated first) (#11762) - Added support for
--self
combined with--installed
or--locked
inshow
command, to add the root package to the package list being output (#11785) - Added severity information to
audit
command output (#11702) - Added
scripts-aliases
top level key in composer.json to define aliases for custom scripts you defined (#11666) - Added IPv4 fallback on connection timeout, as well as a
COMPOSER_IPRESOLVE
env var to force IPv4 or IPv6, set it to4
or6
(#11791) - Added support for wildcards in
outdated
's --ignore arg (#11831) - Added support for
bump
command bumping*
to>=current version
(#11694) - Added detection of constraints that cannot possibly match anything to
validate
command (#11829) - Added package source information to the output of
install
when running in very verbose (-vv) mode (#11763) - Added audit of Composer's own bundled dependencies in
diagnose
command (#11761) - Added GitHub token expiration date to
diagnose
command output (#11688) - Added non-zero status code to why/why-not commands (#11796)
- Added error when calling
show --direct <package>
with an indirect/transitive dependency (#11728) - Added
COMPOSER_FUND=0
env var to hide calls for funding (#11779) - Fixed
bump
command not bumping packages required with av
prefix (#11764) - Fixed automatic disabling of plugins when running non-interactive as root
- Fixed
update --lock
not keeping the dist reference/url/checksum pinned (#11787) - Fixed
require
command crashing at the end if no lock file is present (#11814) - Fixed root aliases causing problems when auditing locked dependencies (#11771)
- Fixed handling of versions with 4 components in
require
command (#11716) - Fixed compatibility issues with Symfony 7
- Fixed composer.json remaining behind after a --dry-run of the
require
command (#11747) - Fixed warnings being shown incorrectly under some circumstances (#11786, #11760, #11803)