Psalm 7.0.0-rc17 has been released: https://github.com/vimeo/psalm/releases/tag/7.0.0-rc17
GitHub
Release 7.0.0-rc17 · vimeo/psalm
What's Changed
Internal changes
[7.x] Perf: don't deep-scan Composer's autoloader machinery by @alies-dev in #12556
[7.x] Perf: append array literal item types in place (O(N²) -> O(...
Internal changes
[7.x] Perf: don't deep-scan Composer's autoloader machinery by @alies-dev in #12556
[7.x] Perf: append array literal item types in place (O(N²) -> O(...
Psalm 7.0.0-rc19 has been released: https://github.com/vimeo/psalm/releases/tag/7.0.0-rc19
GitHub
Release 7.0.0-rc19 · vimeo/psalm
What's Changed
Features
Require the psalm/* plugins and enable them, and the webmozart/assert plugin, for the libraries a project uses by @danog in #12568
Full Changelog: 7.0.0-rc18...7.0.0-rc19
Features
Require the psalm/* plugins and enable them, and the webmozart/assert plugin, for the libraries a project uses by @danog in #12568
Full Changelog: 7.0.0-rc18...7.0.0-rc19
Psalm 7.0.0-rc20 has been released: https://github.com/vimeo/psalm/releases/tag/7.0.0-rc20
GitHub
Release 7.0.0-rc20 · vimeo/psalm
What's Changed
Internal changes
Require psalm/plugin-laravel 4.x, the line built for Psalm 7.x by @alies-dev in #12570
Enable the Laravel plugin when composer.json requires orchestra/testbench...
Internal changes
Require psalm/plugin-laravel 4.x, the line built for Psalm 7.x by @alies-dev in #12570
Enable the Laravel plugin when composer.json requires orchestra/testbench...
For anyone thinking about the release frequency: Psalm will be switching to rolling releases starting from v7, with automated releases every hour or so if CI passes; this already applies now to rcs and betas
Psalm 6.20.4 has been released: https://github.com/vimeo/psalm/releases/tag/6.20.4 #psalm
GitHub
Release 6.20.4 · vimeo/psalm
What's Changed
Fixes
[6.x] Fix: class_alias() of an enum, interface, attribute, trait or type holder crashes with Could not get class storage by @alies-dev in #12518
[6.x] Fix: type imported t...
Fixes
[6.x] Fix: class_alias() of an enum, interface, attribute, trait or type holder crashes with Could not get class storage by @alies-dev in #12518
[6.x] Fix: type imported t...
❤1
Psalm 7.0.0-rc23 has been released: https://github.com/vimeo/psalm/releases/tag/7.0.0-rc23 #psalm
GitHub
Release 7.0.0-rc23 · vimeo/psalm
What's Changed
Fixes
[6.x] Fix: class_alias() of an enum, interface, attribute, trait or type holder crashes with Could not get class storage by @alies-dev in #12518
[6.x] Fix: type imported t...
Fixes
[6.x] Fix: class_alias() of an enum, interface, attribute, trait or type holder crashes with Could not get class storage by @alies-dev in #12518
[6.x] Fix: type imported t...
Psalm 7.0.0-rc25 has been released: https://github.com/vimeo/psalm/releases/tag/7.0.0-rc25 #psalm
GitHub
Release 7.0.0-rc25 · vimeo/psalm
What's Changed
Features
Add an imagick extension stub by @alies-dev in #12720
Fixes
Give the closure of a Class::method string callable the signature of the method by @jirkace in #12708
Don&...
Features
Add an imagick extension stub by @alies-dev in #12720
Fixes
Give the closure of a Class::method string callable the signature of the method by @jirkace in #12708
Don&...
Psalm 7.0.0-rc26 has been released: https://github.com/vimeo/psalm/releases/tag/7.0.0-rc26 #psalm
GitHub
Release 7.0.0-rc26 · vimeo/psalm
What's Changed
Fixes
Fix: psalm --init crash on non-existent composer autoload directories by @alies-dev in #12659
[6.x] Support #[\DelayedTargetValidation] (PHP 8.5) by @alies-dev in #12282
[...
Fixes
Fix: psalm --init crash on non-existent composer autoload directories by @alies-dev in #12659
[6.x] Support #[\DelayedTargetValidation] (PHP 8.5) by @alies-dev in #12282
[...
Psalm 6.20.5 has been released: https://github.com/vimeo/psalm/releases/tag/6.20.5 #psalm
GitHub
Release 6.20.5 · vimeo/psalm
What's Changed
Fixes
[6.x] Treat New Relic PHP ext functions as impure and correct their signatures by @alies-dev in #12293
Fix: psalm --init crash on non-existent composer autoload directorie...
Fixes
[6.x] Treat New Relic PHP ext functions as impure and correct their signatures by @alies-dev in #12293
Fix: psalm --init crash on non-existent composer autoload directorie...
👍1
Psalm 6.20.6 has been released: https://github.com/vimeo/psalm/releases/tag/6.20.6 #psalm
GitHub
Release 6.20.6 · vimeo/psalm
What's Changed
Internal changes
CI: Make the perf PR comment and table more readable by @alies-dev in #12922
Add guzzle/promises to the perf corpus by @alies-dev in #12984
Push the docker imag...
Internal changes
CI: Make the perf PR comment and table more readable by @alies-dev in #12922
Add guzzle/promises to the perf corpus by @alies-dev in #12984
Push the docker imag...
Psalm 7.0.0-rc28 has been released: https://github.com/vimeo/psalm/releases/tag/7.0.0-rc28 #psalm
GitHub
Release 7.0.0-rc28 · vimeo/psalm
What's Changed
Removed
Drop the BC baseline entry for an unreleased storage property by @alies-dev in #13000
Features
Accept PHP 8.6 as an analysis target and require nikic/php-parser ^5.9 b...
Removed
Drop the BC baseline entry for an unreleased storage property by @alies-dev in #13000
Features
Accept PHP 8.6 as an analysis target and require nikic/php-parser ^5.9 b...
🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Security analysis is on by default: types, taints and dead code in one pass, on a rewritten, 10x faster taint engine.
New: NoSQL, LLM prompt and URL injection, php://input and upload names as sources, taint through closures and generators.
Try it: https://psalm.dev/r/7631291cc5
New: NoSQL, LLM prompt and URL injection, php://input and upload names as sources, taint through closures and generators.
Try it: https://psalm.dev/r/7631291cc5
Hack-style purity: declare which side effects code may have (io, time, write-props...) and catch the "pure" function that reads the clock or edits its input.
Purity templates make array_map() and your interfaces as pure as what you pass them.
Try it: https://psalm.dev/r/be7eb39420
Purity templates make array_map() and your interfaces as pure as what you pass them.
Try it: https://psalm.dev/r/be7eb39420
Dead code detection on a reference graph: if nothing reachable uses it, Psalm finds it. Classes that only call each other, cycles included, and exceptions you create but never throw.
Try it: https://psalm.dev/r/31c62c069b
Try it: https://psalm.dev/r/31c62c069b
Template defaults for classes, functions and methods: Result<int> now means Result<int, RuntimeException>.
Libraries can add a template without breaking the types their users already wrote.
Try it: https://psalm.dev/r/4e21eb262e
Libraries can add a template without breaking the types their users already wrote.
Try it: https://psalm.dev/r/4e21eb262e