# Deprecation patterns ignored while testing this module. Core's own
# core/.deprecation-ignore.txt is appended to this file by the phpunit
# job, so both sets apply; see .gitlab-ci.yml.
#
# Format: https://www.drupal.org/node/3285162
#
# A deprecation naming Drupal\orchestra is normally a real finding and
# belongs fixed, not ignored. The one family below is the exception, and
# only because core treats its own modules the same way.
#
# cspell:disable
# Cross-module return type deprecations. Symfony's DebugClassLoader asks
# every implementation of an untyped interface method to declare the
# return type the interface will take one day. The interfaces are core's
# and core has not typed them yet: calculateDependencies(),
# onDependencyRemoval(), label(), create() and render() raise most of
# these. Core carries the very same pattern for its own modules, with
# the note that downstream implementations should add return types
# first, so this is a deferred cleanup rather than a Drupal 12 problem.
# Orchestra's own share is 966 messages over 74 classes.
%Method "[^"]+::[^"]+\(\)" might add "[^"]+" as a native return type declaration in the future. Do the same in (?:implementation|child class) "Drupal\\orchestra[a-z_]*\\[^"]+" now to avoid errors or add an explicit @return annotation to suppress this message%

# The same family, raised against development dependencies rather than
# orchestra. Nothing here is orchestra's to fix; drop a project once it
# declares the return types itself.
%Method "[^"]+::[^"]+\(\)" might add "[^"]+" as a native return type declaration in the future. Do the same in (?:implementation|child class) "Drupal\\(consumers|domain|domain_config|eca|group|key|modeler_api|simple_oauth|webform)[a-z_]*\\[^"]+" now to avoid errors or add an explicit @return annotation to suppress this message%

# Contributed dependencies that still declare their plugins with
# annotations rather than attributes. All of these name a dependency's
# plugin id, never one of orchestra's; drop a line once that project
# converts.
%Using @(EntityType|FieldType|Constraint) annotation for plugin with ID (modeler_api_data_model|key|key_config_override|consumer|oauth2_token|oauth2_token_type|oauth2_scope|oauth2_scope_reference|Oauth2ScopeReference|Oauth2RedirectUri) is deprecated and is removed from drupal:13.0.0.%
%Not supporting attribute discovery in Drupal\\key\\Plugin\\KeyPluginManager is deprecated in drupal:11.2.0 and is removed from drupal:12.0.0.%

# key's Key::getKeyValue() keeps the values it read in drupal_static(), which
# Drupal 11.5 deprecates, so every test that reads a key fails the next-major
# lane. The pattern names key's function, so a drupal_static() call of
# orchestra's own still fails it. Drop the line once key releases #3624641.
%Calling drupal_static\(\) with "getKeyValue" as argument is deprecated in drupal:11.5.0 and is removed from drupal:13.0.0.%

# webform's own Drupal 12 readiness. It declares its plugins with
# annotations rather than attributes, and its requirements hook without the
# attribute Drupal 11.3 asks for. Its Functional classes each raise around
# 220 of these, and core's run-tests.sh adds --fail-on-deprecation, so
# without these patterns the whole next-major job fails on a fully green
# test table. None of it is orchestra's to fix; drop a line once webform
# converts.
%Using @(Action|EntityType|FieldType|EntityReferenceSelection) annotation for plugin with ID (default:)?webform[a-z_]* is deprecated and is removed from drupal:13.0.0.%
%Not supporting attribute discovery in Drupal\\webform\\Plugin\\Webform[A-Za-z]+Manager is deprecated in drupal:11.2.0 and is removed from drupal:12.0.0.%
%webform[a-z_]*_requirements without a #\[LegacyRequirementsHook\] attribute is deprecated in drupal:11.3.0 and removed in drupal:13.0.0.%

# Raised only once the next-major lane patches webform and key to offer
# attribute discovery (webform #3537358, key #3483550): with discovery on, core
# deprecates every plugin still declared by annotation. key's `state` provider
# is key's to convert.
#
# The other two name ORCHESTRA'S OWN plugins, which normally means fix rather
# than ignore. They cannot be fixed yet: Drupal\webform\Attribute\WebformElement
# and \WebformHandler do not exist in released webform 6.3.0, only under the
# patch, so converting would leave both plugins undiscoverable on the current
# lane. Convert them and delete these two patterns the day webform releases the
# attribute classes.
%Using @KeyProvider annotation for plugin with ID [a-z_]+ is deprecated and is removed from drupal:13.0.0.%
%Using @(WebformElement|WebformHandler) annotation for plugin with ID orchestra_interaction is deprecated and is removed from drupal:13.0.0.%

# webform's element help template still uses Twig's spaceless filter.
%Since twig/twig 3.12: Twig Filter "spaceless" is deprecated in [^ ]*/webform/templates/[a-z-]+\.html\.twig at line [0-9]+.%

# webform hands the current user to the renderer as a cache dependency, and
# AccountProxy does not implement CacheableDependencyInterface. This one WILL
# THROW in Drupal 13, so it is a webform bug to be fixed upstream rather than
# carried forever; the pattern names no project, so remove it as soon as
# webform is fixed and confirm nothing of orchestra's own hides behind it.
# @see WebformSubmissionViewController::view()
%Calling Drupal\\Core\\Render\\Renderer::addCacheableDependency\(\) with an object that doesn't implement Drupal\\Core\\Cache\\CacheableDependencyInterface is deprecated in drupal:11.3.0 and will throw an error in drupal:13.0.0.%

# Drush 14 asks a DrushCommands subclass to become a Console command and
# inject its logger. That is a Drush migration, not a Drupal 12 one, and
# it is tracked separately; the commands work on Drupal 12 as they are.
%Since drush/drush 14.0.0: Convert to a Console command and inject a Logger.%
# cspell:enable
