NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #823 most downloaded on Packagist
Stages Composer commands so they can be safely run on a production codebase.
Last release 3 months ago
07 Jul 2026
Release timing varies
gaps range from 8 days to 7 months
Some releases are documented
notes for 5 of 18 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
36 releases · first in 2021
One column per quarter.
Use Docker for local testing with multiple versions of dependencies by @TravisCarden in #444
symfony/filesystem >=v6.4.40/v7.4.11 by @TravisCarden in #446Full Changelog: v2.1.0...v2.1.1
Add support for Symfony 8 #436 by @longwave in #436
phpunit/phpunit from 10.5.46 to 10.5.63 by @TravisCarden in #437Full Changelog: v2.0.2...v2.1.0
No user-facing changes. Full Changelog : v2.0.1...v2.0.2
No user-facing changes.
Full Changelog: v2.0.1...v2.0.2
Pass $timeout through to AbstractProcessRunner::run() in FileSyncer by @mstrelan in #414
Declare conflicts with vulnerable versions of symfony/process by @TravisCarden in #395
Domain\Value\Path\PathInterface::isAbsolute() by @TravisCarden in #62$cwd argument to Infrastructure\Value\Path\AbstractPath::__construct() by @TravisCarden in #63Domain\Value\Path\PathInterface::raw() by @TravisCarden in #64Domain\Service\Host\HostInterface by @TravisCarden in #65$cwd argument to Infrastructure\Factory\Path\PathFactoryInterface::create() by @TravisCarden in #66Domain\Service\Filesystem\FilesystemInterface to distinguish between hard links and symlinks by @TravisCarden in #69PhpFileSyncer by @TravisCarden in #109PathInterface::resolve() and ::resolveRelativeTo() by @TravisCarden in #114Domain\Service\Host\HostInterface::isWindows() static by @TravisCarden in #119Domain\Aggregate\PreconditionsTree\PreconditionsTreeInterface into Domain\Service\Precondition\PreconditionInterface by @TravisCarden in #127Infrastructure\Service\Filesystem\Filesystem::isDirEmpty() by @TravisCarden in #155Filesystem::copy() by @TravisCarden in #191TranslatableMessage::__toString() by @TravisCarden in #203API\Process\Value\OutputTypeEnum for a safer API\Process\Service\OutputCallbackInterface by @TravisCarden in #221API\Process\Service\ProcessInterface::run() by @TravisCarden in #222API\Process\Service\ProcessInterface::setEnv() and ::getEnv() by @TravisCarden in #224API\Translation\Service\TranslatorInterface an injectable service by @TravisCarden in #225API\Path\Value\PathInterface::resolved() and ::resolvedRelativeTo() to ::absolute() and ::relative(), respectively by @TravisCarden in #243API\Path\Factory\PathFactoryInterface::create() non-static by @TravisCarden in #249PathList paths by @TravisCarden in #240Internal\FileSyncer\Service\RsyncFileSyncer by @TravisCarden in #250HostInterface into EnvironmentInterface and move it into the API layer by @TravisCarden in #261$timeout argument to relevant API\Precondition\Service\PreconditionInterface methods by @TravisCarden in #266API\Process\Service\ProcessInterface::getErrorOutput() by @TravisCarden in #273FileSyncerFactoryInterface instead of depending on FileSyncerInterface directly by @TravisCarden in #274API\Filesystem\Service\FilesystemInterface::filePerms() by @TravisCarden in #304fileperms() result in Internal\Filesystem\Service\Filesystem::filePerms() by @TravisCarden in #306API\Filesystem\Service\FilesystemInterface::chmod() by @TravisCarden in #303API\Filesystem\Service\FilesystemInterface::filePerms() with ::fileMode() by @TravisCarden in #307API\Filesystem\Service\FilesystemInterface::touch() by @TravisCarden in #319$env argument to Process creation chain by @TravisCarden in #324$cwd argument to Process creation chain by @TravisCarden in #325API\Path\Value\PathInterface::isRelative() by @TravisCarden in #328PathHelper into an injectable service by @TravisCarden in #329PhpFileSyncer and add rsync support for Windows by @TravisCarden in #334API\Precondition\Service\NoNestingOnWindowsInterface by @TravisCarden in #342API\Process\Service\OutputCallbackInterface and create an implementation by @TravisCarden in #355ComposerIsAvailable use ComposerProcessRunner instead of ProcessFactory by @TravisCarden in #357symfony/process by @TravisCarden in #395PathList package into Path by @TravisCarden in #146RecursiveFileFinderInterface to FileFinderInterface by @TravisCarden in #181ProcessRunnerInterface::DEFAULT_TIMEOUT to ProcessInterface by @TravisCarden in #218API\Path\Value\PathInterface::raw() by @TravisCarden in #244$timeout arguments non-nullable by @TravisCarden in #254set_time_limit() is disabled by @TravisCarden in #256Internal\Path\Value\PathList::getAll() by @TravisCarden in #279API\Filesystem\Service\FilesystemInterface::copy() preserve file permissions by @TravisCarden in #308FilesystemInterface::exists() to ::fileExists() by @TravisCarden in #314API\Filesystem\Service\FilesystemInterface::isDirEmpty() by @TravisCarden in #316Internal\Filesystem\Service\Filesystem::remove() to ::rm() by @TravisCarden in #318API\Filesystem\Service\FilesystemInterface by @TravisCarden in #339API\Filesystem\Service\FilesystemInterface::isDir() and ::isFile() resolve links like their PHP built-in counterparts by @TravisCarden in #340CommonPreconditions by @TravisCarden in #345self from API\Process\Service\ProcessInterface methods by @TravisCarden in #347FileSyncer skip files based on contents, not modification time and filesize by @TravisCarden in #365SECURITY.md by @TravisCarden in #85GOVERNANCE.md by @TravisCarden in #299Internal\Precondition\Service\RsyncIsAvailable more robust by @TravisCarden in #396Full Changelog: v1.2.0...v2.0.0
Declare conflicts with vulnerable versions of symfony/process by @TravisCarden in #395
SECURITY.md by @TravisCarden in #85GOVERNANCE.md by @TravisCarden in #299Internal\Precondition\Service\RsyncIsAvailable more robust by @TravisCarden in #396symfony/process by @TravisCarden in #395Full Changelog: v2.0.0-rc5...v2.0.0-rc6
Remove temporary Symfony Process fork by @TravisCarden in #374
Full Changelog: v2.0.0-rc4...v2.0.0-rc5
Outright fork Symfony Process by @TravisCarden in #371
Full Changelog: v2.0.0-rc3...v2.0.0-rc4
Fix process error output-capturing broken by upstream regression by @TravisCarden in #368
Full Changelog: v2.0.0-rc2...v2.0.0-rc3
Make FileSyncer skip files based on contents, not modification time and filesize by @TravisCarden in #365
FileSyncer skip files based on contents, not modification time and filesize by @TravisCarden in #365Full Changelog: v2.0.0-rc1...v2.0.0-rc2
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →