Skip to content

Commit

Permalink
Deprecate the phpdbg option for code coverage
Browse files Browse the repository at this point in the history
This includes both the current default (when neither pcov or
xdebug are available) and the explicit use of --coverage-phpdbg

Since PHP 8.0, phpdbg is causing all sort of problems and is
not recommended. So it's time to deprecate it in order to
proceed to remove it completely for moodle-plugin-ci 5.0.0.

Removal ref.: moodlehq/moodle-plugin-ci#289

Fixes #213
  • Loading branch information
stronk7 authored and mchurchward committed May 30, 2024
1 parent c4c4df8 commit 29eaeb8
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 2 deletions.
6 changes: 6 additions & 0 deletions docs/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@ This project adheres to [Semantic Versioning](http://semver.org/).
The format of this change log follows the advice given at [Keep a CHANGELOG](http://keepachangelog.com).

## [Unreleased]
### Deprecated
- The use of `phpdbg` to calculate PHPUnit's code-coverage has been deprecated in this `moodle-plugin-ci` release (4.5.0) and will be removed in 5.0.0. This includes both the implicit (default) option when no alternative (`pcov` or `xdebug`) is available and the explicit `--coverage-phpdbg` option.
- ACTION SUGGESTED: In order to avoid deprecation warnings or annotations, proceed to ensure that either `pcov` (Moodle 3.10 and up) or `xdebug` are available and they will be used automatically. Note that any use of `phpdbg` will throw an error in the next major release (5.0.0).

### Fixed
- Solved a problem with the validation of `dataformat` plugin lang strings.

## [4.4.5] - 2024-04-03
### Changed
Expand Down
2 changes: 1 addition & 1 deletion docs/CLI.md
Original file line number Diff line number Diff line change
Expand Up @@ -2133,7 +2133,7 @@ Use the xdebug extension to calculate code coverage

#### `--coverage-phpdbg`

Use the phpdbg binary to calculate code coverage
(**DEPRECATED**) Use the phpdbg binary to calculate code coverage

* Accept value: no
* Is value required: no
Expand Down
11 changes: 10 additions & 1 deletion src/Command/PHPUnitCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ protected function configure(): void
->addOption('coverage-clover', null, InputOption::VALUE_NONE, 'Generate code coverage report in Clover XML format')
->addOption('coverage-pcov', null, InputOption::VALUE_NONE, 'Use the pcov extension to calculate code coverage')
->addOption('coverage-xdebug', null, InputOption::VALUE_NONE, 'Use the xdebug extension to calculate code coverage')
->addOption('coverage-phpdbg', null, InputOption::VALUE_NONE, 'Use the phpdbg binary to calculate code coverage')
->addOption('coverage-phpdbg', null, InputOption::VALUE_NONE, '(**DEPRECATED**) Use the phpdbg binary to calculate code coverage')
->addOption('fail-on-incomplete', null, InputOption::VALUE_NONE, 'Treat incomplete tests as failures')
->addOption('fail-on-risky', null, InputOption::VALUE_NONE, 'Treat risky tests as failures')
->addOption('fail-on-skipped', null, InputOption::VALUE_NONE, 'Treat skipped tests as failures')
Expand Down Expand Up @@ -195,6 +195,15 @@ private function resolveBinary(InputInterface $input, OutputInterface $output):
'-dxdebug.mode=coverage',
];
case 'phpdbg':
// @codeCoverageIgnoreStart
if (!defined('PHPUNIT_TEST')) { // Only show deprecation warnings in non-test environments.
if (getenv('GITHUB_ACTIONS')) { // Only show deprecation annotations in GitHub Actions.
echo '::warning title=Deprecated phpdbg option::The use of phpdbg for phpunit code coverage ' .
'is deprecated and will be removed in 5.0.0. Please, switch to pcov or xdebug instead.' . PHP_EOL;
}
}
// @codeCoverageIgnoreEnd

return [
'phpdbg',
'-d',
Expand Down

0 comments on commit 29eaeb8

Please sign in to comment.