Skip to content

Commit 263cdef

Browse files
committed
Changelog for the 3.9.0 release
1 parent 3e28323 commit 263cdef

File tree

1 file changed

+121
-1
lines changed

1 file changed

+121
-1
lines changed

CHANGELOG.md

Lines changed: 121 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,123 @@ The file documents changes to the PHP_CodeSniffer project.
107107

108108
_Nothing yet._
109109

110+
## [3.9.0] - 2024-02-16
111+
112+
### Added
113+
- Tokenizer support for PHP 8.3 typed class constants. [#321]
114+
- Additionally, the following sniffs have been updated to support typed class constants:
115+
- Generic.NamingConventions.UpperCaseConstantName [#332]
116+
- Generic.PHP.LowerCaseConstant [#330]
117+
- Generic.PHP.LowerCaseType [#331]
118+
- Thanks to [Juliette Reinders Folmer][@jrfnl] for the patches
119+
- Tokenizer support for PHP 8.3 readonly anonymous classes. [#309]
120+
- Additionally, the following sniffs have been updated to support readonly anonymous classes:
121+
- PSR12.Classes.ClassInstantiation [#324]
122+
- Thanks to [Juliette Reinders Folmer][@jrfnl] for the patches
123+
- New `PHP_CodeSniffer\Sniffs\DeprecatedSniff` interface to allow for marking a sniff as deprecated. [#281]
124+
- If a ruleset uses deprecated sniffs, deprecation notices will be shown to the end-user before the scan starts.
125+
When running in `-q` (quiet) mode, the deprecation notices will be hidden.
126+
- Deprecated sniffs will still run and using them will have no impact on the exit code for a scan.
127+
- In ruleset "explain"-mode (`-e`) an asterix `*` will show next to deprecated sniffs.
128+
- Sniff maintainers are advised to read through the PR description for full details on how to use this feature for their own (deprecated) sniffs.
129+
- Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch
130+
- New `Generic.CodeAnalysis.RequireExplicitBooleanOperatorPrecedence` sniff. [#197]
131+
- Forbid mixing different binary boolean operators within a single expression without making precedence clear using parentheses
132+
- Thanks to [Tim Düsterhus][@TimWolla] for the contribution
133+
- Squiz.PHP.EmbeddedPhp : the sniff will now also examine the formatting of embedded PHP statements using short open echo tags. [#27]
134+
- Includes a new `ShortOpenEchoNoSemicolon` errorcode to allow for selectively ignoring missing semicolons in single line embedded PHP snippets within short open echo tags.
135+
- The other error codes are the same and do not distinguish between what type of open tag was used.
136+
- Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch
137+
- Documentation for the following sniffs:
138+
- Generic.WhiteSpace.IncrementDecrementSpacing
139+
- PSR12.ControlStructures.ControlStructureSpacing
140+
- PSR12.Files.ImportStatement
141+
- PSR12.Functions.ReturnTypeDeclaration
142+
- PSR12.Properties.ConstantVisibility
143+
- Thanks to [Denis Žoljom][@dingo-d] and [Rodrigo Primo][@rodrigoprimo] for the patches
144+
145+
### Changed
146+
- The Performance report can now also be used for a `phpcbf` run. [#308]
147+
- Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch
148+
- Sniff tests which extend the PHPCS native `AbstractSniffUnitTest` class will now show a (non-build-breaking) warning when test case files contain fixable errors/warnings, but there is no corresponding `.fixed` file available in the test suite to verify the fixes against. [#336]
149+
- The warning is only displayed on PHPUnit 7.3.0 and higher.
150+
- The warning will be elevated to a test failure in PHPCS 4.0.
151+
- Thanks to [Dan Wallis][@fredden] for the patch
152+
- The following sniffs have received performance related improvements:
153+
- Squiz.PHP.EmbeddedPhp
154+
- Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch
155+
- Various housekeeping, including improvements to the tests and documentation
156+
- Thanks to [Dan Wallis][@fredden], [Joachim Noreiko][@joachim-n], [Remi Collet][@remicollet], [Rodrigo Primo][@rodrigoprimo] and [Juliette Reinders Folmer][@jrfnl] for their contributions
157+
158+
### Deprecated
159+
- Support for scanning JavaScript and CSS files. See [#2448].
160+
- This also means that all sniffs which are only aimed at JavaScript or CSS files are now deprecated.
161+
- The Javascript and CSS Tokenizers, all Javascript and CSS specific sniffs, and support for JS and CSS in select sniffs which support multiple file types, will be removed in version 4.0.0.
162+
- The abstract `PHP_CodeSniffer\Filters\ExactMatch::getBlacklist()` and `PHP_CodeSniffer\Filters\ExactMatch::getWhitelist()` methods are deprecated and will be removed in the 4.0 release. See [#198].
163+
- In version 4.0, these methods will be replaced with abstract `ExactMatch::getDisallowedFiles()` and `ExactMatch::getAllowedFiles()` methods
164+
- To make Filters extending `ExactMatch` cross-version compatible with both PHP_CodeSniffer 3.9.0+ as well as 4.0+, implement the new `getDisallowedFiles()` and `getAllowedFiles()` methods.
165+
- When both the `getDisallowedFiles()` and `getAllowedFiles()` methods as well as the `getBlacklist()` and `getWhitelist()` are available, the new methods will take precedence over the old methods.
166+
- Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch
167+
- The MySource standard and all sniffs in it. See [#2471].
168+
- The MySource standard and all sniffs in it will be removed in version 4.0.0.
169+
- The `Zend.Debug.CodeAnalyzer` sniff. See [#277].
170+
- This sniff will be removed in version 4.0.0.
171+
- Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch
172+
173+
### Fixed
174+
- Fixed bug [#127] : Squiz.Commenting.FunctionComment : The `MissingParamType` error code will now be used instead of `MissingParamName` when a parameter name is provided, but not its type. Additionally, invalid type hint suggestions will no longer be provided in these cases.
175+
- Thanks to [Dan Wallis][@fredden] for the patch
176+
- Fixed bug [#196] : Squiz.PHP.EmbeddedPhp : fixer will no longer leave behind trailing whitespace when moving code to another line.
177+
- Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch
178+
- Fixed bug [#196] : Squiz.PHP.EmbeddedPhp : will now determine the needed indent with higher precision in multiple situations.
179+
- Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch
180+
- Fixed bug [#196] : Squiz.PHP.EmbeddedPhp : fixer will no longer insert a stray new line when the closer of a multi-line embedded PHP block and the opener of the next multi-line embedded PHP block would be on the same line.
181+
- Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch
182+
- Fixed bug [#235] : Generic.CodeAnalysis.ForLoopWithTestFunctionCall : prevent a potential PHP 8.3 deprecation notice during live coding
183+
- Thanks to [Rodrigo Primo][@rodrigoprimo] for the patch
184+
- Fixed bug [#288] : Generic.WhiteSpace.IncrementDecrementSpacing : error message for post-in/decrement will now correctly inform about new lines found before the operator.
185+
- Thanks to [Rodrigo Primo][@rodrigoprimo] for the patch
186+
- Fixed bug [#296] : Generic.WhiteSpace.ArbitraryParenthesesSpacing : false positive for non-arbitrary parentheses when these follow the scope closer of a `switch` `case`.
187+
- Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch
188+
- Fixed bug [#307] : PSR2.Classes.ClassDeclaration : space between a modifier keyword and the `class` keyword was not checked when the space included a new line or comment.
189+
- Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch
190+
- Fixed bug [#325] : Squiz.Operators.IncrementDecrementUsage : the sniff was underreporting when there was (no) whitespace and/or comments in unexpected places.
191+
- Thanks to [Juliette Reinders Folmer][@jrfnl] for the patch
192+
- Fixed bug [#335] : PSR12.Files.DeclareStatement : bow out in a certain parse error situation to prevent incorrect auto-fixes from being made.
193+
- Thanks to [Dan Wallis][@fredden] for the patch
194+
- Fixed bug [#340] : Squiz.Commenting.ClosingDeclarationComment : no longer adds a stray newline when adding a missing comment.
195+
- Thanks to [Dan Wallis][@fredden] for the patch
196+
197+
### Other
198+
- A "Community cc list" has been introduced to ping maintainers of external standards and integrators for input regarding change proposals for PHP_CodeSniffer which may impact them. [#227]
199+
- For anyone who missed the discussion about this and is interested to be on this list, please feel invited to submit a PR to add yourself.
200+
The list is located in the `.github` folder.
201+
202+
[#2448]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2448
203+
[#2471]: https://github.com/squizlabs/PHP_CodeSniffer/issues/2471
204+
[#27]: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/27
205+
[#127]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/127
206+
[#196]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/196
207+
[#197]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/197
208+
[#198]: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/198
209+
[#227]: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/227
210+
[#235]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/235
211+
[#277]: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/277
212+
[#281]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/281
213+
[#288]: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/288
214+
[#296]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/296
215+
[#307]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/307
216+
[#308]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/308
217+
[#309]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/309
218+
[#321]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/321
219+
[#324]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/324
220+
[#325]: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/325
221+
[#330]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/330
222+
[#331]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/331
223+
[#332]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/332
224+
[#335]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/335
225+
[#336]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/336
226+
[#340]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/340
110227

111228
## [3.8.1] - 2024-01-11
112229

@@ -154,7 +271,6 @@ _Nothing yet._
154271
[#211]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/211
155272
[#226]: https://github.com/PHPCSStandards/PHP_CodeSniffer/pull/226
156273

157-
158274
## [3.8.0] - 2023-12-08
159275

160276
[Squizlabs/PHP_CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) is dead. Long live [PHPCSStandards/PHP_CodeSniffer](https://github.com/PHPCSStandards/PHP_CodeSniffer)!
@@ -5604,6 +5720,7 @@ Additionally, thanks to [Alexander Turek][@derrabus] for consulting on the repo
56045720
-->
56055721

56065722
[Unreleased]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/master...HEAD
5723+
[3.9.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.8.1...3.9.0
56075724
[3.8.1]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.8.0...3.8.1
56085725
[3.8.0]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.7.2...3.8.0
56095726
[3.7.2]: https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/3.7.1...3.7.2
@@ -5796,6 +5913,7 @@ Additionally, thanks to [Alexander Turek][@derrabus] for consulting on the repo
57965913
[@jeffslofish]: https://github.com/jeffslofish
57975914
[@jmarcil]: https://github.com/jmarcil
57985915
[@jnrbsn]: https://github.com/jnrbsn
5916+
[@joachim-n]: https://github.com/joachim-n
57995917
[@joelposti]: https://github.com/joelposti
58005918
[@johanderuijter]: https://github.com/johanderuijter
58015919
[@johnmaguire]: https://github.com/johnmaguire
@@ -5854,6 +5972,7 @@ Additionally, thanks to [Alexander Turek][@derrabus] for consulting on the repo
58545972
[@r3nat]: https://github.com/r3nat
58555973
[@raul338]: https://github.com/raul338
58565974
[@realmfoo]: https://github.com/realmfoo
5975+
[@remicollet]: https://github.com/remicollet
58575976
[@renaatdemuynck]: https://github.com/renaatdemuynck
58585977
[@renan]: https://github.com/renan
58595978
[@rhorber]: https://github.com/rhorber
@@ -5889,6 +6008,7 @@ Additionally, thanks to [Alexander Turek][@derrabus] for consulting on the repo
58896008
[@thomasjfox]: https://github.com/thomasjfox
58906009
[@till]: https://github.com/till
58916010
[@timoschinkel]: https://github.com/timoschinkel
6011+
[@TimWolla]: https://github.com/TimWolla
58926012
[@uniquexor]: https://github.com/uniquexor
58936013
[@valorin]: https://github.com/valorin
58946014
[@VasekPurchart]: https://github.com/VasekPurchart

0 commit comments

Comments
 (0)