diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 5d97be41..01ec3260 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -9,10 +9,15 @@ 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] + ### Changed - Updated all uses of `actions/checkout` from `v3` (using node 16) to `v4` (using node 20), because [actions using node 16 are deprecated](https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/) and will stop working in the future. * ACTION SUGGESTED: In order to avoid the node 16 deprecation warnings, update your workflows to use `actions/checkout@v4`. +### Deprecated +- The `phpcpd` command (that uses the [PHP Copy/Paste Detector](https://github.com/sebastianbergmann/phpcpd), now abandoned) has been deprecated in this `moodle-plugin-ci` release (4.4.0) and will be removed in 5.0.0. No replacement is planned. +- ACTION SUGGESTED: In order to avoid deprecation warnings or annotations, proceed to remove this command from your workflows. Note that any use will throw an error in the next major release (5.0.0). + ## [4.3.2] - 2024-01-26 ### Changed - Modified internal CI scripts towards better Codecov future support. diff --git a/docs/CLI.md b/docs/CLI.md index 20a0ef9f..df8a3bb5 100644 --- a/docs/CLI.md +++ b/docs/CLI.md @@ -19,7 +19,7 @@ title: Moodle Plugin CI Commands * [`mustache`](#mustache) * [`parallel`](#parallel) * [`phpcbf`](#phpcbf) -* [`phpcpd` (DEPRECATED)](#phpcpd) +* [`phpcpd`](#phpcpd) * [`phpcs`](#phpcs) * [`phpdoc`](#phpdoc) * [`phplint`](#phplint) @@ -1485,21 +1485,13 @@ Do not ask any interactive question `phpcpd` -------- -Run PHP Copy/Paste Detector on a plugin. - -### Deprecation Notice - -[PHP Copy/Paste Detector](https://github.com/sebastianbergmann/phpcpd) has been abandoned by its maintainers. - -The integration with it will be removed without replacement from future versions of this plugin. - -_Usage of the `phpcpd` command is discouraged._ +Run PHP Copy/Paste Detector on a plugin (**DEPRECATED**) ### Usage * `phpcpd ` -Run PHP Copy/Paste Detector on a plugin +Run PHP Copy/Paste Detector on a plugin (**DEPRECATED**) ### Arguments diff --git a/phpunit.xml.dist b/phpunit.xml.dist index eb8d20bc..b32a19e0 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -11,4 +11,7 @@ ./src/ + + + diff --git a/src/Command/CopyPasteDetectorCommand.php b/src/Command/CopyPasteDetectorCommand.php index 8d9b6e25..634d08fb 100644 --- a/src/Command/CopyPasteDetectorCommand.php +++ b/src/Command/CopyPasteDetectorCommand.php @@ -24,7 +24,7 @@ /** * Run PHP Copy/Paste Detector on a plugin. * - * @deprecated + * @deprecated Since 4.4.0, to be removed in 5.0.0. No replacement is planned. */ class CopyPasteDetectorCommand extends AbstractPluginCommand { @@ -33,11 +33,25 @@ protected function configure(): void parent::configure(); $this->setName('phpcpd') - ->setDescription('Run PHP Copy/Paste Detector on a plugin (DEPRECATED)'); + ->setDescription('Run PHP Copy/Paste Detector on a plugin (**DEPRECATED**)'); } protected function execute(InputInterface $input, OutputInterface $output): int { + if (!defined('PHPUNIT_TEST')) { // Only show deprecation warnings in non-test environments. + trigger_deprecation( + 'moodle-plugin-ci', + '4,4,0', + 'The "%s" command is deprecated and will be removed in %s. No replacement is planned.', + $this->getName(), + '5.0.0' + ); + if (getenv('GITHUB_ACTIONS')) { // Only show deprecation annotations in GitHub Actions. + echo '::warning title=Deprecated command::The phpcpd command ' . + 'is deprecated and will be removed in 5.0.0. No replacement is planned.' . PHP_EOL; + } + } + $timer = new Timer(); $timer->start();