Jonas L.
f57002ed92
chore: update pre-commit hooks ( #3193 )
...
### Description
Update pre-commit hooks and fix formatting.
2025-08-09 16:13:02 +02:00
renovate[bot]
eb9b8bdf81
chore(deps): update dependency friendsofphp/php-cs-fixer to <3.85.2 ( #3188 )
...
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
|
[friendsofphp/php-cs-fixer](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer )
| `<3.64.1` -> `<3.85.2` |
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>PHP-CS-Fixer/PHP-CS-Fixer (friendsofphp/php-cs-fixer)</summary>
###
[`v3.85.1`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3851 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.85.0...v3.85.1 )
- chore: update legacy deps
([#​8902](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8902 ))
###
[`v3.85.0`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3850 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.84.0...v3.85.0 )
- feat: `ArrayIndentationFixer` - handle closures inside attributes
([#​8888](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8888 ))
- feat: `NullableTypeDeclarationFixer` - support final promoted
properties
([#​8885](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8885 ))
- feat: `OperatorLinebreakFixer` - support pipe operator
([#​8891](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8891 ))
- feat: `PhpdocTypesFixer` - support multiline array shapes
([#​8893](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8893 ))
- fix: always reach 100% of checked files
([#​8861](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8861 ))
- fix: `BracesPositionFixer` - handle property hooks correctly
([#​8886](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8886 ))
- fix: `NullableTypeDeclarationFixer` - handle abstract and final
properties
([#​8876](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8876 ))
- fix: `PhpdocLineSpanFixer` - handle promoted properties
([#​8897](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8897 ))
- fix: `PhpUnitDataProviderNameFixer` - fix for multiple providers
defined by attributes for one test method
([#​8849](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8849 ))
- fix: `TernaryOperatorSpacesFixer` - handle `instanceof static`
([#​8879](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8879 ))
- fix: `TypeDeclarationSpacesFixer` - handle asymmetric visibility and
final properties
([#​8900](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8900 ))
- chore: add initial PHP 8.5 integration test
([#​8871](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8871 ))
- chore: add tests for public API methods
([#​8895](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8895 ))
- chore: apply changes from `PhpdocTypesFixer` for multiline array
shapes
([#​8894](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8894 ))
- chore: baseline files without error count
([#​8870](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8870 ))
- chore: cleanup `PhpCsFixer\DocBlock\Annotation`
([#​8892](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8892 ))
- chore: Command name/descriptions - use attribute and static properties
([#​8862](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8862 ))
- chore: Commands - unify way to define help content
([#​8881](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8881 ))
- chore: ConfigurationResolver - add few missing v4 TODOs
([#​8882](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8882 ))
- chore: fix `booleanNot.exprNotBoolean` errors
([#​8869](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8869 ))
- chore: fix/optimize some phpdocs
([#​8889](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8889 ))
- chore: more unification of PHP CS Fixer naming
([#​8854](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8854 ))
- chore: PHPStan baseline - use
`shipmonk/phpstan-baseline-per-identifier`
([#​8844](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8844 ))
- chore: remove dead code
([#​8896](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8896 ))
- chore: remove unused constants
([#​8864](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8864 ))
- chore: remove useless `@var` annotations
([#​8867](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8867 ))
- chore: simplify `ClassDefinitionFixer`
([#​8868](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8868 ))
- chore: unify usage of image versions to not mention minor
([#​8860](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8860 ))
- chore: update PHPStan
([#​8898](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8898 ))
- chore: update PHPStan extension for `Preg::match`
([#​8872](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8872 ))
- chore: wrong return values in `ErrorsManager`
([#​8863](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8863 ))
- chore: `OrderedInterfacesFixer` - make code more PHPStan friendly
([#​8866](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8866 ))
- chore: `Token` - add `@phpstan-assert-if-true`
([#​8865](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8865 ))
- deps: bump phpstan/phpstan from 2.1.17 to 2.1.18 in /dev-tools in the
phpstan group
([#​8859](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8859 ))
- deps: bump the phpstan group in /dev-tools with 4 updates
([#​8890](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8890 ))
- docs: better document reprecated rule sets
([#​8878](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8878 ))
- docs: cleanup docs for PHP 7
([#​8873](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8873 ))
- docs: cleanup docs for PHP < 7.4
([#​8855](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8855 ))
- docs: ListSetsCommand,FixCommand - document possible formats in
Command's definitions
([#​8880](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8880 ))
- DX: Explicitly prevent touching non-monolithic files
([#​6517](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6517 ))
###
[`v3.84.0`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3840 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.83.0...v3.84.0 )
- feat: Introduce `NoUselessPrintfFixer`
([#​8820](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8820 ))
- feat: `CastSpacesFixer` - support `(void)` cast
([#​8851](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8851 ))
- feat: `NewExpressionParenthesesFixer` - add to `PHP84MigrationSet`
([#​8788](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8788 ))
- feat: `VisibilityRequiredFixer` - support final promoted properties
([#​8835](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8835 ))
- fix: `PhpdocToParamTypeFixer` - do not convert types from
`phpstan-type`, `phpstan-import-type`, `psalm-type` and
`psalm-import-type`
([#​8842](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8842 ))
- fix: `PhpdocToPropertyTypeFixer` - do not convert types from
`phpstan-type`, `phpstan-import-type`, `psalm-type` and
`psalm-import-type`
([#​8847](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8847 ))
- fix: `PhpdocToReturnTypeFixer` - do not convert types from
`phpstan-type`, `phpstan-import-type`, `psalm-type` and
`psalm-import-type`
([#​8846](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8846 ))
- chore: introduce FCT for few missing tokens
([#​8845](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8845 ))
- chore: remove useless static variables for const content
([#​8836](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8836 ))
- chore: simplify `isGivenKind`/`equals`/`equalsAll` calls
([#​8843](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8843 ))
- docs: Support for new PHP version
([#​8780](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8780 ))
###
[`v3.83.0`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3830 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.82.2...v3.83.0 )
- feat: Suppress enable parallel runner message when only 1 core is
available
([#​8833](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8833 ))
- fix: BracesPositionFixer - fix performance issue for massive files
with CT::T\_CURLY\_CLOSE
([#​8830](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8830 ))
- fix: `NoUnreachableDefaultArgumentValueFixer` - do not crash on
property hook
([#​8838](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8838 ))
- chore: Add CS commit to .git-blame-ignore-revs
- chore: apply native\_constant\_invocation for build-in consts
([#​8837](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8837 ))
- chore: configure native\_constant\_invocation
([#​8840](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8840 ))
- chore: early compat check with Symfony 8
([#​8827](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8827 ))
- chore: `FullyQualifiedStrictTypesFixer` - reduce function calls
([#​8834](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8834 ))
- CI: mark jobs allow-to-fail declarative, instead of imperative check
([#​8829](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8829 ))
###
[`v3.82.2`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3822 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.82.1...v3.82.2 )
- fix: `ClassAttributesSeparationFixer` - handle method `get` aliased in
trait import
([#​8822](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8822 ))
- fix: `LowercaseStaticReferenceFixer` - do not touch enum's cases
([#​8824](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8824 ))
- fix: `StatementIndentationFixer` - multi constant statement containing
array
([#​8825](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8825 ))
- fix: `VisibilityRequiredFixer` - handle promoted property with
visibility and reference, but without type
([#​8823](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8823 ))
###
[`v3.82.1`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3821 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.82.0...v3.82.1 )
- fix: `OrderedClassElementsFixer` - handle property hooks
([#​8817](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8817 ))
- fix: `SingleClassElementPerStatementFixer` - fix for property hooks
([#​8816](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8816 ))
###
[`v3.82.0`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3820 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.81.0...v3.82.0 )
- chore: cleanup `FCTTest`
([#​8808](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8808 ))
- chore: PhpdocOrderFixer.php - CPU optimization
([#​8812](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8812 ))
- deps: update box
([#​8795](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8795 ))
- docs: fix whitespace around code examples and reference sections in
rules' docs
([#​8810](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8810 ))
- feat: `MagicConstantCasingFixer` - support `__PROPERTY__`
([#​8809](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8809 ))
- feat: `PhpUnitDataProviderNameFixer` - support data providers defined
by both annotation and attribute for the same test
([#​8811](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8811 ))
- fix: `PhpdocToParamTypeFixer` - always handle reference in PHPDoc
([#​8813](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8813 ))
###
[`v3.81.0`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3810 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.80.0...v3.81.0 )
- feat: `VisibilityRequiredFixer` - handle more than only the first
promoted property
([#​8801](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8801 ))
- fix: `BracesPositionFixer` - do not crash when variable is terminated
by PHP close tag
([#​8804](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8804 ))
- fix: `PhpUnitDataProviderMethodOrderFixer` - handle data provider
defined by both annotation and attribute
([#​8805](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8805 ))
- fix: `PhpUnitInternalClassFixer` - skip adding `@internal` on
instantiation of anonymous classes
([#​8807](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8807 ))
- fix: `VisibilityRequiredFixer` - handle promoted parameter passed by
reference
([#​8799](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8799 ))
- chore: add automatically to milestone "PHP 8.5 initial compatibility"
if label is "topic/PHP8.5"
([#​8806](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8806 ))
- chore: fail "Deployment checks" if any job from `tests` failed
([#​8792](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8792 ))
- docs: update docs about --allow-unsupported-php-version
([#​8796](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8796 ))
###
[`v3.80.0`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3800 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.79.0...v3.80.0 )
- feat: PHP 8.4 compatibility support
([#​8300](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8300 ))
###
[`v3.79.0`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3790 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.78.1...v3.79.0 )
- chore: `VisibilityRequiredFixerTest` - run tests in correct PHP
version
([#​8790](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8790 ))
- feat: `BracesPositionFixer` - do not touch one-line properties with
hooks
([#​8785](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8785 ))
- feat: `PhpUnitDataProvider(.+)Fixer` - support attributes
([#​8197](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8197 ))
###
[`v3.78.1`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3781 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.78.0...v3.78.1 )
- fix: `VisibilityRequiredFixer` - do not add `public` incorrectly
([#​8787](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8787 ))
###
[`v3.78.0`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3780 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.77.0...v3.78.0 )
- chore: `VisibilityRequiredFixer` - document behaviour for asymmetric
visibility with only set-visibility
([#​8783](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8783 ))
- feat: `BracesPositionFixer` - support property hooks
([#​8782](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8782 ))
- feat: `VisibilityRequiredFixer` - support promoted property without
visibility
([#​8773](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8773 ))
- fix: `NativeFunctionInvocationFixer` - fix global function `set`
called in array key
([#​8568](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8568 ))
- fix: `NoBreakCommentFixer` - handle function having return type
([#​8767](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8767 ))
- fix: `StatementIndentationFixer` - handle functions `set` and `get`
(like property hooks, but not)
([#​8576](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8576 ))
- fix: `StaticPrivateMethodFixer` - handle nested calls
([#​8768](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8768 ))
###
[`v3.77.0`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3770 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.76.0...v3.77.0 )
- chore: add automatically to milestone "PHP 8.4 initial compatibility"
if label is "topic/PHP8.4"
([#​8770](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8770 ))
- chore: Add CS commit to .git-blame-ignore-revs
- chore: fix adding automatically to milestone "PHP 8.4 initial
compatibility" if label is "topic/PHP8.4"
([#​8775](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8775 ))
- chore: fix adding automatically to milestone "PHP 8.4 initial
compatibility" if label is "topic/PHP8.4"
([#​8776](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8776 ))
- chore: move all indicators to analyzers
([#​8772](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8772 ))
- chore: move PHP-compat integration tests
([#​8781](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8781 ))
- chore: partially apply NoExtraBlankLinesFixer:tokens.comma
([#​8762](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8762 ))
- chore: reconfigure phpdoc\_order in local config
([#​8220](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8220 ))
- feat: PhpdocOrderFixer - extend support for phpstan and psalm
annotations
([#​8777](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8777 ))
- feat: support anonymous classes extending `TestCase` in PHPUnit fixers
([#​8707](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8707 ))
- feat: `CommentToPhpdocFixer` and `PhpdocToCommentFixer` - support
asymmetric visibility
([#​8774](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8774 ))
- feat: `NoEmptyStatementFixer` - support abstract property hooks
([#​8766](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8766 ))
- feat: `NullableTypeDeclarationForDefaultNullValueFixer` - support
asymmetric visibility in the constructor
([#​8604](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8604 ))
- feat: `ProtectedToPrivateFixer` - add support for promoted properties
([#​8608](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8608 ))
- fix: `PhpUnitAttributesFixer` - correctly remove annotations when
configured `['keep_annotations' => false]`
([#​8577](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8577 ))
- fix: `ProtectedToPrivateFixer` - fix asymmetric visibility with only
set visibility
([#​8763](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8763 ))
###
[`v3.76.0`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3760 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.75.0...v3.76.0 )
- chore(release): bump php ci alpine version
([#​8581](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8581 ))
- chore: add missing priority test for `BracesPositionFixer` and
`MultilinePromotedPropertiesFixer`
([#​8596](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8596 ))
- chore: add more assertions in tests
([#​8740](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8740 ))
- chore: bump dependencies version to maximum for non-newest MAJOR
version
([#​8753](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8753 ))
- chore: cast types in tests
([#​8742](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8742 ))
- chore: cleanup booleans use in tests
([#​8738](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8738 ))
- chore: cleanup code in tests
([#​8745](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8745 ))
- chore: cleanup PsrAutoloadingFixerTest.php keywords handling, as
always defined currently
([#​8730](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8730 ))
- chore: cleanup `AlignMultilineCommentFixerTest`
([#​8688](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8688 ))
- chore: cleanup `BinaryOperatorSpacesFixerTest`
([#​8687](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8687 ))
- chore: cleanup `BlankLineBeforeStatementFixerTest`
([#​8685](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8685 ))
- chore: cleanup `ClassDefinitionFixerTest`
([#​8684](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8684 ))
- chore: cleanup `ClassDefinitionFixer`
([#​8580](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8580 ))
- chore: cleanup `ConcatSpaceFixerTest`
([#​8683](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8683 ))
- chore: cleanup `DoctrineAnnotationArrayAssignmentFixerTest`
([#​8621](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8621 ))
- chore: cleanup `DoctrineAnnotationBracesFixerTest`
([#​8623](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8623 ))
- chore: cleanup `DoctrineAnnotationIndentationFixerTest`
([#​8620](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8620 ))
- chore: cleanup `DoctrineAnnotationSpacesFixerTest`
([#​8624](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8624 ))
- chore: cleanup `EchoTagSyntaxFixerTest`
([#​8681](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8681 ))
- chore: cleanup `file_get_contents` return types
([#​8735](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8735 ))
- chore: cleanup `FunctionDeclarationFixerTest`
([#​8680](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8680 ))
- chore: cleanup `FunctionToConstantFixerTest`
([#​8618](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8618 ))
- chore: cleanup `GeneralPhpdocTagRenameFixerTest`
([#​8627](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8627 ))
- chore: cleanup `GlobalNamespaceImportFixerTest`
([#​8679](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8679 ))
- chore: cleanup `HeaderCommentFixerTest`
([#​8677](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8677 ))
- chore: cleanup `HeaderCommentFixerTest` (restore `@requires` for PHP
8.1)
([#​8678](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8678 ))
- chore: cleanup `IncrementStyleFixerTest`
([#​8676](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8676 ))
- chore: cleanup `IndentationTypeFixerTest`
([#​8675](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8675 ))
- chore: cleanup `ListSyntaxFixerTest`
([#​8674](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8674 ))
- chore: cleanup `MethodArgumentSpaceFixerTest`
([#​8673](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8673 ))
- chore: cleanup `MultilineWhitespaceBeforeSemicolonsFixerTest`
([#​8614](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8614 ))
- chore: cleanup `NativeConstantInvocationFixerTest`
([#​8672](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8672 ))
- chore: cleanup `NewWithParenthesesFixerTest`
([#​8592](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8592 ))
- chore: cleanup `NoBlankLinesAfterPhpdocFixerTest`
([#​8671](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8671 ))
- chore: cleanup `NoBreakCommentFixerTest`
([#​8670](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8670 ))
- chore: cleanup `NoClosingTagFixerTest`
([#​8669](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8669 ))
- chore: cleanup `NoEmptyStatementFixerTest`
([#​8667](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8667 ))
- chore: cleanup `NoSpacesAroundOffsetFixerTest`
([#​8666](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8666 ))
- chore: cleanup `NoUnneededControlParenthesesFixerTest`
([#​8665](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8665 ))
- chore: cleanup `NoUselessElseFixerTest`
([#​8664](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8664 ))
- chore: cleanup `PhpdocAddMissingParamAnnotationFixerTest`
([#​8663](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8663 ))
- chore: cleanup `PhpdocNoEmptyReturnFixerTest`
([#​8662](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8662 ))
- chore: cleanup `PhpdocNoPackageFixerTest`
([#​8626](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8626 ))
- chore: cleanup `PhpdocOrderByValueFixerTest`
([#​8661](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8661 ))
- chore: cleanup `PhpdocOrderFixerTest`
([#​8660](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8660 ))
- chore: cleanup `PhpdocParamOrderFixerTest`
([#​8659](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8659 ))
- chore: cleanup `PhpdocReturnSelfReferenceFixerTest`
([#​8658](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8658 ))
- chore: cleanup `PhpdocSeparationFixerTest`
([#​8657](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8657 ))
- chore: cleanup `PhpdocSummaryFixerTest`
([#​8654](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8654 ))
- chore: cleanup `PhpdocTrimFixerTest`
([#​8653](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8653 ))
- chore: cleanup `PhpdocTypesOrderFixerTest`
([#​8652](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8652 ))
- chore: cleanup `PhpdocVarWithoutNameFixerTest`
([#​8617](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8617 ))
- chore: cleanup `PhpUnitConstructFixerTest`
([#​8651](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8651 ))
- chore: cleanup `PhpUnitDedicateAssertFixerTest`
([#​8650](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8650 ))
- chore: cleanup `PhpUnitTestCaseStaticMethodCallsFixerTest`
([#​8649](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8649 ))
- chore: cleanup `Preg` issues
([#​8720](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8720 ))
- chore: cleanup `ReturnAssignmentFixerTest`
([#​8648](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8648 ))
- chore: cleanup `ReturnTypeDeclarationFixerTest`
([#​8647](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8647 ))
- chore: cleanup `SingleImportPerStatementFixerTest`
([#​8645](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8645 ))
- chore: cleanup `SingleLineCommentStyleFixerTest`
([#​8644](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8644 ))
- chore: cleanup `SingleSpaceAroundConstructFixerTest`
([#​8642](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8642 ))
- chore: cleanup `SpaceAfterSemicolonFixerTest`
([#​8625](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8625 ))
- chore: cleanup `SpacesInsideParenthesesFixerTest`
([#​8641](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8641 ))
- chore: cleanup `StatementIndentationFixerTest`
([#​8640](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8640 ))
- chore: cleanup `YodaStyleFixerTest`
([#​8638](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8638 ))
- chore: do not check if `JSON_INVALID_UTF8_IGNORE` is defined because
it always is (since PHP 7.2)
([#​8709](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8709 ))
- chore: handle saveXML failures explicitly
([#​8755](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8755 ))
- chore: ignore remaining PHPStan (false positive) issues
([#​8746](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8746 ))
- chore: improve PHPDoc's types in
([#​8741](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8741 ))
- chore: improve PHPDocs in tests
([#​8736](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8736 ))
- chore: improve PHPDocs in tests
([#​8744](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8744 ))
- chore: improve type of `Token::equalsAny`
([#​8743](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8743 ))
- chore: lint yaml files
([#​8622](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8622 ))
- chore: MultilinePromotedPropertiesFixer - mark new fixer introduced in
[#​8595](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8595 )
as experimental
([#​8758](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8758 ))
- chore: PHPMD - cleanup `UnusedLocalVariable` for `foreach`
([#​8637](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8637 ))
- chore: refactor FCT
([#​8714](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8714 ))
- chore: remove unused local variables in src
([#​8600](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8600 ))
- chore: remove unused local variables in tests
([#​8599](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8599 ))
- chore: remove useless test from `AliasedFixerOptionTest`
([#​8739](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8739 ))
- chore: remove `defined` calls from tests
([#​8708](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8708 ))
- chore: restore original type of Token::equalsAny, partially reverts
[#​8743](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8743 )
([#​8759](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8759 ))
- chore: run mutation tests on PHP 8.4
([#​8594](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8594 ))
- chore: solve one of phpstan warnings
([#​8754](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8754 ))
- chore: update dev tools
([#​8737](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8737 ))
- chore: update PHPUnit config
([#​8721](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8721 ))
- chore: update `checkbashisms` to 2.25.12
([#​8694](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8694 ))
- chore: update `checkbashisms` to 2.25.14
([#​8731](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8731 ))
- chore: use PHPStan type in data providers
([#​8605](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8605 ))
- chore: use `foreach` values
([#​8636](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8636 ))
- chore: use `Preg` class everywhere
([#​8689](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8689 ))
- CI: add self-approved label
([#​8757](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8757 ))
- CI: run on PHP 8.5
([#​8713](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8713 ))
- deps: bump alpine from 3.21.3 to 3.22.0
([#​8724](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8724 ))
- deps: bump alpine from 3.21.3 to 3.22.0
([#​8726](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8726 ))
- deps: bump ergebnis/composer-normalize from 2.45.0 to 2.46.0 in
/dev-tools
([#​8578](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8578 ))
- deps: bump ergebnis/composer-normalize from 2.46.0 to 2.47.0 in
/dev-tools
([#​8584](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8584 ))
- deps: bump phpstan/phpstan from 2.1.11 to 2.1.12 in /dev-tools in the
phpstan group
([#​8583](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8583 ))
- deps: bump phpstan/phpstan-symfony from 2.0.3 to 2.0.4 in /dev-tools
in the phpstan group
([#​8557](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8557 ))
- deps: bump the phpstan group across 1 directory with 2 updates
([#​8682](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8682 ))
- deps: upgrade docker deps
([#​8566](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8566 ))
- docs: extend and fix links to code
([#​8639](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8639 ))
- docs: Update SECURITY.md
([#​8716](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8716 ))
- docs: VisibilityRequiredFixer - extend docs
([#​8561](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8561 ))
- docs: `VisibilityRequiredFixer` - update docs
([#​8563](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8563 ))
- DX: add `symfony/polyfill-php84`
([#​8555](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8555 ))
- DX: always use the latest stable `checkbashisms` package
([#​8732](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8732 ))
- DX: check for `preg_` functions in tests
([#​8571](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8571 ))
- DX: cleanup `BlankLinesBeforeNamespaceFixerTest`
([#​8573](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8573 ))
- DX: cleanup `NativeFunctionInvocationFixerTest`
([#​8567](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8567 ))
- DX: cleanup `NoUselessConcatOperatorFixerTest`
([#​8572](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8572 ))
- DX: cleanup `SemicolonAfterInstructionFixerTest`
([#​8570](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8570 ))
- DX: fix data providers
([#​8693](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8693 ))
- DX: introduce `FCT` class for tokens not present in the lowest
supported PHP version
([#​8706](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8706 ))
- DX: move `symfony/polyfill-php84` to dev deps
([#​8559](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8559 ))
- DX: support PHP 8.4 in local Docker development environment
([#​8564](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8564 ))
- DX: trim array/yield keys
([#​8460](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8460 ))
- DX: use `WhitespacesAwareFixerInterface` only when needed
([#​8541](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8541 ))
- feat: add `NewExpressionParenthesesFixer`
([#​8246](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8246 ))
- feat: allowUnsupportedPhpVersion
([#​8733](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8733 ))
- feat: introduce `MultilinePromotedPropertiesFixer`
([#​8595](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8595 ))
- feat: Introduce `StaticPrivateMethodFixer`
([#​4557](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/4557 ))
- feat: `BracesPositionFixer` - support property hooks in promoted
properties
([#​8613](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8613 ))
- feat: `ClassAttributesSeparationFixer` - add support for property
hooks
([#​8610](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8610 ))
- feat: `GlobalNamespaceImportFixer` - analyze and fix more annotations
with types
([#​8593](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8593 ))
- feat: `LowercaseKeywordsFixer` - support asymmetric visibility
([#​8607](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8607 ))
- feat: `NoExtraBlankLinesFixer` - add comma to supported tokens
([#​8655](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8655 ))
- feat: `NoSuperfluousPhpdocTagsFixer` - support asymmetric visibility
([#​8700](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8700 ))
- feat: `NullableTypeDeclarationFixer` - support asymmetric visibility
([#​8697](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8697 ))
- feat: `OrderedClassElementsFixer` - add support for property hooks for
abstract properties
([#​8574](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8574 ))
- feat: `OrderedTypesFixer` - add support for asymmetric visibility
([#​8552](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8552 ))
- feat: `OrderedTypesFixer` - support asymmetric visibility in promoted
property
([#​8602](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8602 ))
- feat: `PhpdocAddMissingParamAnnotationFixer` - support asymmetric
visibility
([#​8701](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8701 ))
- feat: `PhpdocLineSpanFixer` - support asymmetric visibility
([#​8702](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8702 ))
- feat: `PhpdocVarWithoutNameFixer` - support asymmetric visibility
([#​8704](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8704 ))
- feat: `ProtectedToPrivateFixer` - add support for asymmetric
visibility
([#​8569](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8569 ))
- feat: `SingleClassElementPerStatementFixer` - support asymmetric
visibility
([#​8696](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8696 ))
- feat: `SingleSpaceAroundConstructFixer` - add support for asymmetric
visibility
([#​8699](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8699 ))
- feat: `StaticLambdaFixer` - support functions having classy elements
with `$this`
([#​8728](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8728 ))
- feat: `VisibilityRequiredFixer` - support ordering set-visibility
modifier
([#​8606](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8606 ))
- fix(dependabot): convert time values to string types
([#​8634](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8634 ))
- fix: "array" type must have no prefix to be fixable to "list"
([#​8692](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8692 ))
- fix: "min"/"max" in int generics must never be prefixed by backslash
([#​8691](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8691 ))
- fix: Allow non-doc comment on opening inline brace line
([#​8690](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8690 ))
- fix: `ConstantCaseFixer` - do not touch namespaces starting with
`Null\`
([#​8752](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8752 ))
- fix: `LowercaseStaticReferenceFixer` - do not change global constants
([#​8727](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8727 ))
- fix: `MultilineWhitespaceBeforeSemicolonsFixer` - do not touch
multiline constants definitions
([#​8615](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8615 ))
- fix: `NewWithParenthesesFixer` - fix `new` without parentheses on PHP
8.4 syntax
([#​8588](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8588 ))
- fix: `NoMultipleStatementsPerLineFixer` - handle `set` and `get` in
different casing in property hooks
([#​8558](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8558 ))
- fix: `NoUnusedImportsFixer` - handle imported class name with
underscore before or after it in PHPDoc
([#​8598](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8598 ))
- fix: `PhpUnitDedicateAssertFixer` - fix for `assertFalse` with
`instanceof`
([#​8597](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8597 ))
- fix: `PhpUnitNamespacedFixer` must rune before
`NoUnneededImportAliasFixer`
([#​8579](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8579 ))
- fix: `PhpUnitTestClassRequiresCoversFixer` - do not add
`@coversNothing` annotation when `CoversTrait` attribute is used
([#​8734](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8734 ))
- fix: `VisibilityRequiredFixer` - add support for asymmetric visibility
([#​8586](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8586 ))
- refactor: avoid unused local variables in tests
([#​8609](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8609 ))
- test: add more cases to `PhpUnitMethodCasingFixerTest`
([#​8551](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8551 ))
- test: fix "unused local variables `$token`"
([#​8603](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8603 ))
- test: More verbose error output for integration test
([#​8565](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8565 ))
- Update SECURITY.md
###
[`v3.75.0`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3750 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.74.0...v3.75.0 )
- feat: `ClassAttributesSeparationFixer` - add support for asymmetric
visibility
([#​8518](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8518 ))
- fix: `NativeFunctionInvocationFixer` - fix for property hooks
([#​8540](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8540 ))
- chore: add return types for data providers for fixers
([#​8542](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8542 ))
- chore: add return types for data providers for non-fixers
([#​8543](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8543 ))
- chore: add return types for remaining data providers
([#​8544](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8544 ))
- chore: make data providers key type `int` if all the keys are strings
([#​8550](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8550 ))
- chore: make data providers key type `string` if all the keys are
strings
([#​8545](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8545 ))
- chore: SwitchContinueToBreakFixerTest - improve test case
descriptions/typehint
([#​8546](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8546 ))
- chore: `FunctionsAnalyzerTest` cleanup
([#​8539](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8539 ))
- deps: bump the phpstan group in /dev-tools with 2 updates
([#​8537](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8537 ))
- test: ProjectCodeTest::testDataProvidersDeclaredReturnType - allow for
int as iterable keys
([#​8548](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8548 ))
###
[`v3.74.0`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3740 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.73.1...v3.74.0 )
- feat: add `--format=@​auto`
([#​8513](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8513 ))
- fix: `BracesPositionFixer` - do not create two consecutive whitespace
tokens
([#​8496](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8496 ))
- fix: `MbStrFunctionsFixer` - fix imports with leading backslash
([#​8507](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8507 ))
- fix: `NoUnreachableDefaultArgumentValueFixer` - do not crash on
property hook
([#​8512](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8512 ))
- fix: `OrderedImportsFixer` - do not take the braces part in grouped
imports into account
([#​8459](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8459 ))
- fix: `OrderedImportsFixer` - fix syntax error with grouped use
statement and multiple use with comma
([#​8483](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8483 ))
- fix: `PhpUnitAttributesFixer` - handle parentheses after data provider
method name
([#​8510](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8510 ))
- fix: `PhpUnitMethodCasingFixer` - do not touch anonymous class
([#​8463](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8463 ))
- chore: make options that have default and allowed sets the same size
the same array
([#​8529](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8529 ))
- chore: update return type of `FixerOptionInterface::getAllowedValues`
([#​8530](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8530 ))
- chore: `Preg` - improve types
([#​8527](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8527 ))
- CI: fix code coverage job
([#​8520](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8520 ))
- CI: try MacOS job without ParaUnit
([#​8528](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8528 ))
- deps: update PHPStan
([#​8531](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8531 ))
- deps: upgrade `PHPStan/*`
([#​8524](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8524 ))
###
[`v3.73.1`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3731 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.73.0...v3.73.1 )
- fix: `OrderedClassElementsFixer` - do not crash on property hook
([#​8517](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8517 ))
###
[`v3.73.0`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3730 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.72.0...v3.73.0 )
- feat: add support for asymmetric visibility to Doctrine's fixers
([#​8415](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8415 ))
- fix: `GeneralPhpdocTagRenameFixer` - do not rename keys in array shape
definition
([#​8477](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8477 ))
- fix: `MethodArgumentSpaceFixer` - handle when nested in HTML
([#​8503](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8503 ))
- chore: update `checkbashisms` to 2.25.5
([#​8519](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8519 ))
- DX: cleanup `NoExtraBlankLinesFixerTest`
([#​8505](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8505 ))
- DX: for duplicated test methods check methods without parameters
([#​8508](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8508 ))
- DX: remove more duplicated test methods
([#​8506](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8506 ))
- refactor: `Tokenizer` hash metode using `xxHash`
([#​8491](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8491 ))
- refactor: `TokensAnalyzerTest` - better test `isArray` and
`isArrayMultiLine`
([#​8504](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8504 ))
- test: run code coverage on PHP 8.4
([#​8448](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8448 ))
###
[`v3.72.0`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3720 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.71.0...v3.72.0 )
- feat: `StatementIndentationFixer` - handle property hooks
([#​8492](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8492 ))
- fix: `MbStrFunctionsFixer` - fix imports
([#​8474](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8474 ))
- fix: `TrailingCommaInMultilineFixer` - handle empty match body
([#​8480](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8480 ))
- fix: `VisibilityRequiredFixer` - handle property hooks
([#​8495](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8495 ))
- deps: upgrade few dev-deps
([#​8490](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8490 ))
- deps: Upgrade PHPStan to 2.1.8
([#​8489](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8489 ))
- DX: add trailing comma to multiline auto-generated types
([#​8499](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8499 ))
- refactor: generalize CodeHasher into Hasher
([#​8500](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8500 ))
- refactor: Runner - unify paths used when using parallel runner
([#​8488](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8488 ))
- refactor: use Hasher instead of md5 directly
([#​8501](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8501 ))
###
[`v3.71.0`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3710 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.70.2...v3.71.0 )
- feat: OrderedImportsFixer - deprecate length sorting algorithm
([#​8473](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8473 ))
- fix: `BinaryOperatorSpacesFixer` - do not break alignment of UTF-8
array keys
([#​8484](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8484 ))
- fix: `PhpdocAlignFixer` - align correctly type with UTF8 characters
([#​8486](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8486 ))
- fix: `SingleSpaceAroundConstructFixer` - handle alternative syntax
([#​8317](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8317 ))
- fix: `StatementIndentationFixer` - return in braceless if
([#​8479](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8479 ))
- chore: update type in
`SingleSpaceAroundConstructFixerTest::provideFixWithElseIfCases`
([#​8481](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8481 ))
- chore: update type in
`SingleSpaceAroundConstructFixerTest::provideFixWithIfCases`
([#​8482](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8482 ))
- deps: bump phpstan/phpstan from 2.1.6 to 2.1.7 in /dev-tools in the
phpstan group
([#​8485](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8485 ))
- DX: cleanup `PhpdocNoAliasTagFixerTest`
([#​8476](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8476 ))
- refactor: add `FullyQualifiedNameAnalyzer`
([#​8048](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8048 ))
- refactor: codeHash - update when it's (re-)generated
([#​8470](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8470 ))
- refactor: `SwitchAnalyzer` - improve performance
([#​8407](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8407 ))
- test: NameQualifiedTransformerTest - correct test case
([#​8471](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8471 ))
###
[`v3.70.2`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3702 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.70.1...v3.70.2 )
- deps: upgrade deep dev-tools deps
([#​8472](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8472 ))
- fix: `MbStrFunctionsFixer` must run before
`NativeFunctionInvocationFixer`
([#​8466](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8466 ))
- fix: `MethodArgumentSpaceFixer` - fix nested calls for
`ensure_fully_multiline` option
([#​8469](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8469 ))
###
[`v3.70.1`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3701 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.70.0...v3.70.1 )
- fix: `PhpUnitSizeClassFixer` must run before `PhpUnitAttributesFixer`
([#​8457](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8457 ))
- DX: cleanup `OrderedImportsFixerTest`
([#​8458](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8458 ))
###
[`v3.70.0`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3700 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.69.1...v3.70.0 )
- feat: Add `PhpUnitDataProviderMethodOrderFixer` fixer
([#​8225](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8225 ))
- feat: `HeaderCommentFixer` - allow validators
([#​8452](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8452 ))
- feat: `PhpCsFixer` ruleset: use `operator_linebreak` rule for all
operators
([#​8417](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8417 ))
- feat: `PhpUnitMethodCasingFixer` to support PHPUnit's `Test` attribute
([#​8451](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8451 ))
- feat: `TypeDeclarationSpacesFixer` - Fix whitespace between const type
and const name
([#​8442](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8442 ))
- chore: extend bug report template
([#​8447](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8447 ))
- chore: extend bug report template - more installation options
([#​8450](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8450 ))
- CI: phpstan-symfony - add entry point for console
([#​8292](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8292 ))
- deps: bump alpine from 3.21.2 to 3.21.3
([#​8454](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8454 ))
- deps: bump phpstan/phpstan from 2.1.5 to 2.1.6 in /dev-tools in the
phpstan group
([#​8453](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8453 ))
- fix: `CommentsAnalyzer` - allow other forms of assignment as valid
structural elements for PHPDocs
([#​8371](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8371 ))
- fix: `PhpUnitTestClassRequiresCoversFixer` must run before
`PhpUnitAttributesFixer`
([#​8444](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8444 ))
- test: fix `CheckCommandTest::testDryRunModeIsUnavailable` to correctly
check that option `--dry-run` is unavailable
([#​8438](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8438 ))
###
[`v3.69.1`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3691 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.69.0...v3.69.1 )
- fix: `PhpUnitAttributesFixer` - convert correctly version constraint
([#​8439](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8439 ))
- test: `PhpUnitAttributesFixer` must run before `NoEmptyPhpdocFixer`
([#​8443](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8443 ))
###
[`v3.69.0`](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3690 )
[Compare
Source](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.68.5...v3.69.0 )
- feat: Add unsealed array shape phpdoc support
([#​8299](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8299 ))
- fix: `OrderedClassElementsFixer` - sort correctly typed constants
([#​8408](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8408 ))
- chore: do not use test class as test data
([#​8430](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8430 ))
- chore: update `checkbashisms` to 2.25.2
([#​8427](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8427 ))
- chore: use constants instead of literal strings
([#​8422](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8422 ))
- CI: no need to unlock deps on master
([#​8426](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8426 ))
- CI: run tests using PHPUnit 12
([#​8431](https://redirect.github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/8431 ))
- deps: bump kubawerlos/composer-s
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/libretime/libretime ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicGhwIl19-->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: jo <ljonas@riseup.net>
2025-08-09 15:57:06 +02:00
dakriy
5d7df2feb7
feat(legacy): now macro should use show start time when available ( #3175 )
...
### Description
Previously the `now` macro used the current time. This is a bit
confusing for autoloading playlists with dynamic smart blocks, as you
have to think about when autoloading happens. This just makes the
autoload datetime be the show start datetime.
**This is a new feature**:
Yes
**I have updated the documentation to reflect these changes**:
Yes
### Testing Notes
**What I did:**
I started up libretime, created an autoloading playlist with a dynamic
block set for one hour ahead. I then created a show with the autoloading
playlist one hour ahead of now and saw that it autoloaded properly and
that the hour matched the show start hour and not the current hour. I
also verified that the now functionality was not changed when not
autoloading by using the preview tracks button on the dynamic smart
block.
**How you can replicate my testing:**
See `What I did` section.
### **Links**
_Issues links or other related resources. Use the line Closes:
#bug_number to
link a bug in the issue tracker._
2025-08-09 15:56:47 +02:00
Jonas L.
14bb3e8889
feat(legacy): persist database connections ( #3186 )
...
### Description
Persist the database connection to reduce the load on Postgresql, and
improve performances.
https://www.php.net/manual/en/pdo.connections.php
https://www.php.net/manual/en/pdo.constants.php#pdo.constants.attr-persistent
2025-08-09 15:36:48 +02:00
Jonas L.
9d3a88093e
fix(legacy): do not send content-type header twice ( #3187 )
...
### Description
Nginx complains with a lot of warnings about duplicate headers:
```
nginx-1 | 2025/08/09 10:30:59 [warn] 30#30: *165 upstream sent duplicate header line: "Content-Type: application/javascript", previous value: "Content-Type: application/json", ignored while reading response header from upstream, client: 172.18.0.1, server: , request: "GET /api/live-info?callback=jQuery110208358688475043138_1754723948660&type=interval&limit=5&_=1754723949161 HTTP/1.0", upstream: "fastcgi://172.18.0.5:9000"
```
2025-08-09 14:28:34 +02:00
dakriy
f780994996
feat(legacy): add config option for group separator in header auth ( #3181 )
...
### Description
Not all forward auth solutions use a comma for group seperator.
**This is a new feature**:
Yes
**I have updated the documentation to reflect these changes**:
Yes
### **Links**
[Authentik uses `|` so may as well make the group separator
configurable](https://docs.goauthentik.io/docs/add-secure-apps/providers/proxy/ )
2025-07-16 20:32:34 +02:00
Jonas L.
63ff50b82c
feat: rename airtime-pypo exchange to playout ( #3170 )
...
### Description
The playout exchange was changed to `fanout` without migrating the
previous `direct` exchange. This cause issues during upgrades, such as:
```
amqp.exceptions.PreconditionFailed: Exchange.declare: (406) PRECONDITION_FAILED - inequivalent arg 'type' for exchange 'airtime-pypo' in vhost '/libretime': received 'fanout' but current is 'direct'
```
This is documented upstream in
https://www.rabbitmq.com/docs/queues#property-equivalence
This change provides an upgrade path by renaming the exchange, and leave
the old exchange behind. Loosing messages is not a concern for the
playout queue.
### Testing Notes
- Checkout version `4.4.0`
- Run `make dev`
- Checkout 9e55d3bb6f2fa0f9a4dc858359a99e9d50c826a4
- Run `make dev`
- See the exception in playout: `docker compose logs -f playout`
- Checkout this PR
- Run `make dev`
- See playout fine working.
### **Links**
https://github.com/libretime/libretime/pull/3161
2025-06-14 17:56:21 +02:00
dakriy
9e55d3bb6f
feat: use fanout queue type for playout queue ( #3161 )
...
### Description
Currently, only one service can listen to libretime schedule change
events. This change allows for as many services as desired to listen for
schedule change events.
**This is a new feature**:
Yes
**I have updated the documentation to reflect these changes**:
No, as this seems like the obvious default
### Testing Notes
**What I did:**
I created 2 playout blocks, connected them both to the fanout queue and
saw that they could all connect and receive schedule change events at
the same time.
**How you can replicate my testing:**
See testing notes
2025-06-07 05:05:04 +01:00
dakriy
5743a0f582
fix(legacy): scheduled show length should not add track fade times ( #3144 )
...
### Description
When generating a show that contains a playlist with dynamic blocks, the
show will be incorrectly under scheduled because the fade time was added
onto the total track length. Fade should not add time to an overall
track length as then it wouldn't be a fade.
**This is a new feature**:
No
**I have updated the documentation to reflect these changes**:
No, none needed.
### Testing Notes
**What I did:**
I created a playlist with 3 dynamic blocks:
1. 10 minute length dynamic block
2. 1 item dynamic block
3. fill rest of show dynamic block
I then created a show with the defined auto loading playlist. I then saw
that on auto-load the show was not under scheduled.
**How you can replicate my testing:**
See testing notes
Co-authored-by: Kyle Robbertze <paddatrapper@users.noreply.github.com>
2025-03-19 11:13:30 +00:00
dakriy
c5548632e4
fix(legacy): now macro should use station timezone ( #3143 )
...
### Description
The `now{}` macro for criteria filtering used UTC rather than station
timezone leading to confusing results.
**This is a new feature**:
No
**I have updated the documentation to reflect these changes**:
Yes
### Testing Notes
**What I did:**
I named a track the current date and hour, and used the date macro to
try to select it. It failed, I then implemented this fix and saw that
the track was selected.
**How you can replicate my testing:**
See what I did.
### **Links**
None
2025-03-18 13:12:01 +00:00
Julien Valentin
3a8dcbce60
feat(legacy): update deprecated PHP code ( #2789 )
...
### Description
update deprecated code. It's mergeable with master without syntax
conflicts across php versions
remove deprecated((https://www.php.net/manual/fr/function.strftime.php ))
and unsafe (https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=strftime )
**strftime** syntax
---------
Co-authored-by: mp3butcher <mp3butcher@gmail.com>
Co-authored-by: jo <ljonas@riseup.net>
Co-authored-by: Kyle Robbertze <kyle@paddatrapper.com>
2025-03-12 23:19:18 +00:00
nosbig
203c927554
feat: add flac support to Web player ( #3128 )
...
### Description
Added support for previewing FLAC files in the web interface, provided
in #509 by marmotte32 on Github in the comments for this issue.
I have tested this against a script-installed copy of 4.2.0, and FLAC
preview is working, although auto-play isn't. I haven't tested to
confirm if this behavior matches MP3 and OGG uploads.
**This is a new feature**:
_Do the changes in this PR implement a new feature?_
**I have updated the documentation to reflect these changes**:
No changes needed; this bug is a missing file format in preview, and it
requires no updates to the documentation.
### Testing Notes
**What I did:**
I installed a LibreTime 4.2.0 system using the default installation
script against a fully-updated, brand new Debian 11 system. I logged
into the web interface, uploaded some FLAC files, and attempted to
preview them. They failed to preview.
I then replaced the preview_jplayer.js file with the contents in this PR
and then refreshed the page. I was able to preview the FLAC files and
hear the results in my local browser audio output.
**How you can replicate my testing:**
Perform the same steps above, or replace the same file in the
libretime_legacy_1 docker image to see the same results.
### **Links**
Closes : #509
---------
Co-authored-by: Kyle Robbertze <kyle@paddatrapper.com>
2025-01-10 15:46:18 +00:00
Scott McGrath
644d2b9ce5
fix(legacy): additional specifics added to CSVexport.js for RFC 4180 ( #3131 )
...
### Description
The existing implementation for exporting playout logs to a CSV file
incorporates a very simplified CSV format. Some aspects of the complete
[RFC](https://www.rfc-editor.org/rfc/rfc4180 ) are missing, such as
escaping of quotes, and quoting of fields that contain certain
characters. This is problematic for common office spreadsheet tools, and
practically, anything else. Many radio stations rely on this
functionality to work well for exporting playout data, for example, in
order to compile data for reporting requirements.
**This is a new feature**:
The changes in this PR add quoting of fields containing a comma, as well
as those containing a CR/LF. It also escapes quotes by doubling them.
I'm not sure it makes CSVexport.js completely RFC 4180 compliant, but it
is much closer than it was.
**I have updated the documentation to reflect these changes**:
I don't think there are any documentation changes necessary; this is
probably expected behavior for anyone trying to use the CSV exporter.
### Testing Notes
**What I did:**
To validate this, I did a clean install of Debian, cloned from the
official libretime repo, and applied the code as a patch to the
installer. I then proceeded with the install and then loaded a database
from a running system (so that I had some playout data to test with). I
then performed the playout history export and examined the resulting CSV
file and after seeing previously problematic fields properly quoted, was
convinced it looked the way I expected. I loaded the csv file into
Libreoffice Calc and did not see any errors.
**How you can replicate my testing:**
See "What I did" above, basically run the patch after cloning the
installer from the repo. You could also apply the changes to a running
system by applying the patch to the file:
/usr/share/libretime/legacy/public/js/libs/CSVexport.js
Be sure to clear your browser cache and do a hard reload of the web
interface, before re-testing.
### **Links**
Closes : #2477
2025-01-09 08:34:13 +00:00
dakriy
2985d8554a
feat(legacy): trused header sso auth ( #3095 )
...
### Description
Allows LibreTime to support Trusted Header SSO Authentication.
**This is a new feature**:
Yes
**I have updated the documentation to reflect these changes**:
Yes
### Testing Notes
**What I did:**
I spun up an Authelia/Traefik pair and configured them to protect
LibreTime according to Authelia's documentation, I then tested that you
could log in via the trusted headers, and tested that old methods of
authentication were not affected.
**How you can replicate my testing:**
Using the following `docker-compose.yml` file
```yml
services:
postgres:
image: postgres:15
networks:
- internal
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
POSTGRES_USER: ${POSTGRES_USER:-libretime}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-libretime} # Change me !
healthcheck:
test: pg_isready -U libretime
rabbitmq:
image: rabbitmq:3.13-alpine
networks:
- internal
environment:
RABBITMQ_DEFAULT_VHOST: ${RABBITMQ_DEFAULT_VHOST:-/libretime}
RABBITMQ_DEFAULT_USER: ${RABBITMQ_DEFAULT_USER:-libretime}
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_DEFAULT_PASS:-libretime} # Change me !
healthcheck:
test: nc -z 127.0.0.1 5672
playout:
image: ghcr.io/libretime/libretime-playout:${LIBRETIME_VERSION:-latest}
networks:
- internal
init: true
ulimits:
nofile: 1024
depends_on:
- rabbitmq
volumes:
- ${LIBRETIME_CONFIG_FILEPATH:-./config.yml}:/etc/libretime/config.yml:ro
- libretime_playout:/app
environment:
LIBRETIME_GENERAL_PUBLIC_URL: http://nginx:8080
liquidsoap:
image: ghcr.io/libretime/libretime-playout:${LIBRETIME_VERSION:-latest}
networks:
- internal
command: /usr/local/bin/libretime-liquidsoap
init: true
ulimits:
nofile: 1024
ports:
- 8001:8001
- 8002:8002
depends_on:
- rabbitmq
volumes:
- ${LIBRETIME_CONFIG_FILEPATH:-./config.yml}:/etc/libretime/config.yml:ro
- libretime_playout:/app
environment:
LIBRETIME_GENERAL_PUBLIC_URL: http://nginx:8080
analyzer:
image: ghcr.io/libretime/libretime-analyzer:${LIBRETIME_VERSION:-latest}
networks:
- internal
init: true
ulimits:
nofile: 1024
depends_on:
- rabbitmq
volumes:
- ${LIBRETIME_CONFIG_FILEPATH:-./config.yml}:/etc/libretime/config.yml:ro
- libretime_storage:/srv/libretime
environment:
LIBRETIME_GENERAL_PUBLIC_URL: http://nginx:8080
worker:
image: ghcr.io/libretime/libretime-worker:${LIBRETIME_VERSION:-latest}
networks:
- internal
init: true
ulimits:
nofile: 1024
depends_on:
- rabbitmq
volumes:
- ${LIBRETIME_CONFIG_FILEPATH:-./config.yml}:/etc/libretime/config.yml:ro
environment:
LIBRETIME_GENERAL_PUBLIC_URL: http://nginx:8080
api:
image: ghcr.io/libretime/libretime-api:${LIBRETIME_VERSION:-latest}
networks:
- internal
init: true
ulimits:
nofile: 1024
depends_on:
- postgres
- rabbitmq
volumes:
- ${LIBRETIME_CONFIG_FILEPATH:-./config.yml}:/etc/libretime/config.yml:ro
- libretime_storage:/srv/libretime
legacy:
image: ghcr.io/libretime/libretime-legacy:${LIBRETIME_VERSION:-latest}
networks:
- internal
init: true
ulimits:
nofile: 1024
depends_on:
- postgres
- rabbitmq
volumes:
- ${LIBRETIME_CONFIG_FILEPATH:-./config.yml}:/etc/libretime/config.yml:ro
- libretime_assets:/var/www/html
- libretime_storage:/srv/libretime
nginx:
image: nginx
networks:
- internal
- net
ports:
- 8080:8080
depends_on:
- legacy
volumes:
- libretime_assets:/var/www/html:ro
- libretime_storage:/srv/libretime:ro
- ${NGINX_CONFIG_FILEPATH:-./nginx.conf}:/etc/nginx/conf.d/default.conf:ro
labels:
- 'traefik.enable=true'
- 'traefik.docker.network=libretime_net'
- 'traefik.http.routers.libretime.rule=Host(`libretime.example.com`)'
- 'traefik.http.routers.libretime.entrypoints=https'
- 'traefik.http.routers.libretime.tls=true'
- 'traefik.http.routers.libretime.tls.options=default'
- 'traefik.http.routers.libretime.middlewares=authelia@docker'
- 'traefik.http.services.libretime.loadbalancer.server.port=8080'
icecast:
image: ghcr.io/libretime/icecast:2.4.4
networks:
- internal
ports:
- 8000:8000
environment:
ICECAST_SOURCE_PASSWORD: ${ICECAST_SOURCE_PASSWORD:-hackme} # Change me !
ICECAST_ADMIN_PASSWORD: ${ICECAST_ADMIN_PASSWORD:-hackme} # Change me !
ICECAST_RELAY_PASSWORD: ${ICECAST_RELAY_PASSWORD:-hackme} # Change me !
traefik:
image: traefik:v2.11.12
container_name: traefik
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- net
labels:
- 'traefik.enable=true'
- 'traefik.http.routers.api.rule=Host(`traefik.example.com`)'
- 'traefik.http.routers.api.entrypoints=https'
- 'traefik.http.routers.api.service=api@internal'
- 'traefik.http.routers.api.tls=true'
- 'traefik.http.routers.api.tls.options=default'
- 'traefik.http.routers.api.middlewares=authelia@docker'
ports:
- '80:80'
- '443:443'
command:
- '--api'
- '--providers.docker=true'
- '--providers.docker.exposedByDefault=false'
- '--entrypoints.http=true'
- '--entrypoints.http.address=:80'
- '--entrypoints.http.http.redirections.entrypoint.to=https'
- '--entrypoints.http.http.redirections.entrypoint.scheme=https'
- '--entrypoints.https=true'
- '--entrypoints.https.address=:443'
- '--log=true'
- '--log.level=DEBUG'
authelia:
image: authelia/authelia
container_name: authelia
networks:
- net
volumes:
- ./authelia:/config
labels:
- 'traefik.enable=true'
- 'traefik.http.routers.authelia.rule=Host(`auth.example.com`)'
- 'traefik.http.routers.authelia.entrypoints=https'
- 'traefik.http.routers.authelia.tls=true'
- 'traefik.http.routers.authelia.tls.options=default'
- 'traefik.http.middlewares.authelia.forwardauth.address=http://authelia:9091/api/authz/forward-auth ' # yamllint disable-line rule:line-length
- 'traefik.http.middlewares.authelia.forwardauth.trustForwardHeader=true'
- 'traefik.http.middlewares.authelia.forwardauth.authResponseHeaders=Remote-User,Remote-Groups,Remote-Name,Remote-Email' # yamllint disable-line rule:line-length
- 'traefik.http.services.authelia.loadbalancer.server.port=9091'
restart: unless-stopped
environment:
- TZ=America/Los_Angeles
volumes:
postgres_data: {}
libretime_storage: {}
libretime_assets: {}
libretime_playout: {}
networks:
internal:
net:
```
The following libretime dev config modification:
```yml
general:
public_url: https://libretime.example.com
auth: LibreTime_Auth_Adaptor_Header
header_auth:
group_map:
host: lt-host
program_manager: lt-pm
admin: lt-admin
superadmin: lt-superadmin
```
And the following authelia config file:
```yml
---
###############################################################
# Authelia configuration #
###############################################################
server:
address: 'tcp://:9091'
buffers:
read: 16384
write: 16384
log:
level: 'debug'
totp:
issuer: 'authelia.com'
identity_validation:
reset_password:
jwt_secret: 'a_very_important_secret'
authentication_backend:
file:
path: '/config/users_database.yml'
access_control:
default_policy: 'deny'
rules:
- domain: 'traefik.example.com'
policy: 'one_factor'
- domain: 'libretime.example.com'
policy: 'one_factor'
session:
secret: 'insecure_session_secret'
cookies:
- name: 'authelia_session'
domain: 'example.com' # Should match whatever your root protected domain is
authelia_url: 'https://auth.example.com '
expiration: '1 hour' # 1 hour
inactivity: '5 minutes' # 5 minutes
regulation:
max_retries: 3
find_time: '2 minutes'
ban_time: '5 minutes'
storage:
encryption_key: 'you_must_generate_a_random_string_of_more_than_twenty_chars_and_configure_this'
local:
path: '/config/db.sqlite3'
notifier:
filesystem:
filename: '/config/notification.txt'
...
```
And the following authelia users database:
```yml
---
###############################################################
# Users Database #
###############################################################
# This file can be used if you do not have an LDAP set up.
# List of users
users:
test:
disabled: false
displayname: "First Last"
password: "$argon2id$v=19$m=16,t=2,p=1$SWVVVzcySlRLUEFkWWh2eA$qPs1ZmzmDXR/9WckDzIN9Q"
email: test@example.com
groups:
- admins
- dev
- lt-admin
...
```
add the following entries to your `hosts` file:
```
127.0.0.1 traefik.example.com
127.0.0.1 auth.example.com
127.0.0.1 libretime.example.com
```
Then visit `libretime.example.com` in your browser, and login as the
user `test` with password of `password`. You should then be taken to the
LibreTime homepage, and when you click on login, you should be
automatically logged in.
### **Links**
https://www.authelia.com/integration/trusted-header-sso/introduction/
https://doc.traefik.io/traefik/middlewares/http/forwardauth/
---------
Co-authored-by: Kyle Robbertze <paddatrapper@users.noreply.github.com>
2024-12-07 10:21:57 +00:00
Thomas Göttgens
7992a9be2d
fix: intro/outro playlist unset was impossible ( #3101 )
...
this reinstates the boolean fields in the database from the original PR
to work around a foreign key contraint. THE UI remains unchanged
2024-10-21 18:34:39 +01:00
Thomas Göttgens
0b221f4fff
fix(legacy): support Postgresql 12 syntax ( #3103 )
...
fixes #3102
2024-10-19 23:20:30 +01:00
Thomas Göttgens
299be3c142
feat: use custom intro/outro playlists per show ( #2941 )
...
### Description
Having a global intro and outro playlist in settings is not very
flexible for special programming. This adds an override intro/outro
playlist per show. If it is not set, the global one is used. also it's
ignored if there's no autloading at all.
**I have updated the documentation to reflect these changes**:
Yes
### Testing Notes
**What I did:**
Schedule 2 shows, one without defining custom lists, one with defining
custom lists. one hour before the show starts it should be populated
correctly. If you define a global list it shojuld be replaced with the
per-show list.
---------
Co-authored-by: Thomas Göttgens <tgoettgens@mail.com>
2024-10-14 21:07:41 +01:00
dakriy
5b5c68c628
feat(legacy): implement subset sum solution to show scheduling ( #3019 )
...
### Description
When running a radio station it is generally a good idea to reduce dead
air time. The current algorithm for adding tracks to a block/show can
leave a lot of dead air time at the end as it doesn't use a very good
algorithm. Adding tracks to a show until it is full while making it as
full as possible is a well known problem in computer science. It is the
[Subset Sum Problem](https://en.wikipedia.org/wiki/Subset_sum_problem ).
This PR implements a Randomized Greedy with Local Improvement (RGLI)
approximation solution for the Subset Sum Problem. The new algorithm is
only used when sort type is random and overflow is not enabled and there
is no limit on the number of tracks that can be used.
**This is a new feature**:
Improvement on an existing feature.
**I have not updated the documentation to reflect these changes**:
I did not update the documentation because the current scheduling
algorithm is not currently documented and its existing features have not
changed.
### Testing Notes
**What I did:**
I first attempted a fully polynomial time approximation scheme solution,
however it is really bad at finding good solutions for high density
values and can kinda slow the more tracks/time you have. So I instead
implemented an RGLI which is O(nlogn) and has been giving much better
results.
I implemented the solution in a separate project and tested it and timed
the values with a normal distribution of 500 songs with a mean of 3
minutes and a standard deviation of 1 minute. With a show size of 1 hour
the algorithm took around 10-15 ms to run. When adjusting the block size
and track size the algorithm still was pretty quick to run. Am going to
be testing on an instance with lots of tracks later, will update PR when
I have done that.
**How you can replicate my testing:**
_How can the reviewer validate this PR?_
### **Links**
Closes #3018
2024-10-13 15:31:08 +02:00
dakriy
16deaf08c6
feat(legacy): show filename and size on edit page and add filename datatable column ( #3083 )
...
### Description
Add File Name and Size to the metadata editor screen, and added a File
Name column to the tracks data table.
**This is a new feature**:
Yes
**I have updated the documentation to reflect these changes**:
No, just some simple UI additions so no documentation needed.
### Testing Notes
**What I did:**
I uploaded some tracks, clicked on edit, and saw that the filename and
size showed up at the top. I also went out to the tracks view and added
the File Name column and saw that the filename displayed properly.
**How you can replicate my testing:**
Do what I did
### **Links**
Fixes #3053
2024-10-13 08:45:54 +01:00
Jonas L.
e614fbcf6c
feat: add Norwegian Bokmål locale ( #3073 )
...
### Description
Locale was requested on Weblate.
2024-09-06 14:43:40 +01:00
dakriy
8c26505622
feat(legacy): order by filename when lptime is null ( #3069 )
...
### Description
It is good to have a deterministic order when doing explicit file
sorting. This sorts by filename when last played time is null. I would
expect filename to be the next sort after last played time in case of a
tie, and was surprised to find it was not explicit. It should not break
any existing use cases.
**This is a new feature**:
Kind of?
**I have updated the documentation to reflect these changes**:
I did not update any documentation as this way seems like the logical
expected way to do the sort.
### Testing Notes
**What I did:**
I loaded up some tracks into a local libretime instance, let some of
them play, and tested that all the old sorts worked as before as well as
tracks getting sorted by filepath in case of a last played time
2024-08-24 07:47:25 +01:00
dakriy
c883d0f2d5
fix(legacy): fix filename criteria searching ( #3068 )
...
### Description
The filename criteria searched the full file path and as such does not
work as expected.
**This is a new feature**:
No
**I have updated the documentation to reflect these changes**:
No docs changes are required as this is fixing a bug to make things work
as expected and documented.
### Testing Notes
**What I did:**
I uploaded some files, and tested that the file name criteria worked as
expected.
**How you can replicate my testing:**
Spin up the stack, upload some files and make sure the filename criteria
works as expected.
2024-08-20 22:39:53 +01:00
Jonas L
4e0953d513
refactor: remove non existent asset file ( #3042 )
...
The file is non existent.
Added in c669d3cb47a3092ac27fb3995f0dc72955f0740d
Removed in ea2a6b3f68c59d98986b6d3f4c9b70137366990f
2024-06-22 17:18:16 +02:00
dakriy
4642b6c08e
feat(legacy): add filename block criteria ( #3015 )
...
### Description
Adds filename block criteria because sometimes you just need the
filename and the ID3 tags won't do.
Closes #3014
2024-06-22 11:51:59 +02:00
dakriy
451652bc40
feat(legacy): add current date macro to string block criteria ( #3013 )
...
### Description
It is useful to be able to automatically filter tracks to a certain date
or day when scheduling tracks for playback. This adds the ability to do
just that in any string filter with the `date{format}` macro.
Closes: #3012
2024-06-22 11:19:21 +02:00
Rob Hailman
2b43e51ed1
fix: playlist allocates inaccurate time to smartblocks ( #3026 )
...
### Description
In the existing logic of `retrieveMediaFiles`, the time remaining in
show is calculated incorrectly in some scenarios. Each time a duration
is subtracted from `showLimit`, it is not the duration of the files just
added, but instead the length of all files scheduled. This can cause
cases where a smart block set to "time remaining in show" fails to
completely fill the program.
For example, given a 30 minute show, and a playlist like follows:
1. a 5 minute track
2. another 5 minute track
3. smart block, set to time remaining in show
When item 1 is added, `showLimit` is reduced by 5 minutes as expected.
When item 2 is added, `showLimit` is reduced by 10 minutes (as both
items 1 and 2 are counted). As a result, the smart block is only run to
fill 15 minutes, leaving 5 minutes unfilled.
This PR resolves this issue, by recalculating `showLimit` from the
original duration rather than subtracting from a running total.
This change not does implement a new feature and should not require any
changes to documentation.
### Testing Notes
**What I did:**
- On a dev environment, set up a playlist as described above.
- Before applying this PR, created a show and scheduled playlist, and
confirmed issue was reproducible
- Applied PR and repeated, and confirmed show was filled completely.
Also repeated this testing with sample data from our production
instance.
Here is a sample schedule of the "before" case with sample data, showing
the issue

The smartblock that scheduled the music is set to allow last track to
overflow, but 3m55s was left unscheduled.
Using the same playlist and same track library, here is a sample
schedule after the PR applied:

As expected, the show is fully scheduled with the last track
overflowing.
Additionally, I've applied this PR as a hot fix to our production
instance, where it has been running for a week without issue.
Also performed spot tests of playlists without smart blocks, smart
blocks scheduled directly (not in playlists) and autoloading playlists,
with no change in behaviour observed as a result of this change.
**How you can replicate my testing:**
Same test steps as I followed should be able to reproduce issue &
validate fix on any instance.
### **Links**
Not directly related to issue fixed by #3019 , but also addresses the
issue of dead air left at end of blocks.
Co-authored-by: Kyle Robbertze <paddatrapper@users.noreply.github.com>
2024-06-05 17:01:57 +01:00
Thomas Göttgens
86da46ee3a
fix(legacy): allow deleting file with api token ( #2995 )
...
When calling DELETE "/rest/media/<id>" the call fails with 'unknown error'
if it's not within a GUI session. The StoredFile delete method checks
for user permissions regardless of if a user is even known.
2024-05-05 22:26:27 +02:00
Thomas Göttgens
064c435b09
refactor(legacy): remove unused waveform related code ( #3003 )
...
Co-authored-by: Thomas Göttgens <tgoettgens@mail.com>
Co-authored-by: Kyle Robbertze <paddatrapper@users.noreply.github.com>
2024-05-05 21:15:11 +02:00
Jonas L
40b4fc7f66
feat: build schedule events exclusively in playout ( #2946 )
...
### Description
Build and use the schedule events only in playout, the events generated
by legacy are not used anymore.
This ensure that we don't have to maintain 2 different implementation in
2 different languages. We still need the php function to run to make
sure the side effects of this function are executed (filling the
schedule in the DB).
2024-04-27 20:09:16 +02:00
Thomas Göttgens
da02e74f21
feat(legacy): visual cue point editor ( #2947 )
...
A visual cue point editor in the track editor view. This view displays the track as a waveform and allows you to set where the in- and out-cue points are set. These cue points determine the start and end points of the track.
---------
Co-authored-by: Thomas Göttgens <tgoettgens@mail.com>
Co-authored-by: Kyle Robbertze <paddatrapper@users.noreply.github.com>
2024-04-21 10:13:43 +01:00
Jonas L
5ad69bf0b7
fix(legacy): ensure validation is performed on the track type form ( #2985 )
...
### Description
Fixes #2939
The zend form validation was not performed, only a custom method to
validate the code was used. This merge both validation, and leverage the
Zend form validation framework.
Also allow updating the track type code from the track type form.
Related to #2955
2024-04-13 15:54:47 +02:00
renovate[bot]
9192aaa2bb
fix(deps): update dependency friendsofphp/php-cs-fixer to <3.53.1 ( #2972 )
...
[](https://renovatebot.com )
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[friendsofphp/php-cs-fixer](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer )
| `<3.51.1` -> `<3.53.1` |
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>PHP-CS-Fixer/PHP-CS-Fixer (friendsofphp/php-cs-fixer)</summary>
###
[`v3.53.0`](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3530 )
[Compare
Source](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.52.1...v3.53.0 )
- chore: Use `list` over `array` in more places
([#​7905](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7905 ))
- CI: allow for self-approvals for maintainers
([#​7921](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7921 ))
- CI: Improve Infection setup
([#​7913](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7913 ))
- CI: no need to trigger enable auto-merge when self-approve
([#​7929](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7929 ))
- DX: reduce `array_filter` function usages
([#​7923](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7923 ))
- DX: remove duplicated character from `trim` call
([#​7930](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7930 ))
- DX: update actions producing warnings
([#​7925](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7925 ))
- DX: update actions producing warnings
([#​7928](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7928 ))
- DX: update `phpstan/phpstan-strict-rules`
([#​7924](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7924 ))
- feat: Add trailing comma in multiline to PER-CS 2.0
([#​7916](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7916 ))
- feat: Introduce `AttributeAnalysis`
([#​7909](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7909 ))
- feat: `@PHP84Migration` introduction
([#​7774](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7774 ))
- fix: Constant invocation detected in typed constants
([#​7892](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7892 ))
- fix: `PhpdocArrayTypeFixer` - JIT stack limit exhausted
([#​7895](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7895 ))
- test: Introduce Infection for mutation tests
([#​7874](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7874 ))
###
[`v3.52.1`](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3521 )
[Compare
Source](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.52.0...v3.52.1 )
- fix: StatementIndentationFixer - do not crash on ternary operator in
class property
([#​7899](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7899 ))
- fix: `PhpCsFixer\Tokenizer\Tokens::setSize` return type
([#​7900](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7900 ))
###
[`v3.52.0`](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3520 )
[Compare
Source](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.51.0...v3.52.0 )
- chore: fix PHP 8.4 deprecations
([#​7894](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7894 ))
- chore: fix PHPStan 1.10.60 issues
([#​7873](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7873 ))
- chore: list over array in more places
([#​7876](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7876 ))
- chore: replace template with variable in Preg class
([#​7882](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7882 ))
- chore: update PHPStan
([#​7871](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7871 ))
- depr: `nullable_type_declaration_for_default_null_value` - deprecate
option that is against `@PHP84Migration`
([#​7872](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7872 ))
- docs: Fix typo
([#​7889](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7889 ))
- feat: Add support for callable template in PHPDoc parser
([#​7084](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7084 ))
- feat: Add `array_indentation` to `PER-CS2.0` ruleset
([#​7881](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7881 ))
- feat: `@Symfony:risky` - add `no_unreachable_default_argument_value`
([#​7863](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7863 ))
- feat: `PhpCsFixer` ruleset - enable
`nullable_type_declaration_for_default_null_value`
([#​7870](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7870 ))
- fix: Constant invocation detected in DNF types
([#​7869](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7869 ))
- fix: Correctly indent multiline constants and properties
([#​7875](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7875 ))
- fix: `no_useless_concat_operator` - do not break variable
([#​7827](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7827 ))
- fix: `TokensAnalyzer` - handle unary operator in arrow functions
([#​7862](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7862 ))
- fix: `TypeExpression` - fix "JIT stack limit exhausted" error
([#​7843](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7843 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/ ). View
repository job log
[here](https://developer.mend.io/github/libretime/libretime ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNDUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: jo <ljonas@riseup.net>
2024-04-13 14:36:31 +02:00
Thomas Göttgens
270aa08ae6
fix(legacy): allow updating track types code ( #2955 )
...
Since moving to an indexed track_type model for 3.0, the constraint of the code being immutable is no longer
valid, since it's not used as index anymore. This commit removes the readonly flag from that form field.
2024-02-18 19:10:30 +01:00
Jonas L
37d1a7685e
fix(legacy): replay_gain_modifier should be a system preference ( #2943 )
2024-02-08 19:48:49 +01:00
Thomas Göttgens
f4b260fdf7
fix(legacy): fix hidden fields in edit file form ( #2932 )
...
this removes a visual gap between artwork and editor fields. I stumbled
across this while updating the form to include replay gain.

2024-02-03 22:31:00 +01:00
renovate[bot]
3e05748d2d
fix(deps): update dependency friendsofphp/php-cs-fixer to <3.49.1 ( #2899 )
...
[](https://renovatebot.com )
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[friendsofphp/php-cs-fixer](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer )
| `<3.46.1` -> `<3.49.1` |
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>PHP-CS-Fixer/PHP-CS-Fixer (friendsofphp/php-cs-fixer)</summary>
###
[`v3.49.0`](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3490 )
[Compare
Source](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.48.0...v3.49.0 )
- chore(checkbashisms): update to 2.23.7
([#​7780](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7780 ))
- chore: add missing key types in PHPDoc types
([#​7779](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7779 ))
- chore: Exclude `topic/core` issues/PRs from Stale Bot
([#​7788](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7788 ))
- chore: `DescribeCommand` - better handling of deprecations
([#​7778](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7778 ))
- docs: docker - use gitlab reporter in GitLab integration example
([#​7764](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7764 ))
- docs: docker in CI - don't suggest command that overrides path from
config file
([#​7763](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7763 ))
- DX: check deprecations exactly
([#​7742](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7742 ))
- feat: Add `ordered_types` to `@Symfony`
([#​7356](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7356 ))
- feat: introduce `PhpdocListTypeFixer`
([#​7796](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7796 ))
- feat: introduce `string_implicit_backslashes` as
`escape_implicit_backslashes` replacement
([#​7669](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7669 ))
- feat: update
`Symfony.nullable_type_declaration_for_default_null_value` config
([#​7773](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7773 ))
- feat: `@PhpCsFixer` ruleset - enable `php_unit_data_provider_static`
([#​7685](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7685 ))
- fix: Allow using cache when running in Docker distribution
([#​7769](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7769 ))
- fix: ClassDefinitionFixer for anonymous class with phpdoc/attribute on
separate line
([#​7546](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7546 ))
- fix: `ClassKeywordFixer` must run before
`FullyQualifiedStrictTypesFixer`
([#​7767](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7767 ))
- fix: `function_to_constant` `get_class()` replacement
([#​7770](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7770 ))
- fix: `LowercaseStaticReferenceFixer` - do not change typed constants
([#​7775](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7775 ))
- fix: `PhpdocTypesFixer` - handle more complex types
([#​7791](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7791 ))
- fix: `TypeExpression` - do not break type using `walkTypes` method
([#​7785](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7785 ))
###
[`v3.48.0`](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3480 )
[Compare
Source](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.47.1...v3.48.0 )
- chore: `FullyQualifiedStrictTypesFixer` must run before
`OrderedInterfacesFixer`
([#​7762](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7762 ))
- docs: Add PHP-CS-Fixer integration in a GitHub Action step
([#​7757](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7757 ))
- feat: `PhpdocTypesOrderFixer` Support DNF types
([#​7732](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7732 ))
- fix: Support shebang in fixers operating on PHP opening tag
([#​7687](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7687 ))
- fix: work correctly for a switch/case with ternary operator
([#​7756](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7756 ))
- fix: `NoUselessConcatOperatorFixer` - do not remove new line
([#​7759](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7759 ))
###
[`v3.47.1`](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3471 )
[Compare
Source](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.47.0...v3.47.1 )
- fix: Do not override short name with relative reference
([#​7752](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7752 ))
- fix: make `BinaryOperatorSpacesFixer` work as pre-v3.47
([#​7751](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7751 ))
- fix: Proper Docker image name suffix
([#​7739](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7739 ))
- fix: `FullyQualifiedStrictTypesFixer` - do not change case of the
symbol when there's name collision between imported class and imported
function
([#​7750](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7750 ))
- fix: `FullyQualifiedStrictTypesFixer` - do not modify statements with
property fetch and `::`
([#​7749](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7749 ))
###
[`v3.47.0`](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3470 )
[Compare
Source](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.46.0...v3.47.0 )
- chore: better identify EXPERIMENTAL rules
([#​7729](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7729 ))
- chore: fix issue detected by unlocked PHPStan + upgrade dev-tools
([#​7678](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7678 ))
- chore: handle extract()
([#​7684](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7684 ))
- chore: Mention contributors in app info
([#​7668](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7668 ))
- chore: no need to mark private methods as internal
([#​7715](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7715 ))
- chore: ProjectCodeTests - dry for function usage extractions
([#​7690](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7690 ))
- chore: reduce PHPStan baseline
([#​7644](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7644 ))
- chore: use numeric literal separator for PHP version IDs
([#​7712](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7712 ))
- chore: use numeric_literal_separator for project
([#​7713](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7713 ))
- chore: Utils::sortElements - better typing
([#​7646](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7646 ))
- CI: Allow running Stale Bot on demand
([#​7711](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7711 ))
- CI: Fix PHP 8.4
([#​7702](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7702 ))
- CI: Give write permissions to Stale Bot
([#​7716](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7716 ))
- CI: Use `actions/stale` v9
([#​7710](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7710 ))
- docs: Add information about allowing maintainers to update PRs
([#​7683](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7683 ))
- docs: CONTRIBUTING.md - update Opening a PR
([#​7691](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7691 ))
- docs: Display/include tool info/version by default in commands and
reports
([#​7733](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7733 ))
- DX: fix deprecation tests warnings for PHP 7.4
([#​7725](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7725 ))
- DX: update `host.docker.internal` in Compose override template
([#​7661](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7661 ))
- DX: `NumericLiteralSeparatorFixer` - change default strategy to
`use_separator`
([#​7730](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7730 ))
- feat: Add support for official Docker images of Fixer
([#​7555](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7555 ))
- feat: Add `spacing` option to `PhpdocAlignFixer`
([#​6505](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6505 ))
- feat: Add `union_types` option to `phpdoc_to_param_type`,
`phpdoc_to_property_type`, and `phpdoc_to_return_type` fixers
([#​7672](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7672 ))
- feat: Introduce `heredoc_closing_marker` fixer
([#​7660](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7660 ))
- feat: Introduce `multiline_string_to_heredoc` fixer
([#​7665](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7665 ))
- feat: Introduce `NumericLiteralSeparatorFixer`
([#​6761](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6761 ))
- feat: no_superfluous_phpdoc_tags - support for arrow function
([#​7666](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7666 ))
- feat: Simplify closing marker when possible in
`heredoc_closing_marker` fixer
([#​7676](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7676 ))
- feat: Support typed properties and attributes in
`fully_qualified_strict_types`
([#​7659](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7659 ))
- feat: `@PhpCsFixer` ruleset - enable
no_whitespace_before_comma_in_array.after_heredoc
([#​7670](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7670 ))
- fix: Improve progress bar visual layer
([#​7708](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7708 ))
- fix: indentation of control structure body without braces
([#​7663](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7663 ))
- fix: make sure all PHP extensions required by PHPUnit are installed
([#​7727](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7727 ))
- fix: PhpdocToReturnTypeFixerTest - support for arrow functions
([#​7645](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7645 ))
- fix: Several improvements for `fully_qualified_strict_types` (respect
declared symbols, relative imports, leading backslash in global
namespace)
([#​7679](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7679 ))
- fix: SimplifiedNullReturnFixer - support array return typehint
([#​7728](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7728 ))
- fix: Support numeric values without leading zero in
`numeric_literal_separator`
([#​7735](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7735 ))
- fix: `BinaryOperatorSpacesFixer` - align correctly when multiple
shifts occurs in single line
([#​7593](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7593 ))
- fix: `ClassReferenceNameCasingFixer` capitalizes the property name
after the nullsafe operator
([#​7696](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7696 ))
- fix: `fully_qualified_strict_types` with
`leading_backslash_in_global_namespace` enabled - handle reserved types
in phpDoc
([#​7648](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7648 ))
- fix: `NoSpaceAroundDoubleColonFixer` must run before
`MethodChainingIndentationFixer`
([#​7723](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7723 ))
- fix: `no_superfluous_phpdoc_tags` must honor multiline docs
([#​7697](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7697 ))
- fix: `numeric_literal_separator` - Handle zero-leading floats properly
([#​7737](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7737 ))
- refactor: increase performance by ~7% thanks to `Tokens::block*Cache`
hit increased by ~12%
([#​6176](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/6176 ))
- refactor: Tokens - fast check for non-block in 'detectBlockType',
evaluate definitions only once in 'getBlockEdgeDefinitions'
([#​7655](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7655 ))
- refactor: `Tokens::clearEmptyTokens` - play defensive with cache
clearing
([#​7658](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7658 ))
- test: ensure we do not forget to test any short_open_tag test
([#​7638](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7638 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/ ). View
repository job log
[here](https://developer.mend.io/github/libretime/libretime ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: jo <ljonas@riseup.net>
2024-02-02 20:39:10 +01:00
Thomas Göttgens
a95ce3d229
feat(legacy): trim overbooked shows after autoloading a playlist ( #2897 )
...
### Description
Some combination of preload/postload and autoloding playlists with
smartblocks generate massively overbooked shows that clutter up the
interface. This addition performs a 'trim overbooked' after filling up
the autoload list, and does the same as pushing the 'trim overbooked'
button in the UI.
### Testing Notes
Define an autoloading playlist of 2 hours and schedule it for a one hour
show. Without patch, you'll get entries for 2 hours, with the patch, you
only get one hour and a 'overboarding' orange entry at most.
---------
Co-authored-by: Kyle Robbertze <paddatrapper@users.noreply.github.com>
Co-authored-by: Thomas Göttgens <tgoettgens@mail.com>
Co-authored-by: jo <ljonas@riseup.net>
2024-02-02 20:17:23 +01:00
Thomas Göttgens
170d09545e
feat(legacy): disable public radio page and redirect to login ( #2903 )
...
### Description
Many people don't need the public page and use libretime purely for
playout management. This adds the ability to have libretime publicly
available but only present the login page to the user.
**I have updated the documentation to reflect these changes**:
no, but i will add documentation if this PR is accepted.
### Testing Notes
**What I did:**
Toggle the new ceckbox on the general settings, log out and back in and
check behaviour.
note: this may have conflicts with the trim overbooked PR since the
toggle sits in the same place. If both are accepted this needs to be
formatted nicely :-)
---------
Co-authored-by: Thomas Göttgens <tgoettgens@mail.com>
Co-authored-by: Jonas L. <jooola@users.noreply.github.com>
Co-authored-by: Kyle Robbertze <paddatrapper@users.noreply.github.com>
Co-authored-by: jo <ljonas@riseup.net>
2024-02-02 19:04:12 +01:00
Julien Valentin
12dd477312
fix(legacy): avoid crash when lot of streams in configuration ( #2915 )
...
### Description
lot of streams forbid
http://libretime.example.org/preference/stream-setting to open (max=4)
this patch prevent the crash by displaying an error message and truncate
streamcount to 4.
Co-authored-by: Kyle Robbertze <paddatrapper@users.noreply.github.com>
2024-01-30 17:24:28 +00:00
Thomas Göttgens
95283efc1f
feat(legacy): add aac/opus support to dashboard player ( #2881 )
...
### Description
The Player on the dashbaord does not correctly play an AAC stream. The
rewritng logic only takes into account the ogg format. Add rewriting
from aac to m4a in the javascript calls so the player works.
**This is a new feature**:
AAC output currently only works with replacing liquidsoap, so
technically this is a new feature.
**I have updated the documentation to reflect these changes**:
The dashboard player is not documented. The player widget works with AAC
streams already.
### Testing Notes
**What I did:**
Swapped liquidsoap and reconfigured the default mp3 stream as AAC
**How you can replicate my testing:**
on ubuntu focal, drop in the upstream liquidsoap deb to enable aac, then
configure the secondary output to use 128kbit aac instead of mp3.
Restart the target, login to the dashboard and open the dashboard
player. Both streams from the dropdown should work.
---------
Co-authored-by: Thomas Göttgens <tgoettgens@mail.com>
Co-authored-by: Jonas L <jooola@users.noreply.github.com>
2024-01-13 13:47:54 +01:00
renovate[bot]
4827dbce71
fix(deps): update dependency friendsofphp/php-cs-fixer to <3.46.1 (main) ( #2868 )
...
[](https://renovatebot.com )
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[friendsofphp/php-cs-fixer](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer )
| `<3.45.1` -> `<3.46.1` |
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>PHP-CS-Fixer/PHP-CS-Fixer (friendsofphp/php-cs-fixer)</summary>
###
[`v3.46.0`](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3460 )
[Compare
Source](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.45.0...v3.46.0 )
- chore: fix internal typehints in Tokens
([#​7656](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7656 ))
- chore: reduce PHPStan baseline
([#​7643](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7643 ))
- docs: Show class with unit tests and BC promise info
([#​7667](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7667 ))
- feat: change default ruleset to `@PER-CS` (only behind
PHP_CS_FIXER_FUTURE_MODE=1)
([#​7650](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7650 ))
- feat: Support new/instanceof/use trait in
`fully_qualified_strict_types`
([#​7653](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7653 ))
- fix: FQCN parse phpdoc using full grammar regex
([#​7649](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7649 ))
- fix: Handle FQCN properly with `leading_backslash_in_global_namespace`
option enabled
([#​7654](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7654 ))
- fix: PhpdocToParamTypeFixerTest - support for arrow functions
([#​7647](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7647 ))
- fix: PHP_CS_FIXER_FUTURE_MODE - proper boolean validation
([#​7651](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7651 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/ ). View
repository job log
[here](https://developer.mend.io/github/libretime/libretime ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: jo <ljonas@riseup.net>
2024-01-07 13:59:02 +01:00
renovate[bot]
6f84328380
fix(deps): update dependency friendsofphp/php-cs-fixer to <3.45.1 (main) ( #2855 )
...
[](https://renovatebot.com )
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[friendsofphp/php-cs-fixer](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer )
| `<3.43.2` -> `<3.45.1` |
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>PHP-CS-Fixer/PHP-CS-Fixer (friendsofphp/php-cs-fixer)</summary>
###
[`v3.45.0`](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3450 )
[Compare
Source](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.44.0...v3.45.0 )
- feat: Enable symbol importing in `@PhpCsFixer` ruleset
([#​7629](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7629 ))
- fix: NoUnneededBracesFixer - improve handling of global namespace
([#​7639](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7639 ))
- test: run tests with "short_open_tag" enabled
([#​7637](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7637 ))
###
[`v3.44.0`](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3440 )
[Compare
Source](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.43.1...v3.44.0 )
- feat: Introduce percentage bar as new default progress output
([#​7603](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7603 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/ ). View
repository job log
[here](https://developer.mend.io/github/libretime/libretime ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: jo <ljonas@riseup.net>
2023-12-30 19:41:50 +01:00
renovate[bot]
62e5f4dfbb
fix(deps): update dependency friendsofphp/php-cs-fixer to <3.43.2 (main) ( #2848 )
...
[](https://renovatebot.com )
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[friendsofphp/php-cs-fixer](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer )
| `<3.42.1` -> `<3.43.2` |
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>PHP-CS-Fixer/PHP-CS-Fixer (friendsofphp/php-cs-fixer)</summary>
###
[`v3.43.1`](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3431 )
[Compare
Source](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.43.0...v3.43.1 )
- fix: Import only unique symbols' short names
([#​7635](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7635 ))
###
[`v3.43.0`](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3430 )
[Compare
Source](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.42.0...v3.43.0 )
- chore: change base of `@Symfony` set to `@PER-CS2.0`
([#​7627](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7627 ))
- chore: PHPUnit - allow for v10
([#​7606](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7606 ))
- chore: Preg - rework catching the error
([#​7616](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7616 ))
- chore: Revert unneeded peer-dep-pin and re-gen lock file
([#​7618](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7618 ))
- docs: drop extra note about 8.0.0 bug in README.md
([#​7614](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7614 ))
- feat: add cast_spaces into `@PER-CS2.0`
([#​7625](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7625 ))
- feat: Configurable phpDoc tags for FQCN processing
([#​7628](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7628 ))
- feat: StatementIndentationFixer - introduce
stick_comment_to_next_continuous_control_statement config
([#​7624](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7624 ))
- feat: UnaryOperatorSpacesFixer - introduce only_dec_inc config
([#​7626](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7626 ))
- fix: FullyQualifiedStrictTypesFixer - better support annotations in
inline {}
([#​7633](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7633 ))
- fix: Improve how FQCN is handled in phpDoc
([#​7622](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7622 ))
- fix: phpdoc_align - fix multiline tag alignment issue
([#​7630](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7630 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/ ). View
repository job log
[here](https://developer.mend.io/github/libretime/libretime ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: jo <ljonas@riseup.net>
2023-12-29 15:28:57 +01:00
maxtim
06af18b84e
feat(playout): configure device for alsa and pulseaudio system outputs ( #2654 )
...
### Description
Add hardware configuration to liquidsoap so that users may
set hardware output in config.yml.
---------
Co-authored-by: jo <ljonas@riseup.net>
2023-12-29 15:22:43 +01:00
Jonas L
083ee3f1dd
feat!: default system output is now pulseaudio ( #2842 )
...
BREAKING CHANGE: The default system output
(`stream.outputs.system[].kind`) changed from `alsa` to `pulseaudio`.
Make sure to update your configuration file if you rely on the default
system output.
Closes #2542
2023-12-27 18:23:40 +01:00
Jonas L
0d2d1a2673
feat!: the general.secret_key configuration field is now required ( #2841 )
...
BREAKING CHANGE: The `general.secret_key` configuration field is now
required. Make sure to update your configuration file and add a secret
key.
Closes #2426
2023-12-27 18:15:47 +01:00
Jonas L
24ee3830c2
fix(legacy): ensure last played criteria works with never played files ( #2840 )
...
### Description
Closes #2798
COALESCE last played null values with date -infinity, to ensure newly
added files are found by the last played smart block criteria.
2023-12-27 17:32:33 +01:00
renovate[bot]
8ae4dce9e7
fix(deps): update dependency friendsofphp/php-cs-fixer to <3.42.1 (main) ( #2765 )
...
[](https://renovatebot.com )
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[friendsofphp/php-cs-fixer](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer )
| `<3.41.2` -> `<3.42.1` |
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
[](https://docs.renovatebot.com/merge-confidence/ )
|
---
### Release Notes
<details>
<summary>PHP-CS-Fixer/PHP-CS-Fixer (friendsofphp/php-cs-fixer)</summary>
###
[`v3.42.0`](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/HEAD/CHANGELOG.md#Changelog-for-v3420 )
[Compare
Source](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/compare/v3.41.1...v3.42.0 )
- chore: aim to not rely on internal array pointer but use
array_key_first
([#​7613](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7613 ))
- chore: deprecate Token::isKeyCaseSensitive
([#​7599](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7599 ))
- chore: deprecate Token::isKeyCaseSensitive, 2nd part
([#​7601](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7601 ))
- chore: do not check PHP_VERSION_ID
([#​7602](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7602 ))
- chore: FileFilterIteratorTest - more accurate type in docs
([#​7542](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7542 ))
- chore: minor code cleanup
([#​7607](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7607 ))
- chore: more types
([#​7598](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7598 ))
- chore: PHPDoc key-value spacing
([#​7592](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7592 ))
- chore: PHPUnit - run defects first
([#​7570](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7570 ))
- chore: ProjectCodeTest - DRY on Tokens creation
([#​7574](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7574 ))
- chore: ProjectCodeTest - prepare for symfony/console v7
([#​7605](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7605 ))
- chore: ProjectCodeTest::provide\*ClassCases to return iterable with
key for better tests execution log
([#​7572](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7572 ))
- chore: ProjectCodeTest::testDataProvidersDeclaredReturnType - use
better DataProvider to simplify test logic
([#​7573](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7573 ))
- chore: TokensAnalyzer - string-enum for better typehinting
([#​7571](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7571 ))
- chore: unify tests not agnostic of PHP version
([#​7581](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7581 ))
- chore: use ::class more
([#​7545](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7545 ))
- CI: Introduce `composer-unused`
([#​7536](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7536 ))
- DX: add types to anonymous functions
([#​7561](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7561 ))
- DX: Allow running smoke tests within Docker runtime
([#​7608](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7608 ))
- DX: check fixer's options for wording
([#​7543](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7543 ))
- DX: cleanup deprecation message
([#​7576](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7576 ))
- DX: do not allow overriding constructor of
`PHPUnit\Framework\TestCase`
([#​7563](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7563 ))
- DX: do not import ExpectDeprecationTrait in UtilsTest
([#​7562](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7562 ))
- DX: Enforce consistent naming in tests
([#​7556](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7556 ))
- DX: fix checking test class extends `PhpCsFixer\Tests\TestCase`
([#​7567](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7567 ))
- DX: make sure that exceptions in
`AbstractFixerTestCase::testProperMethodNaming` are not already fixed
([#​7588](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7588 ))
- DX: remove recursion from AbstractIntegrationTestCase::testIntegration
([#​7577](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7577 ))
- DX: remove `PhpUnitNamespacedFixerTest::testClassIsFixed`
([#​7564](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7564 ))
- DX: remove `symfony/phpunit-bridge`
([#​7578](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7578 ))
- DX: replace fixture classes with anonymous ones
([#​7533](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7533 ))
- DX: Unify Docker mount points and paths
([#​7549](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7549 ))
- DX: unify fixer's test method names - quick wins
([#​7584](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7584 ))
- DX: unify tests for casing fixers
([#​7558](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7558 ))
- DX: use anonymous function over concrete classes
([#​7553](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7553 ))
- feat(EXPERIMENTAL): ClassKeywordFixer
([#​2918](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/2918 ))
- feat(EXPERIMENTAL): ClassKeywordFixer, part 2
([#​7550](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7550 ))
- feat(PhpdocToCommentFixer): Add option to handle return as valid
docblock usage
([#​7401](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7401 ))
([#​7402](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7402 ))
- feat: Ability to import FQCNs found during analysis
([#​7597](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7597 ))
- feat: add phpDoc support for `fully_qualified_strict_types` fixer
([#​5620](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/5620 ))
- feat: Handle deprecated rule sets similarly to deprecated fixers
([#​7288](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7288 ))
- feat: PhpUnitTestCaseStaticMethodCallsFixer - cover PHPUnit v10
methods
([#​7604](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7604 ))
- feat: Support more FQCNs cases in `fully_qualified_strict_types`
([#​7459](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7459 ))
- fix: AbstractFixerTestCase - fix checking for correct casing
([#​7540](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7540 ))
- fix: Better OS detection in integration tests
([#​7547](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7547 ))
- fix: NativeTypeDeclarationCasingFixe - handle static property without
type
([#​7589](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7589 ))
- test: AutoReview - unify data provider returns
([#​7544](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7544 ))
- test: check to have DataProviders code agnostic of PHP version
([#​7575](https://togithub.com/PHP-CS-Fixer/PHP-CS-Fixer/issues/7575 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/ ). View
repository job log
[here](https://developer.mend.io/github/libretime/libretime ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzcuMTAzLjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: jo <ljonas@riseup.net>
2023-12-27 13:40:15 +01:00
Jonas L
f252a16637
fix(legacy): allow uploading opus files ( #2804 )
2023-12-22 19:30:01 +01:00
jo
d2fc47941c
Merge branch 'stable'
2023-12-18 19:22:54 +01:00