Skip to content

Releases: vimeo/psalm

6.4.0

05 Feb 14:11
04f312a
Compare
Choose a tag to compare

What's Changed

Features

Fixes

  • Add array function parameter type providers by @danog in #11247

Full Changelog: 6.3.0...6.4.0

6.3.0

04 Feb 21:06
222dda8
Compare
Choose a tag to compare

This release adds the new psalm-review tool!

What's Changed

Features

Fixes

Full Changelog: 6.2.0...6.3.0

6.2.0

03 Feb 11:04
814dfde
Compare
Choose a tag to compare

This release was possible thanks to a Psalm support contract!

This release adds the new LiteralKeyUnshapedArray issue, controlled by the disallowLiteralKeysOnUnshapedArrays configuration flag (false by default), useful to enforce usage of shaped arrays instead of generic arrays.

What's Changed

Features

Fixes

Full Changelog: 6.1.0...6.2.0

6.1.0

30 Jan 19:42
827971f
Compare
Choose a tag to compare

This release was possible thanks to a Psalm support contract!

This release greatly improves multithreaded mode, fixing some nasty issues and greatly improving efficiency, thanks to efficient task scheduling powered by amphp/parallel (& some custom code to allow usage of copy-on-write optimizations with forks instead of spawning new processes).

This release also adds a runtime check to prevent Psalm from running on Linux systems where VM overcommitting is disabled: Psalm makes heavy use of VM overcommitting (specifically during forking in multithreaded mode) to greatly reduce RAM usage and improve performance.
Note that in the vast majority of Linux systems, VM overcommitting is already enabled by default.

What's Changed

Features

  • Refactor Pool for much more efficient multithreaded parallelism by @danog in #11219
  • Add support for --scan-threads CLI and config flag by @danog in #11216
  • Log files being processed for too long by @danog in #11225
  • Add VM overcommit warning by @danog in #1121

Fixes

Internal changes

Other changes

Full Changelog: 6.0.0...6.1.0

Psalm v6

26 Jan 12:04
Compare
Choose a tag to compare

This is the first release of Psalm v6!

Users are encouraged to switch to Psalm v6 right away, as v5 is not supported anymore.

Also announcing Psalm's new support model: you can support Psalm development by requesting a support contract from Daniil Gentili, the only active maintainer of Psalm.

Support contracts can cover full integration of Psalm into existing codebases, support for Psalm issues and development of additional Psalm features.

See here » for info, pricing and contact information.

Main highlights of Psalm v6:

  • PHP 8.4 support
  • Amp v3 support
  • PHP-Parser v5 support
  • Fully overhauled dictionaries, for much more accurate and always up to date signatures for PHP and extension functions and methods, and much simpler PHP version upgrades.
  • ignoreInternalFunctionFalseReturn and ignoreInternalFunctionNullReturn are now false by default: this means Psalm now warns when a false/null return type of a native function is not explicitly checked.
  • Modernization of the codebase for higher performance.
  • Many other bugfixes and performance improvements.

Plugin authors should consult the changelog for info about BC-breaking changes.

What's Changed

Features

Fixes

Docs

Internal changes

Typos

Other changes

New Contributors

Full Changelog: 5.26.1...6.0.0

5.26.1

09 Sep 16:19
d747f65
Compare
Choose a tag to compare

What's Changed

Fixes

  • Fix JSON formatter crashes with invalid UTF in error messages by @weirdan in #11092

Full Changelog: 5.26.0...5.26.1

5.26.0

08 Sep 17:21
4787eaf
Compare
Choose a tag to compare

What's Changed

Features

Fixes

New Contributors

Full Changelog: 5.25.0...5.26.0

5.25.0

19 Jun 19:58
01a8eb0
Compare
Choose a tag to compare

What's Changed

Features

Fixes

New Contributors

Full Changelog: 5.24.0...5.25.0

5.24.0

01 May 20:25
462c80e
Compare
Choose a tag to compare

What's Changed

Features

  • Allow specifying flags to Codebase::isTypeContainedByType by @danog in #10829
  • Allow more callable types as subtypes of callable by @weirdan in #10805
  • Report parent being used in callable context when the class does not extend anything by @kkmuffme in #10838
  • Report error for additional deprecated arg types in PHP 8.1/8.3 by @kkmuffme in #10824
  • Add MissingClassConstType Issue by @jack-worman in #10828
  • Enforce parameter names for consistent constructors by @kkmuffme in #10821
  • Add misc missing errors for invalid callable methods by @kkmuffme in #10839

Fixes

  • Forbid named arguments for ArrayAcccess methods by @weirdan in #10804
  • Don't crash on invalid templates by @weirdan in #10806
  • report error for single param name mismatch too since named args can even be used then by @kkmuffme in #10822
  • add support for named arguments for filter_var and filter_input by @pilif in #10815
  • When inside isset, make array fetch result nullable by @edsrzf in #10756
  • Promoted properties missing in extended __construct should report PropertyNotSetInConstructor by @kkmuffme in #10817
  • Updating signature of getmxrr() by @ThomasLandauer in #10847
  • Improve string-int juggle consistency in array keys and display for int-like strings in type by @kkmuffme in #10814
  • Fix storage not available in thread for intersection doc types by @simonberger in #10856
  • Don't emit MissingOverrideAttribute for implicit Stringable implementations by @edsrzf in #10858
  • Specify array return type of session_get_cookie_params by @jorgsowa in #10859
  • Unknown @psalm annotation should not make whole docblock invalid by @kkmuffme in #10885
  • Add mail to impure functions list by @smaddock in #10923
  • Update PHP 8.2 Call map delta with refined types for string comparison functions by @gsteel in #10883

Docs

  • document that @psalm-internal works for namespace + class too by @kkmuffme in #10866

Internal changes

  • fix tests running with other than called PHP binary if called with a non-default PHP binary by @kkmuffme in #10842
  • Explicitly set value in config to fix warning in tests by @kkmuffme in #10843
  • [PHP 8.4] Fixes for implicit nullability deprecation by @Ayesh in #10832
  • Throw exception instead of silently logging issues occurred during scan by @danog in #10902

Other changes

New Contributors

Full Changelog: 5.23.1...5.24.0

5.23.1

11 Mar 20:36
8471a89
Compare
Choose a tag to compare

What's Changed

Fixes

  • Fixed analysis of existing static methods if the __callStatic() method exists by @issidorov in #10812

Full Changelog: 5.23.0...5.23.1