Skip to content

Update issue-bot (major) - #3442

Open
renovate[bot] wants to merge 1 commit into
2.3.xfrom
renovate/major-issue-bot
Open

renovate[bot] wants to merge 1 commit into
2.3.xfrom
renovate/major-issue-bot

Conversation

@renovate

@renovate renovate Bot commented Sep 16, 2024 •

Copy link
Copy Markdown
Contributor

Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
nette/utils (source) ^3.2 → ^4.0 age confidence
phpunit/phpunit (source) ^10 → ^13 age confidence
symfony/console (source) ^6.1 → ^8.0 age confidence
symfony/finder (source) ^6.1 → ^8.0 age confidence

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

nette/utils

v4.1.6: Released version 4.1.6

Compare Source

A small maintenance release: PHP 8.6 support and one fix for paths with a scheme.

✨ New Features

  • PHP 8.6 is supported

🐛 Bug Fixes

  • FileSystem::normalizePath(), joinPaths() and resolvePath() keep the scheme of paths like phar://

v4.1.5: Released version 4.1.5

Compare Source

This release adds an immutable date/time class, makes file writes safer, background processes possible, and Finder masks smarter. Plus a couple of bug fixes worth picking up.

✨ New Features

  • DateTimeImmutable – a new immutable counterpart to Nette\Utils\DateTime. It extends PHP's \DateTimeImmutable with strict validation (invalid dates and times throw instead of being silently rolled over), convenient factories from() and fromParts(), DST-safe relative modifications, and JSON serialization.
  • FileSystem::writeAtomic() – writes a file atomically via a temporary file and rename, so a concurrent reader never sees it partially written or truncated. Ideal for caches and generated configs.
  • Process::detach() – lets a process keep running in the background after the Process object is destroyed, instead of being killed by the destructor. Output must go to a file or be discarded, since nobody reads the pipes after detaching.
  • Process – on Windows with PHP 8.5, captured output now flows through real pipes instead of temporary files, thanks to the fixed stream_select().
  • Html::fragment() and add() – create a nameless element pre-filled with children, or append children to an existing element. Unlike addHtml(), plain strings are escaped by default and nulls are skipped.
  • Html::text() and Html::html() – new static factories replacing fromText() and fromHtml(), which are now deprecated.
  • Finder – the mask now fully drives recursion: **/foo together with in() searches recursively, and the ** short form expands like in zsh, so test/** means test/**/* and **.c means **/*.c (previously such masks silently degraded to a single *).
  • Finder – a trailing slash in a find() mask matches directories only: find('temp/').
  • Finder::exclude() – now uses the same mask grammar as find(): **.txt works, ./ anchors to the search root, and a trailing /, /* or /** controls whether the directory itself, its contents, or both are excluded.
  • Finder – paths are no longer normalized to forward slashes; they stay in their native form, which also fixes corruption of backslashes in POSIX file names. Note: on Windows, returned paths may now contain backslashes where they used to be unified.

🐛 Bug Fixes

  • ArrayList::prepend() – no longer misbehaves on an empty list.
  • Validators::isUrl() – now rejects malformed IPv4 addresses with octets above 255, so nonsense like http://999.1.1.1 no longer passes as a valid URL.
  • Strings::compare() – tolerates invalid UTF-8 instead of failing when the Normalizer gives up.
  • Strings::length() – the fallback used when neither mbstring nor iconv is available no longer relies on the deprecated utf8_decode(), so it stays quiet on PHP 8.2+.
  • Finder::exclude() – exclude('subdir/') silently excluded nothing due to a greedy regex; the trailing /, /* and /** variants now work as documented.

v4.1.4: Released version 4.1.4

Compare Source

  • Process – a new class for starting and controlling external processes: read their output, feed them input, pipe one process into another, wait for completion, terminate, and check exit codes. Process::runExecutable() passes arguments as an array so there's zero shell involvement and no risk of shell injection, while Process::runCommand() is there when you really do want the shell. Comes with timeouts, incremental output consumption (consumeStdOutput() / consumeStdError()), and works on Windows too.
  • FileSystem::isValidFilename() – quickly check whether a string is a safe, cross-platform filename: it rejects path separators, control and reserved characters, trailing dots or spaces, and Windows device names like CON or LPT1.
  • Image::fromFile() and Image::fromString() now accept an optional $warnings parameter – pass it in and any GD warnings are handed back to you as a string instead of being emitted as a PHP warning, so you can log or display them on your own terms.

v4.1.3: Released version 4.1.3

Compare Source

A maintenance release focused on code quality: stricter types, better PHPDoc annotations, and PHPStan now runs as a mandatory CI check. No breaking changes.

v4.1.1: Released version 4.1.1

Compare Source

  • Html::addText() accepts int|null for back compatibility [Closes #​332][Closes #​333]

v4.1.0: Released version 4.1.0

Compare Source

  • requires PHP 8.2
  • DateTime: strict behavior (BC break)
  • Strings::webalize() requires INTL extension
  • StaticClass: is not overriding __callStatic()

v4.0.11: Released version 4.0.11

Compare Source

  • PHP 8.6 is supported, so Nette Utils 4.0 now covers PHP 8.0 to 8.6

v4.0.10: Released version 4.0.10

Compare Source

  • added Type::with()
  • added Type::fromValue()
  • added Helpers::splitClassName()
  • added Iterables::repeatable()
  • Finder: is_file() does not work with symlinks under Windows

v4.0.9: Released version 4.0.9

Compare Source

support for PHP 8.5

v4.0.8: Released version 4.0.8

Compare Source

  • support for PHP 8.5
  • Strings::trim() trims Line Separator and Ideographic Space (#​326)
  • DateTime: fixed parsing 'ago' modifier #​327
  • DateTime::relativeToSeconds() checks for error
  • optimized global function calls

v4.0.7: Released version 4.0.7

Compare Source

  • DateTime: constructor and modify() correctly handle the relative time even if the daylight saving time is changed
  • DateTime: added static method relativeToSeconds() for converting relative time string to seconds
  • DateTime: triggers a warning when time overflow occurs

v4.0.6: Released version 4.0.6

Compare Source

  • Image: catches all errors during saving
  • added Helpers::IsWindows
  • added ShouldNotHappenException
  • added FileSystem::resolvePath() #​308
  • tests: improved descriptions
  • exception: use natural explanatory style

v4.0.5: Released version 4.0.5

Compare Source

  • Strings::matchAll(): added option 'lazy'
  • added Arrays::mapWithKeys() & Iterables::mapWithKeys()
  • added Iterables::memoize() & toIterator()
  • Image: GD extension detection added
  • support for PHP 8.4

v4.0.4: Released version 4.0.4

Compare Source

  • added Iterables
  • added Arrays::firstKey(), lastKey()
  • added Arrays::filter()
  • Arrays::first() & last(): added parameter $else
  • Arrays::first() & last(): added parameter $predicate #​305
  • added Image::getSupportedTypes()
  • Arrays: improved phpDoc
  • utilizes Random\Randomizer in PHP 8.3
  • StaticClass: fixed compatibility with PHP 8.3.2
  • Strings::trim() trims unicode spaces and ZWSP (#​304)

v4.0.3: Released version 4.0.3

Compare Source

  • added ImageColor, replaces Image::rgb()
  • added Image::rectangleWH(), filledRectangleWH(), calculateTextBox()
  • Type: fixed resolving of 'static' nette/di#295

v4.0.2: Released version 4.0.2

Compare Source

  • Strings::length() uses mbstring, iconv and then utf8_decode #​299
  • Finder: getType() replaced with isDir() / isFile()
  • StaticClass: constructor is private nette/di#292
  • Arrays: add generic type declaration for some(), every() and map() (#​298)
  • FileSystem: can be used as instance

v4.0.1: Released version 4.0.1

Compare Source

  • support for PHP 8.3
  • added Image::isTypeSupported()
  • added enum ImageType
  • Finder: collect() returns list
  • Finder: improved exception when directory is missing
  • Finder: default mask is '*'
  • improved type annotations (#​290)
  • Callback::unwrap() returns correct class name for private methods

v4.0.0: Released version 4.0.0 🥳

Compare Source

  • uses PHP 8 featurs
  • includes a completely rewritten Finder
  • PascalCase constants
  • Strings: added support for UTF-8 offsets in regexp
  • Translator: improved interface, accepts and returns string|Stringable [Closes #​231]
  • ArrayHash & ArrayList: support iteration with reference (#​289)

new methods:

  • Nette\Utils\Json::decodeFile() reads JSON from a file
  • Nette\Utils\FileSystem::unixSlashes() & platformSlashes() converts slashes to Unix slashes
  • Nette\Utils\Strings::ord(), unixNewLines() & platformNewLines()
  • Nette\Utils\Helpers::compare() compare using the operator

new parameters:

  • Nette\Utils\Strings::split() added parameter $limit
  • Nette\Utils\Strings::replace() added parameters $captureOffset, $unmatchedAsNull
  • Nette\Utils\Strings, Nette\Utils\Arrays, Nette\Utils\Json: flags replaced with parameters

removed

  • Reflection: removed obsolete getReturnType(), getParameterType(), getPropertyType() (BC break)
sebastianbergmann/phpunit (phpunit/phpunit)

v13.4.3: PHPUnit 13.4.3

Compare Source

Fixed
  • The dependencies of a test that are listed after a dependency on a test that does not return a value, or after a dependency on a larger test, were not checked, so the test was run instead of being skipped when one of these dependencies had not passed
  • Tests could not be run in process isolation when the namespace of the test class begins with a name that the code of the child process imports, for instance CodeCoverage or Facade
  • A test that is run in process isolation aborts the test run when its data set or a value returned by a test it depends on cannot be serialized, for instance because it is a closure
  • When a before-first-test method or an after-last-test method errors or fails, the remaining methods of the same kind are still called, and each of them that does not error or fail itself is reported with the exception of the earlier method
  • When a hook method of a test, for instance a #[Before] method, skips the test, the remaining hook methods of the same kind are still called, so the test is reported as errored instead of skipped when one of them errors
  • An error or failure in a before-first-test method or an after-last-test method that is called again in the child process of a test that is run in process isolation is reported twice, once for the test class and once for the test
  • When a before-first-test method errors, the progress output shows one E for the test class instead of one for each of its tests, only one of its tests is counted as run, and the test that is run next is shown as an error
  • When a before-first-test method fails, the progress output shows nothing for the tests of the test class and only one of them is counted as run
  • The Open Test Reporting XML logfile has no start for a test that errors before it is prepared, for instance because it depends on a test that does not exist, and no end for the test that is run after a test that is skipped because a test it depends on did not pass or because one of its
    requirements is not met
  • The Open Test Reporting XML logfile has no entry for a test that is marked as incomplete before it is prepared, for instance in setUp(), and reports the test that is run after it as aborted with the message of the incomplete test
  • The Open Test Reporting XML logfile has no end for the test that is run after a test whose preparation errors, for instance because setUp() raises an exception or the global state cannot be backed up
  • The Open Test Reporting XML logfile reports a test that has more than one outcome, for instance because tearDown() fails after the test errored, with its last outcome instead of its most severe one, and with more than one end when the preparation of the test errored
  • The Open Test Reporting XML logfile is not well-formed when a test name, a message, the output of a test, or the string representation of an exception contains ]]>, bytes that are not valid UTF-8, or characters that are not allowed in XML, for instance the escape character of an ANSI
    escape sequence
  • The Open Test Reporting XML logfile reports an issue that is triggered before a test is prepared, for instance in setUp(), with an empty ID before the start of the test

Learn how to install or update PHPUnit 13.4 in the documentation.

Keep up to date with PHPUnit:

v13.4.2: PHPUnit 13.4.2

Compare Source

Fixed
  • #​7033: Compact printer is created although an extension replaces the progress output
  • #​7035: Sorting tests by duration recomputes the duration of a test suite for every comparison
  • Sorting tests by size recomputes the size of a test suite for every comparison
  • expectUserDeprecationMessage() and expectUserDeprecationMessageMatches() did not see the deprecations triggered by an attempt of a retried test and saw those of the previously run test instead
  • The status of a test whose mock object raises an exception in its destructor is success although the test is reported as errored, so #[Retry] does not retry the test, --repeat does not skip the remaining repetitions, tearDown() sees the wrong status, and code coverage records the test as successful
  • Named arguments passed to with() were matched by position instead of by name, so an expectation such as ->with(b: 7) compared the expected value with the first parameter of the method and the parameter named $b was not checked
  • String keys of the parameter sets passed to withParameterSetsInOrder(), withParameterSetsInAnyOrder(), and withParameterSetsInPartialOrder() were ignored, so a parameter set such as ['b' => 7] compared the expected value with the first parameter of the method and the parameter
    named $b was not checked

Learn how to install or update PHPUnit 13.4 in the documentation.

Keep up to date with PHPUnit:

v13.4.1: PHPUnit 13.4.1

Compare Source

Changed
  • The Software Bill of Materials (SBOM) embedded in the PHAR now uses CycloneDX 1.7 and provides the NTIA minimum elements as well as the data fields that BSI TR-03183-2 (version 2.1.0) requires for logical and identified components, including component creators, original, distribution and effective licences, source code URIs, and the PHP runtime and its extensions as external components
Fixed
  • #​7029: TestSuite::runTests() doubles garbage collector time when zend.exception_ignore_args is off
  • setUpBeforeClass() and tearDownAfterClass() were run twice for a test class that is the only test class in a test suite of the XML configuration file that has the name of that test class
  • Tests could not be run in process isolation when the path of the bootstrap script, the test file, or the directory for temporary files contained a single quote
  • Arguments in the --ARGS-- section of a PHPT test that start with - were interpreted by PHP instead of being passed to the test when the test also has a --STDIN-- section
  • Recording the tests that passed in a child process copied all tests that had passed so far, which made running many tests in process isolation increasingly slow

Learn how to install or update PHPUnit 13.4 in the documentation.

Keep up to date with PHPUnit:

v13.4.0: PHPUnit 13.4.0

Compare Source

Added
  • #​6585: executionOrder attribute values and --order-by token lists that spell the order before defects, for example duration-ascending,defects
  • #​6585: pipeline() on the TestSuite\Sorted event for inspecting which reordering stages were applied
  • #​6686: Constraint::negatedToString() and Constraint::negatedFailureDescription() for authoring the description of a constraint that is wrapped in LogicalNot
  • #​6863: Cache which tests a test file contains
  • #​6957: Allow ordering tests by the time their source files were last modified
  • #​6958: Select the tests that are in all of several groups
  • #​6960: Record the order in which methods of mock objects are invoked
  • #​6964: #[RequiresClass] attribute to skip a test if a class does not exist
  • #​6995: ChildProcessExtension interface for extensions that need to be bootstrapped in the child process of a test that runs in process isolation
  • --coverage-jsonl CLI option and <jsonl> element for the XML configuration file to write a code coverage report in JSONL format, one JSON object per line, that reports uncovered code rather than every executable line
  • --timeout CLI option to limit the wall-clock time of the entire test run
  • requireCoverageMetadataOnSmallTests, requireCoverageMetadataOnMediumTests, and requireCoverageMetadataOnLargeTests attributes for the XML configuration file to require code coverage metadata depending on the size of a test; these have precedence over requireCoverageMetadata
Changed
  • Output printed by a test is now shown in the compact output as a --- OUTPUT: record that is attributed to the test instead of being passed through unformatted; the record is omitted when beStrictAboutOutputDuringTests or --disallow-test-output already reports the output as risky
Deprecated
  • #​6585: Writing defects before the order for --order-by and executionOrder, which will change meaning in PHPUnit 14
  • #​6585: depends and no-depends for --order-by and executionOrder
  • #​6585: Configuring more than one order for --order-by and executionOrder
  • #​6585: Unknown values for the executionOrder XML configuration attribute, which are currently ignored
  • #​6686: Constraint::failureDescriptionInContext() and LogicalNot::negate()
  • #​6999: Class-level #[Group], #[Ticket], #[Small], #[Medium], and #[Large] on parent classes of test classes
Fixed
  • Issues that are listed in the baseline are not ignored for tests that are run in a separate process
  • A test that is run in process isolation aborts the test run when its result cannot be unserialized, for instance because it returns an object that holds a test double
  • A test that uses #[DataProviderClosure] errors when it is run in process isolation

Learn how to install or update PHPUnit 13.4 in the documentation.

Keep up to date with PHPUnit:

v13.3.6: PHPUnit 13.3.6

Compare Source

Fixed
  • The first attempt of a test that is retried is reported as attempt 1 of 1 in events, instead of attempt 1 of the configured maximum number of attempts
  • The class name argument of #[RequiresMethod] is declared as class-string, so static analysis reports an error when it refers to a class that does not exist
  • A #[RequiresMethod] attribute that refers to a class which cannot be loaded, for instance because its parent class does not exist, aborts the test run instead of skipping the test

Learn how to install or update PHPUnit 13.3 in the documentation.

Keep up to date with PHPUnit:

v13.3.5: PHPUnit 13.3.5

Compare Source

Changed
  • Control characters and ANSI escape sequences in user-supplied strings such as test names, data set names, and messages are now made visible as \u{NNNN} escape sequences instead of being passed through to the terminal
  • Control characters in user-supplied strings are now also made visible in the compact output
  • Line feeds in the name of a test no longer break the header line of a record in the compact output

Learn how to install or update PHPUnit 13.3 in the documentation.

Keep up to date with PHPUnit:

v13.3.4: PHPUnit 13.3.4

Compare Source

Fixed
  • #​6965: Temporary file used by SourceMapper may be deleted prematurely
  • The compact output displays details on PHPUnit deprecations and PHPUnit notices even when --display-phpunit-deprecations and --display-phpunit-notices are not used
  • The summary line of the compact output does not report the number of PHPUnit deprecations, PHPUnit notices, and PHPUnit warnings

Learn how to install or update PHPUnit 13.3 in the documentation.

Keep up to date with PHPUnit:

v13.3.3: PHPUnit 13.3.3

Compare Source

Fixed
  • Paths of included files are now escaped when generating the code that is executed in a separate process, so that a path containing special characters no longer produces broken code
  • Tests of a test class that is skipped as a whole are missing from the TestDox output
  • A test that is skipped or marked incomplete before it started is missing from the TestDox output
  • A test that is marked incomplete before it started is not counted in the number of tests that ran
  • No progress is printed for a test that is marked incomplete before it started

Learn how to install or update PHPUnit 13.3 in the documentation.

Keep up to date with PHPUnit:

v13.3.2: PHPUnit 13.3.2

Compare Source

Fixed
  • #​6904: SourceMap is built in child process even though identifyIssueTrigger is disabled
  • #​6924: #[CoversFile] attribute is not considered for risky test check

Learn how to install or update PHPUnit 13.3 in the documentation.

Keep up to date with PHPUnit:

v13.3.1: PHPUnit 13.3.1

Compare Source

Changed
  • Invoking a static hook method such as setUpBeforeClass() no longer triggers a deprecation warning on PHP 8.6

Learn how to install or update PHPUnit 13.3 in the documentation.

Keep up to date with PHPUnit:

v13.3.0: PHPUnit 13.3.0

Compare Source

Added
  • #​3794: Filesystem-based code coverage targeting
  • #​5758: Make export of objects customizable
  • #​6546: Both property hooks can now be configured on test doubles of virtual hooked properties, even when the doubled property only declares one of them
  • #​6586: Custom code coverage driver support
  • #​6591: Repeated test execution using --repeat CLI option and #[Repeat] attribute
  • #​6701: Allow expectOutputString() and expectOutputRegex() to be combined and repeated
  • #​6710: Deprecation Filters
  • #​6722: Allow #[CoversNothing] on methods
  • #​6742: Retry failing tests up to N times using --retry CLI option #[Retry] attribute
  • #​6827: Customize which deprecation trigger types fail the test run
  • #​6830: Warn when failOnAllIssues="true" is combined with an explicitly disabled fine-grained failOn* setting
  • #​6832: Allow doubling properties that do not declare property hooks
  • #​6853: Optionally warn when PHP is not configured for development
  • phpunit/php-code-coverage #​1140: Class-oriented HTML report
  • phpunit/php-code-coverage #​1141: Improve visualization of branch coverage and path coverage in the HTML report
  • phpunit/php-code-coverage #​1153: Filter HTML code coverage report by test size
  • --record-test-run-history and --do-not-record-test-run-history CLI options as well as the recordTestRunHistory attribute for the XML configuration file to control whether the status and duration of each test are recorded for use by --order-by defects and --order-by duration-*
  • --without-class-view CLI option and classView attribute for the XML configuration file to disable the class-oriented view in the HTML code coverage report
  • --without-file-view CLI option and fileView attribute for the XML configuration file to disable the file-oriented view in the HTML code coverage report
  • {PWD} is now substituted with the directory of the PHPT test file in --ENV-- and --INI-- sections of PHPT test files
  • {TMP} (system directory for temporary files) and {ENV:name} (value of environment variable name) are now substituted in --INI-- sections of PHPT test files
  • A PHPT test whose --INI-- section references an environment variable that is not set is now skipped
  • A --SKIPIF-- section of a PHPT test file that prints xfail <reason> now marks the test as expected to fail, as if the PHPT test file had an --XFAIL-- section with that reason
Changed
  • phpunit/php-code-coverage #​1231: Identify dead code using static analysis
  • phpunit/php-code-coverage #​1259: Degrade gracefully when a source file cannot be parsed
  • The test runner no longer crashes when an attribute cannot be instantiated
  • Improved TestDox HTML report
  • The feature formerly named "test result cache" is now named "test run history"; when a cache directory is configured, the file it is stored in is now named test-run-history instead of test-results
  • The test runner warns now when ordering by defects or duration is configured but recording of the test run history is disabled
  • TestCase no longer captures error_log() output for tests that do not use expectErrorLog(), avoiding the cost of setting up error log redirection for every test
  • error_log() output from tests without an expectation is no longer echoed (date-stripped) to PHPUnit's output; it goes to the configured error log again, as it did before capture was introduced
  • A test running in process isolation that calls error_log() without expectErrorLog() now produces stderr output in the child process, which the test runner reports as a test error
  • A PHPT test that is expected to fail (--XFAIL-- section or xfail output from the --SKIPIF-- section) but passes is now considered risky; this usually means the expected-failure marker is stale and should be removed
  • A PHPT test whose --SKIPIF-- section produces output that is not recognized is now considered risky; this usually means the skip check itself is broken. The keywords understood by PHP's own test runner that have no PHPUnit counterpart (info, warn, xleak, flaky, and nocache) are tolerated and do not make the test risky
  • PHPT tests now run with additional INI defaults for deterministic output (date.timezone=UTC, display_startup_errors=1, fatal_error_backtraces=Off, ignore_repeated_errors=0, precision=14,
    serialize_precision=-1), consistent with PHP's own test runner; all of them can be overridden per test using the --INI-- section
Deprecated
  • --cache-result CLI option, use --record-test-run-history instead
  • --do-not-cache-result CLI option, use --do-not-record-test-run-history instead
  • cacheResult XML configuration attribute, use recordTestRunHistory instead
  • PHPUnit\TextUI\Configuration\Configuration::cacheResult(), use PHPUnit\TextUI\Configuration\Configuration::recordTestRunHistory() instead
  • PHPUnit\TextUI\Configuration\Configuration::testResultCacheFile(), use PHPUnit\TextUI\Configuration\Configuration::testRunHistoryFile() instead
Fixed
  • Doubling a class with a property that declares both a final and a non-final hook no longer triggers a fatal error
  • expectErrorLog() now only considers error_log() output written after it was called; previously, the expectation was also satisfied by output written before expectErrorLog() was called
  • PHPT test files with an unknown section, a duplicated section, more than one of the --FILE--, --FILEEOF--, and --FILE_EXTERNAL-- sections, or more than one expectation section (--EXPECT--, --EXPECTF--, --EXPECTREGEX--, and their _EXTERNAL variants) are now rejected; previously, misspelled sections were silently ignored and duplicated sections silently overwrote each other
  • The regular expression from an --EXPECTREGEX-- section must now match the PHPT test's entire output, and . now matches newline characters, consistent with PHP's own test runner; previously, a match on a substring of the output was sufficient for the test to pass
  • The reason printed by a --SKIPIF-- section of a PHPT test is no longer mangled when it follows the skip <reason> convention used by PHP's own test suite; previously, the first two characters of the reason were stripped unless the skip: <reason> or skip - <reason> convention was used
  • The test runner no longer aborts with an uncaught PHPUnit\Runner\Phpt\InvalidPhptFileException when a PHPT test file has an empty --FILE-- or --FILEEOF-- section or a --FILE_EXTERNAL-- section that references an empty file; such a file is now rejected while it is parsed and reported as an errored test
  • PHPUnit\Runner\Phpt\InvalidPhptFileException now has a message that explains why the PHPT test file was rejected

Learn how to install or update PHPUnit 13.3 in the documentation.

Keep up to date with PHPUnit:

v13.2.6: PHPUnit 13.2.6

Compare Source

Fixed
  • #​6861: Hook methods run twice when a template method is marked with its corresponding attribute
  • Regression that stopped test methods from being sorted by source code location

Learn how to install or update PHPUnit 13.2 in the documentation.

Keep up to date with PHPUnit:

v13.2.5: PHPUnit 13.2.5

Compare Source

Changed
  • Messages for tests that are skipped because of an unsatisfied RequiresPhp, RequiresPhpunit, or RequiresPhpExtension version requirement now include the version that is actually being used
  • Warning messages about incomplete version requirements as well as version requirements without a version comparison operator, and the error message for invalid version requirements, now include the full version requirement and explain what is expected
Fixed
  • #​6825: Forwarding to previous error handler can result in infinite recursion
  • #​6831: PHPUnit's error handler does not respect @ error suppression and forwards suppressed warnings to previous error handler
  • #​6833: assertArrayHasKey() does not accept ArrayAccess implementations with a specific value type when test code is analysed with PHPStan at level 9
  • #​6854: Deprecation triggered in first-party code is wrongly classified as indirect when the first-party code is called from third-party code
  • Test classes were not sorted relative to each other when tests were ordered by duration

Learn how to install or update PHPUnit 13.2 in the documentation.

Keep up to date with PHPUnit:

v13.2.4: PHPUnit 13.2.4

Compare Source

Fixed
  • #​6817: Issue is reported even when previously registered error handler turns the error into an exception
  • #​6818: Issue is reported when custom error handler checks error_reporting() output dynamically

Learn how to install or update PHPUnit 13.2 in the documentation.

Keep up to date with PHPUnit:

v13.2.3: PHPUnit 13.2.3

Compare Source

Changed
  • #​6797: Adapt code generated for test double of interface with constructor for PHP 8.6

Learn how to install or update PHPUnit 13.2 in the documentation.

Keep up to date with PHPUnit:

v13.2.2: PHPUnit 13.2.2

Compare Source

Fixed
  • #​6768: Negative priorities for hook methods are rejected by static analysis
  • #​6778: Deprecation triggered outside of tests cannot be ignored

Learn how to install or update PHPUnit 13.2 in the documentation.

Keep up to date with PHPUnit:

v13.2.1: PHPUnit 13.2.1

Compare Source

Fixed
  • #​6741: Test is not run when --filter matches the name of a data set but not the name of the test method
  • #​6743: Improve error message for invalid version constraint in attribute
  • #​6744: Environment variable attributes reject empty-string values since PHPUnit 13.2.0

Learn how to install or update PHPUnit 13.2 in the documentation.

Keep up to date with PHPUnit:

v13.2.0: PHPUnit 13.2.0

Compare Source

Added
  • #​3387: Specify a list of tests to run
  • #​4201: Handle interrupts and display current test results
  • #​4501: Option to mark test as risky when it does not contribute to code coverage
  • #​5757: Add assertions for ignoring whitespace differences in strings
  • #​5810: Do not dump arrays and objects in failure messages of IsTrue, IsFalse, IsNull, IsFinite, IsInfinite, and IsNan constraints
  • #​5838: Inherit #[RunTestsInSeparateProcesses] from parent test classes
  • #​5922: assertContainsEquals() should use sebastian/comparator for element comparison
  • #​6000: Report PHPT test as risky when --SKIPIF-- does not have standard-output side effect
  • #​6075: Support test execution order sorted by descending duration
  • #​6346: Emit warning when conflicting CLI options are used
  • #​6534: Make $_dataName available to #[TestDoxFormatter] callbacks
  • #​6559: Improved API for exception message expectations
  • #​6565: Optional $skipWhenEmpty parameter for #[DataProvider] and #[DataProviderExternal]
  • #​6566: Allow --stop-on-defect, --stop-on-error, etc. to accept an optional threshold
  • #​6567: Make diff context lines configurable
  • #​6574: Improve willReturnMap() with constraint support and strict matching
  • #​6575: --list-test-ids CLI option and enhance --filter CLI option to support test ID syntax
  • #​6577: --run-test-id <test-id> CLI option that accepts a single test ID for exact matching
  • #​6579: Properly handle issues triggered outside of tests
  • #​6597: Compact output (activated through --compact CLI option and PHPUNIT_COMPACT_OUTPUT=1 environment variable)
  • #​6598: --disable-coverage-targeting CLI option
  • #​6602: Separate configuration for branch coverage from path coverage
  • #​6606: Support for partially ordered parameter sets in mock object expectations
  • #​6611: Add CPU time to telemetry
  • #​6681: Comment-aware variants of XML comparison assertions
  • The executionOrder attribute in the XML configuration file now accepts defects combined with any main order, as well as three-way combinations of depends/no-depends, defects, and a main order (for example, depends,defects,duration-ascending)
  • --validate-configuration CLI option to validate an XML configuration file for PHPUnit
  • Report TestDox information in Open Test Reporting XML
  • Report per-test and per-test-suite resource usage (time, memory usage, peak memory usage) in Open Test Reporting XML
  • Report number of assertions performed for each test in Open Test Reporting XML
  • Report structured comparison failure details (expected, actual, diff) in Open Test Reporting XML
  • Report random order seed in Open Test Reporting XML when test execution order is randomised
Changed
  • #​5873: Chain previously registered error handler instead of silently disabling PHPUnit's error handling
  • #​6535: Use sebastian/file-filter in SourceFilter::includes() for issue trigger identification
  • #​6581: Allow #[IgnoreDeprecations] to be repeated
  • #​6609: Skip data providers whose method cannot match --filter
  • #​6685: Generate failure messages for inverse assertions by authoring negations, not by rewriting strings
  • Only errors and failures are now considered for "defect first" test reordering (tests that triggered deprecations, notices, or warnings as well as incomplete, risky, and skipped tests were previous also considered)
  • A warning is now emitted when closures are compared for equality using the IsEqual, IsEqualCanonicalizing, IsEqualIgnoringCase, IsEqualWithDelta, and TraversableContainsEqual constraints or the assertEquals(), assertEqualsCanonicalizing(), assertEqualsIgnoringCase(), assertEqualsWithDelta(), and assertContainsEquals() assertions
Deprecated
  • #​6075: --order-by duration CLI option, use --order-by duration-ascending instead
  • #​6075: --order-by size CLI option, use --order-by size-ascending instead
  • #​6075: executionOrder="duration" XML configuration attribute value, use executionOrder="duration-ascending" instead
  • #​6075: executionOrder="size" XML configuration attribute value, use executionOrder="size-ascending" instead
  • #​6560: Soft-deprecate expectExceptionMessage(), use expectExceptionMessageIsOrContains() instead
Fixed
  • #​5845: Error handlers registered before PHPUnit (e.g. via auto_prepend_file) cause false "risky test" warnings
  • #​5851: Output buffer manipulation in tests causes incorrect capture, hangs, and silent failures
  • #​6582: TestSuiteSorter::cmpSize() does not handle TestSuite objects for TestCase classes

Learn how to install or update PHPUnit 13.2 in the documentation.

Keep up to date with PHPUnit:

v13.1.14: PHPUnit 13.1.14

Compare Source

Fixed
  • #​6683: assertNotEquals() failure message says "is equal to" instead of "is not equal to" when comparing arrays or objects
  • #​6700: expectOutputString() and expectOutputRegex() silently replace themselves and each other

Learn how to install or update PHPUnit 13.1 in the [documentation](https://docs.phpun

[!IMPORTANT]
✂ PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • Between 12:00 AM and 03:59 AM, only on Monday (* 0-3 * * 1)
  • 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.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot force-pushed the renovate/major-issue-bot branch from 8503618 to e55d44e Compare September 23, 2024 07:18
@renovate renovate Bot changed the title Update issue-bot (major) fix(deps): update issue-bot (major) Oct 6, 2024
@renovate renovate Bot changed the title fix(deps): update issue-bot (major) Update issue-bot (major) Oct 7, 2024
@renovate renovate Bot changed the title Update issue-bot (major) fix(deps): update issue-bot (major) Oct 7, 2024
@renovate renovate Bot changed the title fix(deps): update issue-bot (major) Update issue-bot (major) Oct 8, 2024
@renovate renovate Bot changed the title Update issue-bot (major) fix(deps): update issue-bot (major) Oct 9, 2024
@renovate renovate Bot changed the title fix(deps): update issue-bot (major) Update issue-bot (major) Oct 14, 2024
@renovate renovate Bot changed the title Update issue-bot (major) fix(deps): update issue-bot (major) Oct 14, 2024
@renovate renovate Bot changed the title fix(deps): update issue-bot (major) Update issue-bot (major) Oct 26, 2024
@renovate renovate Bot changed the title Update issue-bot (major) fix(deps): update issue-bot (major) Nov 6, 2024
@renovate renovate Bot changed the title fix(deps): update issue-bot (major) Update issue-bot (major) Nov 6, 2024
@renovate renovate Bot changed the title Update issue-bot (major) fix(deps): update issue-bot (major) Nov 7, 2024
@renovate renovate Bot changed the title fix(deps): update issue-bot (major) Update issue-bot (major) Nov 8, 2024
@renovate renovate Bot changed the title Update issue-bot (major) fix(deps): update issue-bot (major) Nov 8, 2024
@renovate renovate Bot changed the title fix(deps): update issue-bot (major) Update issue-bot (major) Nov 9, 2024
@renovate
renovate Bot force-pushed the renovate/major-issue-bot branch from e55d44e to c23f5bf Compare November 11, 2024 07:46
@renovate renovate Bot changed the title Update issue-bot (major) fix(deps): update issue-bot (major) Nov 11, 2024
@renovate renovate Bot changed the title fix(deps): update issue-bot (major) Update issue-bot (major) Nov 11, 2024
@renovate renovate Bot changed the title Update issue-bot (major) fix(deps): update issue-bot (major) Nov 15, 2024
@renovate renovate Bot changed the title fix(deps): update issue-bot (major) Update issue-bot (major) Nov 17, 2024
@renovate renovate Bot changed the title Update issue-bot (major) fix(deps): update issue-bot (major) Nov 19, 2024
@renovate renovate Bot changed the title fix(deps): update issue-bot (major) Update issue-bot (major) Nov 19, 2024
@renovate renovate Bot changed the title Update issue-bot (major) fix(deps): update issue-bot (major) Nov 20, 2024
@renovate renovate Bot changed the title fix(deps): update issue-bot (major) Update issue-bot (major) Nov 23, 2024
@renovate renovate Bot changed the title Update issue-bot (major) fix(deps): update issue-bot (major) Nov 25, 2024
@renovate renovate Bot changed the title fix(deps): update issue-bot (major) Update issue-bot (major) Nov 25, 2024
@renovate renovate Bot changed the title Update issue-bot (major) fix(deps): update issue-bot (major) Nov 27, 2024
@renovate renovate Bot changed the title fix(deps): update issue-bot (major) Update issue-bot (major) Nov 28, 2024
@renovate renovate Bot changed the title Update issue-bot (major) fix(deps): update issue-bot (major) Nov 29, 2024
@renovate renovate Bot changed the title fix(deps): update issue-bot (major) Update issue-bot (major) Nov 29, 2024
@renovate renovate Bot changed the title fix(deps): update issue-bot (major) Update issue-bot (major) Mar 23, 2025
@renovate
renovate Bot force-pushed the renovate/major-issue-bot branch from 7efcd1f to 097c32b Compare April 5, 2025 09:29
@renovate
renovate Bot changed the base branch from 1.12.x to 2.1.x April 5, 2025 09:29
@renovate renovate Bot changed the title Update issue-bot (major) fix(deps): update issue-bot (major) Jun 7, 2025
@renovate renovate Bot changed the title fix(deps): update issue-bot (major) Update issue-bot (major) Jun 11, 2025
@renovate renovate Bot changed the title Update issue-bot (major) fix(deps): update issue-bot (major) Jul 17, 2025
@renovate renovate Bot changed the title fix(deps): update issue-bot (major) Update issue-bot (major) Jul 17, 2025
@renovate renovate Bot changed the title Update issue-bot (major) fix(deps): update issue-bot (major) Jul 17, 2025
@renovate renovate Bot changed the title fix(deps): update issue-bot (major) Update issue-bot (major) Jul 17, 2025
@renovate renovate Bot changed the title Update issue-bot (major) fix(deps): update issue-bot (major) Jul 21, 2025
@renovate
renovate Bot force-pushed the renovate/major-issue-bot branch 2 times, most recently from a07818b to aff47a0 Compare July 21, 2025 13:47
@renovate renovate Bot changed the title fix(deps): update issue-bot (major) Update issue-bot (major) Jul 27, 2025
@renovate
renovate Bot force-pushed the renovate/major-issue-bot branch 2 times, most recently from 9790988 to b44d435 Compare July 31, 2025 18:06
@renovate renovate Bot changed the title Update issue-bot (major) fix(deps): update issue-bot (major) Aug 6, 2025
@renovate
renovate Bot force-pushed the renovate/major-issue-bot branch 3 times, most recently from 38134a9 to 70fcfce Compare August 11, 2025 05:46
@renovate
renovate Bot force-pushed the renovate/major-issue-bot branch 3 times, most recently from 4aa64f6 to b6cbffc Compare August 20, 2025 18:35
@renovate
renovate Bot force-pushed the renovate/major-issue-bot branch 2 times, most recently from 4eae2b0 to ebd539d Compare August 29, 2025 16:39
@renovate renovate Bot changed the title fix(deps): update issue-bot (major) Update issue-bot (major) Aug 30, 2025
@renovate
renovate Bot force-pushed the renovate/major-issue-bot branch from ebd539d to c0dd2a6 Compare September 3, 2025 09:00
@renovate renovate Bot changed the title Update issue-bot (major) fix(deps): update issue-bot (major) Sep 4, 2025
@renovate
renovate Bot force-pushed the renovate/major-issue-bot branch from c0dd2a6 to 5b8d6f4 Compare September 6, 2025 20:59
@renovate

renovate Bot commented Nov 27, 2025 •

Copy link
Copy Markdown
Contributor Author

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: issue-bot/composer.lock
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires symfony/console ^8.0 -> satisfiable by symfony/console[v8.1.9].
    - symfony/console v8.1.9 requires php >=8.4.1 -> your php version (8.3.99; overridden via config.platform, actual: 8.3.36) does not satisfy that requirement.
  Problem 2
    - Root composer.json requires symfony/finder ^8.0 -> satisfiable by symfony/finder[v8.1.8].
    - symfony/finder v8.1.8 requires php >=8.4.1 -> your php version (8.3.99; overridden via config.platform, actual: 8.3.36) does not satisfy that requirement.
  Problem 3
    - Root composer.json requires phpunit/phpunit ^13 -> satisfiable by phpunit/phpunit[13.4.3].
    - phpunit/phpunit 13.4.3 requires php >=8.4.1 -> your php version (8.3.99; overridden via config.platform, actual: 8.3.36) does not satisfy that requirement.

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants