Problem/Motivation

#3013276: [META] Remove deprecated modules on the Drupal 9 branch deals with removing deprecated modules. This plan issue is to deal with all the rest of the deprecated code to be removed that are outside of deprecated modules: classes, methods, procedural functions and code paths that are not in wholly deprecated modules.

Some of these can just be deleted when 9.x opens, which might even be scriptable.

Proposed resolution

  • Open issues only if you are going to submit a patch for them. (We don't want hundreds of stub issues with no activity.) Look carefully for duplicates.
  • Tag the issues with Deprecation Removal and file them against the 9.0.x branch.
  • For large APIs, a single issue to remove the whole API is best. While we don't usually recommend scoping issues by module instead of concept, in this case, the API provided by a module can be considered a single API, especially for smaller modules. Issues can also be grouped by core subsystem namespace (e.g. things in core/lib/Drupal/Core/Foo/).
  • Remove only:
    • The module's own API.
    • Legacy tests of the removed API.

Remaining tasks

Must have before Drupal 9

Remove or properly-deprecate for 10.x:

#3109480: Properly deprecate theme functions for Drupal 10

Not critical for Drupal 9

To be changed in #2807743: Switch from deprecation notice to warning for non-standard placeholders in FormattableMarkup::placeholderFormat()

core/tests/Drupal/Tests/Component/Render/FormattableMarkupTest.php:      ['Alpha starting character: placeholder', ['placeholder' => 'replaced'], E_USER_DEPRECATED, 'Invalid placeholder (placeholder) in string: Alpha starting character: placeholder'],
core/tests/Drupal/Tests/Component/Render/FormattableMarkupTest.php:      ['placeholder', ['placeholder' => 'replaced'], E_USER_DEPRECATED, 'Invalid placeholder (placeholder) in string: placeholder'],
core/lib/Drupal/Component/Render/FormattableMarkup.php:            trigger_error('Invalid placeholder (' . $key . ') in string: ' . $string, E_USER_DEPRECATED);

User interface changes

None.

API changes

Deprecated APIs will be removed.

Data model changes

None.

Comments

catch created an issue. See original summary.

pashupathi nath gajawada’s picture

Okay.

Gábor Hojtsy’s picture

Title: [meta] Remove all the deprecations » [META] Remove deprecated classes, methods, procedural functions and code paths outside of deprecated modules on the Drupal 9 branch
Category: Task » Plan
Priority: Major » Critical
Issue summary: View changes
Issue tags: +Drupal 9, +@deprecated
Parent issue: » #3015625: [META] Prepare patches to be committed to the Drupal 9 branch once it is open
Related issues: +#3013276: [META] Remove deprecated modules on the Drupal 9 branch
Wim Leers’s picture

Version: 9.x-dev » 9.0.x-dev

The 9.0.x branch will open for development soon, and the placeholder 9.x branch should no longer be used. Only issues that require a new major version should be filed against 9.0.x (for example, removing deprecated code or updating dependency major versions). New developments and disruptive changes that are allowed in a minor version should be filed against 8.9.x, and significant new features will be moved to 9.1.x at committer discretion. For more information see the Allowed changes during the Drupal 8 and 9 release cycles and the Drupal 9.0.0 release plan.

xjm’s picture

Issue tags: +Deprecation Removal
xjm’s picture

Issue summary: View changes
xjm’s picture

Issue summary: View changes
xjm’s picture

Issue summary: View changes
xjm’s picture

Issue summary: View changes

Lendude and I discussed that we can't necessarily get rid of SimpleTest base tests just yet (e.g. ViewsTestBase) as these may be used by other modules and we are still finalizing how SimpleTest will be handled.

xjm’s picture

Issue summary: View changes
Wim Leers’s picture

#2893804-56: Remove rest.module BC layers is passing tests!

I moved on to other modules in Drupal core that I either officially or non-officially maintain do not have BC layers to be removed:

  • big_pipe
  • ckeditor
  • dynamic_page_cache
  • page_cache

But for some of them, there are BC layers to be removed, and no issues or patches existed yet. So I filed issues and created patches for:

andypost’s picture

Lendude’s picture

Issue summary: View changes

Fixed the link in the IS to #3091462: [policy, no patch] Agree to purge WebTestBase extending *TestBase classes outside the Simpletest module from D9 which needs discussion if we want to move forward with clear steps of what to remove (and what not)

xjm’s picture

chr.fritsch’s picture

amateescu’s picture

kim.pepper’s picture

mdupont’s picture

Lendude’s picture

Lendude’s picture

andypost’s picture

Filed #3097462: Remove uses of the [user:name] token to discus removal of widely used token

andypost’s picture

Removal entity_reference module needs #3062302: Properly deprecate the entity reference module

Berdir’s picture

Created a few patches for stuff below Drupal\Core, additionally to the already existing ones like utility, entity and path:

#3081145: Remove BC layers in the Plugin component
#3104306: Remove BC layers in the extension component
#3104307: Remove BC layers in various Drupal\Core components

DamienMcKenna’s picture

Tagging as a requirement for Drupal 9.0-beta1.

Gábor Hojtsy’s picture

Merged #3109746: Remove remaining @deprecated code in the datetime module and #3110315: Remove all @deprecated code from migrate_drupal module into the later. Added #3111344: Remove deprecated code from migrate module as there was no issue I found for that. There is also a bunch remaining deprecated stuff in migration plugins in some other modules, not yet sure where to slot that.

andypost’s picture

For comment module there's only follow-up left #3069260: Deprecate Drupal\comment\Plugin\migrate\source\d6\Comment::prepareComment().
So only taxonomy, datetime* and migrations left

Gábor Hojtsy’s picture

mondrake’s picture

Please note that Drupal\FunctionalTests\AssertLegacyTrait has some deprecated methods, meant for removal in D10; however, trigger_error and deprecation tests refer to removal in D9. This is due to undeprecation done in #3031580: Undeprecate \Drupal\FunctionalTests\AssertLegacyTrait and \Drupal\KernelTests\AssertLegacyTrait in Drupal 8 that left the docblock and the trigger_error comments out-of-sync.

#3104372: Fix Drupal\FunctionalTests\AssertLegacyTrait inconsistent deprecation messages tries to address that.

Gábor Hojtsy’s picture

There was 6 deprecated things in system module, 5 are simple global constants. Did not find an issue that would cover it. Opened #3111942: Remove all remaining @deprecated code from system module.

Gábor Hojtsy’s picture

Also opened #3111947: Remove all @deprecated code from TwigExtension for a group of easy-win looking setters in TwigEnvironment.

alexpott’s picture

#3111906: Remove deprecated AllowedTagsXssTrait is cleaning up one cross module class.

Gábor Hojtsy’s picture

We are down to 63 instances of @deprecated with only one of them apparently for Drupal 10 so far:

  • 3 in core/misc/ajax.es6.js
  • 3 in core/tests/Drupal/Tests/Core/Entity/EntityTypeTest.php
  • 2 in core/includes/bootstrap.inc (one of them is for Drupal 10)
  • 1 in core/core.services.yml
  • 1 in core/scripts/run-tests.sh
  • 1 in core/lib/Drupal/Core/Cache/Cache.php
  • 1 in core/lib/Drupal/Core/Cache/Apcu4Backend.php
  • 1 in core/lib/Drupal/Core/Test/FunctionalTestSetupTrait.php
  • 2 in core/lib/Drupal/Core/Config/Entity/ConfigDependencyManager.php
  • 1 in core/lib/Drupal/Core/Config/Testing/ConfigSchemaChecker.php
  • 1 in core/lib/Drupal/Core/Config/ConfigInstaller.php
  • 1 in core/lib/Drupal/Core/TypedData/Plugin/DataType/ItemList.php
  • 1 in core/lib/Drupal/Core/Entity/EntityDefinitionUpdateManagerInterface.php
  • 1 in core/lib/Drupal/Core/Entity/EntityType.php
  • 1 in core/lib/Drupal/Core/Entity/EntityTypeRepositoryInterface.php
  • 1 in core/lib/Drupal/Core/Entity/Plugin/EntityReferenceSelection/SelectionBase.php
  • 1 in core/lib/Drupal/Core/Entity/EntityDisplayBase.php
  • 1 in core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php
  • 5 in core/lib/Drupal/Core/Entity/EntityTypeInterface.php
  • 1 in core/lib/Drupal/Core/Entity/Entity.php
  • 3 in core/lib/Drupal/Core/Entity/EntityInterface.php
  • 1 in core/lib/Drupal/Core/Entity/EntityListBuilder.php
  • 1 in core/lib/Drupal/Core/Entity/Sql/TemporaryTableMapping.php
  • 2 in core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
  • 1 in core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchemaConverter.php
  • 1 in core/lib/Drupal/Core/DrupalKernelInterface.php
  • 2 in core/lib/Drupal/Core/ParamConverter/EntityConverter.php
  • 1 in core/lib/Drupal/Core/Render/MainContent/AjaxRenderer.php
  • 1 in core/lib/Drupal/Core/Field/PluginSettingsInterface.php
  • 1 in core/lib/Drupal/Core/Image/Image.php
  • 1 in core/lib/Drupal/Core/Controller/FormController.php
  • 1 in core/lib/Drupal/Core/Messenger/LegacyMessenger.php
  • 1 in core/lib/Drupal/Core/Theme/ActiveTheme.php
  • 1 in core/lib/Drupal/Core/Menu/LocalActionManager.php
  • 1 in core/lib/Drupal/Core/Menu/LocalTaskManager.php
  • 1 in core/lib/Drupal/Core/StringTranslation/TranslationWrapper.php
  • 1 in core/lib/Drupal/Core/StringTranslation/PluralTranslatableMarkup.php
  • 1 in core/lib/Drupal/Core/Session/AccountProxy.php
  • 1 in core/modules/datetime_range/datetime_range.module
  • 1 in core/modules/block_place/block_place.module
  • 1 in core/modules/block_place/src/Plugin/DisplayVariant/PlaceBlockPageVariant.php
  • 1 in core/modules/system/tests/modules/deprecation_test/deprecation_test.module (this will stay around)
  • 3 in core/modules/system/system.module
  • 1 in core/modules/system/src/Tests/Cache/AssertPageCacheContextsAndTagsTrait.php
  • 1 in core/modules/migrate/src/Plugin/migrate/process/MigrationLookup.php
  • 1 in core/modules/rest/src/Plugin/Type/ResourcePluginManager.php
  • 1 in core/assets/vendor/popperjs/popper.min.js.map

There is still 120 uses of E_USER_DEPRECATED so I will not dump them here :D #3104372: Fix Drupal\FunctionalTests\AssertLegacyTrait inconsistent deprecation messages would resolve a bunch of those.

lauriii’s picture

Opened #3114116: Re-schedule removal of deprecated JavaScript code to Drupal 10 for re-scheduling core/misc/ajax.es6.js deprecations to be removed prior to Drupal 10.

We can remove core/assets/vendor/popperjs/popper.min.js.map from the list because that is in a vendor library.

Gábor Hojtsy’s picture

Looking at the mentions of @deprecated and E_USER_ERROR, most of them are down to #3069696: Remove BC layers from the entity system which is in turn postponed on #3099789: Remove the BC layer for revision metadata keys. Exciting!

catch’s picture

catch’s picture

xjm’s picture

This is 8.8/8.9-only, #3062302: Properly deprecate the entity reference module, the module was already made into a stub in 9.x

Shouldn't a stub also be deprecated? So we could treat it as a 10.x deprecation if we're retaining the stub in D9. (For some reason I thought we had already gutted it in 8.x, but I guess not.)

catch’s picture

@xjm yeah it has 'Deprecated' in .info.yml and it's hidden in the interface in 9.x. We also have a post update to uninstall it if it's still enabled.

We have to leave the stub in 9.x so that it can actually be uninstalled - otherwise it's missing module errors etc., but it is empty. Then it can finally be removed outright in 10.0.0

The 8.x for 9.x deprecations are still valid here though, because all the functionality has been removed from 9.x, so if a site really was relying on entity_reference plugins from prior to Drupal 8.0.0 (we deprecated the module in rc1), they'd need to sort that out prior to updating to 9.x. That never got done properly at the time because there was no way to do it.

Gábor Hojtsy’s picture

Only 9 uses of @deprecated left for Drupal 9. This one will of course stay:

core/modules/system/tests/modules/deprecation_test/deprecation_test.module: * @deprecated in drupal:8.4.0 and is removed from drupal:9.0.0. This is

These 8 instances should still be removed:

core/includes/bootstrap.inc: * @deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. Use
core/lib/Drupal/Core/Field/PluginSettingsInterface.php: * @deprecated in drupal:8.1.0 and is removed from drupal:9.0.0. Use
core/lib/Drupal/Core/Messenger/LegacyMessenger.php: * @deprecated in drupal:8.5.0 and is removed from drupal:9.0.0.
core/lib/Drupal/Core/StringTranslation/TranslationWrapper.php: * @deprecated in drupal:8.0.0 and is removed from drupal:9.0.0.
core/modules/datetime_range/datetime_range.module: * @deprecated in drupal:8.5.0 and is removed from drupal:9.0.0.
core/modules/block_place/block_place.module: * @deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. See the
core/modules/block_place/src/Plugin/DisplayVariant/PlaceBlockPageVariant.php: * @deprecated in drupal:8.8.0 and is removed from drupal:9.0.0. See the
core/modules/rest/src/Plugin/Type/ResourcePluginManager.php:   * @deprecated in Drupal 8.2.0.

The two block_place are #3084472: Remove Place Blocks module.
LegacyMessenger is #2928994: Remove \Drupal\Core\Messenger\LegacyMessenger.
TranslationWrapper is #3114239: Properly deprecate \Drupal\Core\StringTranslation\TranslationWrapper.
datetime module is #3110393: Remove @deprecated views code datetime_range.module

The bootstrap.inc one is about const DRUPAL_PHP_FUNCTION_PATTERN, do we have an issue for that yet?
The Field PluginSettingsInterface is entirely deprecated. Do we have an issue for that yet?
The Rest ResourcePluginManager deprecation is about the getInstance() method. Do we have an issue yet?

longwave’s picture

longwave’s picture

PluginSettingsInterface looks really tricky because it is still used and extended heavily; PluginSettingsBase is the base of all Field API plugins and they still use the methods it provides.

core/modules/field_ui/src/Form/EntityFormDisplayEditForm.php
6:use Drupal\Core\Field\PluginSettingsInterface;
119:  protected function thirdPartySettingsForm(PluginSettingsInterface $plugin, FieldDefinitionInterface $field_definition, array $form, FormStateInterface $form_state) {
138:  protected function alterSettingsSummary(array &$summary, PluginSettingsInterface $plugin, FieldDefinitionInterface $field_definition) {

core/modules/field_ui/src/Form/EntityViewDisplayEditForm.php
6:use Drupal\Core\Field\PluginSettingsInterface;
168:  protected function thirdPartySettingsForm(PluginSettingsInterface $plugin, FieldDefinitionInterface $field_definition, array $form, FormStateInterface $form_state) {
187:  protected function alterSettingsSummary(array &$summary, PluginSettingsInterface $plugin, FieldDefinitionInterface $field_definition) {

core/modules/field_ui/src/Form/EntityDisplayFormBase.php
14:use Drupal\Core\Field\PluginSettingsInterface;
895:   * @param \Drupal\Core\Field\PluginSettingsInterface $plugin
907:  abstract protected function thirdPartySettingsForm(PluginSettingsInterface $plugin, FieldDefinitionInterface $field_definition, array $form, FormStateInterface $form_state);
914:   * @param \Drupal\Core\Field\PluginSettingsInterface $plugin
919:  abstract protected function alterSettingsSummary(array &$summary, PluginSettingsInterface $plugin, FieldDefinitionInterface $field_definition);

core/lib/Drupal/Core/Field/FormatterInterface.php
12:interface FormatterInterface extends PluginSettingsInterface {

core/lib/Drupal/Core/Field/WidgetBaseInterface.php
16:interface WidgetBaseInterface extends PluginSettingsInterface {

core/lib/Drupal/Core/Field/PluginSettingsBase.php
13:abstract class PluginSettingsBase extends PluginBase implements PluginSettingsInterface, DependentPluginInterface {

core/lib/Drupal/Core/Field/PluginSettingsInterface.php
14:interface PluginSettingsInterface extends PluginInspectionInterface, ThirdPartySettingsInterface {

core/lib/Drupal/Core/Entity/Display/EntityDisplayInterface.php
84:   * @return \Drupal\Core\Field\PluginSettingsInterface|null
longwave’s picture

We missed a couple of spots in the Entity issue, so here is a followup: #3116103: Remove remaining deprecated code from Entity system

Gábor Hojtsy’s picture

Reviewed ALL of the E_USER_DEPRECATED mentions left that are not explicitly for Drupal 10, here is the rundown. I have a couple that are not clear.

Testing deprecations, should stay as-is

core/tests/Drupal/Tests/SkippedDeprecationTest.php:    @trigger_error('\Drupal\Tests\SkippedDeprecationTest deprecation', E_USER_DEPRECATED);
core/tests/Drupal/Tests/SkippedDeprecationTest.php:    @trigger_error('\Drupal\Tests\SkippedDeprecationTest deprecation', E_USER_DEPRECATED);
core/tests/Drupal/Tests/ExpectDeprecationTest.php:    @trigger_error('Test deprecation', E_USER_DEPRECATED);
core/tests/Drupal/Tests/ExpectDeprecationTest.php:    @trigger_error('Test isolated deprecation', E_USER_DEPRECATED);
core/tests/Drupal/Tests/ExpectDeprecationTest.php:    @trigger_error('Test isolated deprecation2', E_USER_DEPRECATED);
core/tests/Drupal/Tests/Core/Asset/LibraryDiscoveryTest.php:      if ($severity === E_USER_DEPRECATED) {
core/tests/Drupal/Tests/Listeners/DeprecationListenerTrait.php:      if ($type === E_USER_DEPRECATED && static::isDeprecationSkipped($msg)) {
core/tests/Drupal/Tests/Listeners/DrupalStandardsListenerTrait.php:    if ($type === E_USER_DEPRECATED) {
core/tests/Drupal/Tests/Listeners/DrupalStandardsListenerTrait.php:   * it might trigger an E_USER_DEPRECATED error during coverage annotation
core/tests/Drupal/FunctionalJavascriptTests/WebDriverTestBase.php:          @trigger_error('Javascript Deprecation:' . substr($warning, 13), E_USER_DEPRECATED);
core/lib/Drupal/Core/Test/HttpClientMiddleware/TestHttpClientMiddleware.php:                      @trigger_error((string) $parameters[0], E_USER_DEPRECATED);
core/modules/system/tests/modules/deprecation_test/deprecation_test.module:  @trigger_error('This is the deprecation message for deprecation_test_function().', E_USER_DEPRECATED);
core/modules/system/tests/modules/deprecation_test/src/Deprecation/FixtureDeprecatedClass.php:@trigger_error(__NAMESPACE__ . '\FixtureDeprecatedClass is deprecated.', E_USER_DEPRECATED);
core/modules/system/tests/modules/deprecation_test/src/Deprecation/DrupalStandardsListenerDeprecatedClass.php:@trigger_error(__NAMESPACE__ . '\DrupalStandardsListenerDeprecatedClass is deprecated.', E_USER_DEPRECATED);
core/modules/system/tests/modules/test_page_test/src/Controller/Test.php:    @trigger_error('Test deprecation message', E_USER_DEPRECATED);
core/modules/system/tests/modules/test_page_test/src/Controller/Test.php:    @trigger_error('Test deprecation message', E_USER_DEPRECATED);

Active deprecation runtime code or related code comment, should stay as-is

core/includes/errors.inc:    E_USER_DEPRECATED => ['User deprecated function', RfcLogLevel::DEBUG],
core/includes/errors.inc:  elseif (DRUPAL_TEST_IN_CHILD_SITE && $error_level === E_USER_DEPRECATED) {
core/lib/Drupal/Core/Extension/ModuleHandlerInterface.php:   * E_USER_DEPRECATED error if any implementations are found.
core/lib/Drupal/Core/Extension/ModuleHandlerInterface.php:   * E_USER_DEPRECATED error if any implementations are found.
core/lib/Drupal/Core/Extension/ModuleHandlerInterface.php:   * This method triggers an E_USER_DEPRECATED error if any implementations of
core/lib/Drupal/Core/Extension/ModuleHandler.php:   * Triggers an E_USER_DEPRECATED error if any module implements the hook.
core/lib/Drupal/Core/Extension/ModuleHandler.php:      @trigger_error($message . implode(', ', $implementations) . '. ' . $description, E_USER_DEPRECATED);
core/lib/Drupal/Core/Extension/ModuleHandler.php:      @trigger_error($message . ' ' . $description, E_USER_DEPRECATED);
core/lib/Drupal/Core/Asset/LibraryDiscovery.php:      @trigger_error(str_replace('%library_id%', "$extension/$name", $libraries[$name]['deprecated']), E_USER_DEPRECATED);
core/lib/Drupal/Core/Security/DoTrustedCallbackTrait.php:        @trigger_error($message, E_USER_DEPRECATED);
core/modules/views/src/Plugin/views/relationship/RelationshipPluginBase.php:      @trigger_error($this->definition['deprecated'], E_USER_DEPRECATED);

This is a utility for deprecating arrays, can probably stay around as-is.

core/lib/Drupal/Component/Utility/DeprecatedArray.php:    @trigger_error($this->message, E_USER_DEPRECATED);
core/lib/Drupal/Component/Utility/DeprecatedArray.php:    @trigger_error($this->message, E_USER_DEPRECATED);
core/lib/Drupal/Component/Utility/DeprecatedArray.php:    @trigger_error($this->message, E_USER_DEPRECATED);
core/lib/Drupal/Component/Utility/DeprecatedArray.php:    @trigger_error($this->message, E_USER_DEPRECATED);
core/lib/Drupal/Component/Utility/DeprecatedArray.php:    @trigger_error($this->message, E_USER_DEPRECATED);
core/lib/Drupal/Component/Utility/DeprecatedArray.php:    @trigger_error($this->message, E_USER_DEPRECATED);
core/lib/Drupal/Component/Utility/DeprecatedArray.php:    @trigger_error($this->message, E_USER_DEPRECATED);
core/lib/Drupal/Component/Utility/DeprecatedArray.php:    @trigger_error($this->message, E_USER_DEPRECATED);

Should be a future Drupal 10 deprecation, just a code comment now, can probably stay as-is.

core/lib/Drupal/Core/Database/Query/Select.php: // - Emit E_USER_DEPRECATED if term_access is used.

Does this stay as-is?

core/tests/Drupal/Tests/Component/Render/FormattableMarkupTest.php:      ['Alpha starting character: placeholder', ['placeholder' => 'replaced'], E_USER_DEPRECATED, 'Invalid placeholder (placeholder) in string: Alpha starting character: placeholder'],
core/tests/Drupal/Tests/Component/Render/FormattableMarkupTest.php:      ['placeholder', ['placeholder' => 'replaced'], E_USER_DEPRECATED, 'Invalid placeholder (placeholder) in string: placeholder'],
core/lib/Drupal/Component/Render/FormattableMarkup.php:            trigger_error('Invalid placeholder (' . $key . ') in string: ' . $string, E_USER_DEPRECATED);

Should be removed. Do we have an issue?

core/lib/Drupal/Core/Test/FunctionalTestSetupTrait.php: @trigger_error('Drupal\Tests\BrowserTestBase::$defaultTheme is required in drupal:9.0.0 when using an install profile that does not set a default theme. See https://www.drupal.org/node/3083055, which includes recommendations on which theme to use.', E_USER_DEPRECATED);

To be removed in #3116103: Remove remaining deprecated code from Entity system.

core/lib/Drupal/Core/Entity/EntityDefinitionUpdateManager.php:    trigger_error('EntityDefinitionUpdateManagerInterface::applyUpdates() is deprecated in 8.7.0 and will be removed before Drupal 9.0.0. Use \Drupal\Core\Entity\EntityDefinitionUpdateManagerInterface::getChangeList() and execute each entity type and field storage update manually instead. See https://www.drupal.org/node/3034742.', E_USER_DEPRECATED);
core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php:        @trigger_error('Passing a single revision ID to "\Drupal\Core\Entity\Sql\SqlContentEntityStorage::buildQuery()" is deprecated in Drupal 8.5.x and will be removed before Drupal 9.0.0. An array of revision IDs should be given instead. See https://www.drupal.org/node/2924915.', E_USER_DEPRECATED);

To be removed in #2928994: Remove \Drupal\Core\Messenger\LegacyMessenger.

core/lib/Drupal/Core/Messenger/LegacyMessenger.php: @trigger_error('Adding or retrieving messages prior to the container being initialized was deprecated in Drupal 8.5.0 and this functionality will be removed before Drupal 9.0.0. Please report this usage at https://www.drupal.org/node/2928994.', E_USER_DEPRECATED);

To be removed in #3114869: \Drupal\Core\Routing\Router::generate() is deprecated but it is on an interface.

core/lib/Drupal/Core/Routing/Router.php: @trigger_error('Use the \Drupal\Core\Url object instead', E_USER_DEPRECATED);

Should be updated to Drupal 10.

core/lib/Drupal/Core/DependencyInjection/DeprecatedServicePropertyTrait.php: @trigger_error("The property $name ($service_name service) is deprecated in $class_name and will be removed before Drupal 9.0.0.", E_USER_DEPRECATED);

Should be removed, I don't think we have an issue.

core/modules/migrate_drupal/src/MigrationState.php: @trigger_error(sprintf("Using migration plugin definitions to determine the migration state of the module '%s' is deprecated in Drupal 8.7. Add the module to a migrate_drupal.yml file. See https://www.drupal.org/node/2929443", $source_module), E_USER_DEPRECATED);

To be removed in #3110393: Remove @deprecated views code datetime_range.module.

core/modules/datetime_range/datetime_range.module:            @trigger_error('Use of string filters for datetime_range fields is deprecated. Use the datetime filters instead. See https://www.drupal.org/node/2857691', E_USER_DEPRECATED);
core/modules/datetime_range/datetime_range.module:            @trigger_error('Use of standard sort handlers for datetime_range fields is deprecated. Use the datetime sort handlers instead. See https://www.drupal.org/node/2857691', E_USER_DEPRECATED);

To be removed in #3084472: Remove Place Blocks module.

core/modules/block_place/block_place.module:@trigger_error('The Place Blocks module is deprecated in drupal:8.8.0 and will be removed from drupal:9.0.0. See the change record for a list of alternatives. See https://www.drupal.org/node/3081957.', E_USER_DEPRECATED);
core/modules/block_place/src/Plugin/DisplayVariant/PlaceBlockPageVariant.php:    @trigger_error('The ' . __NAMESPACE__ . '\PlaceBlockPageVariant is deprecated in drupal:8.8.0 and will be removed from drupal:9.0.0. See the change record for a list of alternatives. See https://www.drupal.org/node/3081957.', E_USER_DEPRECATED);
lauriii’s picture

Gábor Hojtsy’s picture

Issue summary: View changes

Merged the @deprecated and E_USER_DEPRECATED ones into the issue summary. Edit away :)

Gábor Hojtsy’s picture

Issue summary: View changes

Fix markup.

Gábor Hojtsy’s picture

Gábor Hojtsy’s picture

Issue summary: View changes
Gábor Hojtsy’s picture

Gábor Hojtsy’s picture

andypost’s picture

DeprecatedArray should stay (it is unused now) but was introduced as arrayAccess shim to pager in #2044435: Convert pager.inc to a service
As BC shim removed it's now unused but not deprecated

andypost’s picture

core/lib/Drupal/Core/Test/FunctionalTestSetupTrait.php

to be removed in #3110874: Remove BC layer for TestSetupTrait

Gábor Hojtsy’s picture

Issue summary: View changes

#3110874: Remove BC layer for TestSetupTrait landed. Removed from issue summary.

andypost’s picture

Gábor Hojtsy’s picture

Issue summary: View changes

Opened #3116216: Remove deprecated MigrateState legacy procedure for the migrate part and proposed a patch. Probably it needs actual migrate people to review it. That should be the last one that did not have an issue I think.

andypost’s picture

Gábor Hojtsy’s picture

Issue summary: View changes

Merged code snippet for the same issues in the issue summary for easier scope review / scanning. Still need an issue for PluginSettingsInterface.

Gábor Hojtsy’s picture

catch’s picture

Issue summary: View changes
Gábor Hojtsy’s picture

Gábor Hojtsy’s picture

Gábor Hojtsy’s picture

Gábor Hojtsy’s picture

Issue summary: View changes

Merged the 2 datetime related snippets in the issue summary. Its 4 issues :) (Fixed the previous comment too).

Gábor Hojtsy’s picture

Issue summary: View changes

#3116216: Remove deprecated MigrateState legacy procedure also landed. Down to 3 issues and one of them is RTBC :)

andypost’s picture

What we gonna do with #3111506: Properly deprecate _access_rest_csrf route requirement it looks needs split

Gábor Hojtsy’s picture

Gábor Hojtsy’s picture

catch’s picture

Just a note that if we stick with 9.0.x-removal in #3109480: Properly deprecate theme functions for Drupal 10, we are going to need a patch to actually remove theme function support and its test coverage in 9.0.x as well - the current patch only fixes the deprecation without actually removing.

That could be a follow-up, or a 9.0.x-only patch on that issue.

longwave’s picture

#3097889: Remove deprecated theme functions exists to do the final removal.

Gábor Hojtsy’s picture

#3109480: Properly deprecate theme functions for Drupal 10 is going in a Drupal 10 direction now.

As for removing @deprecated and E_USER_ERROR, we are all done in core at this point, eg.

$ grep -r "@deprecated" core
core/misc/ajax.es6.js:   * @deprecated in drupal:8.5.0 and is removed from drupal:10.0.0.
core/misc/ajax.es6.js:  * @deprecated in drupal:8.6.0 and is removed from drupal:10.0.0.
core/misc/ajax.es6.js:  * @deprecated in drupal:8.6.0 and is removed from drupal:10.0.0.
core/includes/bootstrap.inc: * @deprecated in drupal:8.3.0 and is removed from drupal:10.0.0.
core/lib/Drupal/Core/Entity/EntityTypeInterface.php:  * @deprecated in drupal:8.3.0 and is removed from drupal:10.0.0.
core/lib/Drupal/Core/StringTranslation/TranslationWrapper.php: * @deprecated in drupal:8.0.0 and is removed from drupal:10.0.0.
core/modules/system/tests/modules/deprecation_test/deprecation_test.module: * @deprecated in drupal:8.4.0 and is removed from drupal:9.0.0. This is

Only testing code or 10-targets :) Same for E_USER_ERROR but there are more lines you need to look at :)

catch’s picture

Status: Active » Fixed

Just under four years later, lovely to mark this fixed.

xjm’s picture

Crediting folks who helped with organizing the meta.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.