Skip to content

v2.12.2

Choose a tag to compare

@github-actions github-actions released this 04 Oct 22:22
· 157 commits to main since this release
Immutable release. Only release title and notes can be modified.
7b0fa97

Fixed

  • installFromZip() no longer extracts over an existing plugin (#351) — PluginManager::installFromZip() extracted the archive first and only checked for an existing plugins row afterwards. A ZIP for an installed slug overwrote that plugin's files and then failed with alreadyInstalled, leaving a mix of old and new files behind a row that still recorded the old version. A ZIP for a plugin that was on disk without a row (a dev clone, or a plugin waiting for installFromDisk()) silently replaced it and the install succeeded. extractZip() now throws PluginInstallationException::alreadyInstalled() before anything is written when the plugins directory already holds an entry of that name (directory, symlink or file) or a plugins row records the slug, mirroring ThemeManager. Both comparisons ignore case, so an Acme upload cannot land beside or over an installed acme. A plugins directory that cannot be listed fails closed. The post-extraction row check stays as a backstop.