← all change records
#3395582 Plugin types should use PHP attributes instead of annotations
Generated 2026-06-03 14:00 UTC
Matching rules (2)
- from: \Drupal\Core\Annotation\Action
to: \Drupal\Core\Action\Attribute\Action
- to: \Drupal\Component\Plugin\Attribute\AttributeBase
Affected contrib projects (99)
| Project | legacy | in_flight | migrated | installs | files | adopters | |
|---|---|---|---|---|---|---|---|
| pathauto ↗ | 0 | 0 | 1 | 514,923 | 0 | 1 | |
| redirect ↗ | 0 | 0 | 1 | 292,214 | 0 | 1 | |
| search_api ↗ | 0 | 0 | 1 | 170,654 | 0 | 2 | |
| views_bulk_operations ↗ | 0 | 0 | 2 | 162,628 | 0 | 8 | |
| migrate_plus ↗ | 0 | 0 | 1 | 63,882 | 0 | 3 | |
| symfony_mailer ↗ | 0 | 0 | 1 | 47,178 | 0 | 1 | |
| commerce ↗ | 0 | 0 | 1 | 38,572 | 0 | 4 | |
| mailchimp ↗ | 0 | 0 | 1 | 25,062 | 0 | 2 | |
| file_delete ↗ | 0 | 0 | 1 | 23,245 | 0 | 2 | |
| trash ↗ | 0 | 0 | 1 | 19,430 | 0 | 2 | |
| eca ↗ | 0 | 0 | 3 | 17,304 | 0 | 204 | |
| ai ↗ | 0 | 0 | 5 | 15,430 | 0 | 21 | |
| content_lock ↗ | 0 | 0 | 1 | 15,420 | 0 | 1 | |
| domain ↗ | 0 | 0 | 2 | 11,889 | 0 | 14 | |
| tmgmt ↗ | 0 | 0 | 1 | 11,594 | 0 | 3 | |
| genpass ↗ | 0 | 0 | 2 | 9,244 | 0 | 1 | |
| ai_agents ↗ | 0 | 0 | 3 | 8,400 | 0 | 2 | |
| og ↗ | 0 | 0 | 1 | 7,735 | 0 | 9 | |
| ui_icons ↗ | 0 | 0 | 1 | 6,369 | 0 | 1 | |
| workflow ↗ | 0 | 0 | 1 | 5,395 | 0 | 2 | |
| gutenberg ↗ | 0 | 0 | 1 | 5,276 | 0 | 1 | |
| iubenda_integration ↗ | 0 | 0 | 1 | 3,366 | 0 | 2 | |
| quiz ↗ | 0 | 0 | 1 | 3,072 | 0 | 1 | |
| registration ↗ | 0 | 0 | 1 | 3,036 | 0 | 6 | |
| privatemsg ↗ | 0 | 0 | 1 | 2,714 | 0 | 4 | |
| groupmedia ↗ | 0 | 0 | 2 | 2,455 | 0 | 4 | |
| civicrm_entity ↗ | 0 | 0 | 1 | 1,972 | 0 | 1 | |
| eca_tamper ↗ | 0 | 0 | 1 | 1,525 | 0 | 1 | |
| reassign_user_content ↗ | 0 | 0 | 1 | 1,505 | 0 | 1 | |
| crowdsec ↗ | 0 | 0 | 1 | 1,004 | 0 | 1 | |
| markdownify ↗ | 0 | 0 | 1 | 965 | 0 | 1 | |
| markdown_easy ↗ | 0 | 0 | 1 | 921 | 0 | 1 | |
| eca_webform ↗ | 0 | 0 | 1 | 908 | 0 | 4 | |
| pdf_to_imagefield ↗ | 0 | 0 | 1 | 803 | 0 | 1 | |
| consent_manager ↗ | 0 | 0 | 1 | 488 | 0 | 1 | |
| ai_translate ↗ | 0 | 0 | 2 | 426 | 0 | 1 | |
| eca_commerce ↗ | 0 | 0 | 1 | 407 | 0 | 2 | |
| sdc_devel ↗ | 0 | 0 | 1 | 378 | 0 | 1 | |
| eca_helper ↗ | 0 | 0 | 1 | 366 | 0 | 32 | |
| media_folders ↗ | 0 | 0 | 1 | 338 | 0 | 1 | |
| log ↗ | 0 | 0 | 1 | 333 | 0 | 4 | |
| mcp ↗ | 0 | 0 | 1 | 302 | 0 | 1 | |
| bulk_edit_terms ↗ | 0 | 0 | 1 | 299 | 0 | 1 | |
| tool ↗ | 0 | 0 | 1 | 289 | 0 | 1 | |
| resend_register_mail ↗ | 0 | 0 | 1 | 267 | 0 | 1 | |
| address_suggestion ↗ | 0 | 0 | 1 | 264 | 0 | 1 | |
| sdc_styleguide ↗ | 0 | 0 | 2 | 240 | 0 | 2 | |
| eca_flag ↗ | 0 | 0 | 1 | 235 | 0 | 1 | |
| eca_metatag ↗ | 0 | 0 | 1 | 223 | 0 | 2 | |
| eca_state_machine ↗ | 0 | 0 | 1 | 218 | 0 | 1 | |
| ai_provider_aws_bedrock ↗ | 0 | 0 | 1 | 206 | 0 | 1 | |
| ai_agents_test ↗ | 0 | 0 | 1 | 200 | 0 | 1 | |
| wisski ↗ | 0 | 0 | 1 | 193 | 0 | 5 | |
| field_states ↗ | 0 | 0 | 2 | 174 | 0 | 1 | |
| pluggable_entity_view_builder ↗ | 0 | 0 | 1 | 150 | 0 | 1 | |
| document_loader ↗ | 0 | 0 | 2 | 147 | 0 | 1 | |
| navigation_plus ↗ | 0 | 0 | 2 | 112 | 0 | 2 | |
| ai_search ↗ | 0 | 0 | 1 | 111 | 0 | 1 | |
| static_setting_contexts ↗ | 0 | 0 | 1 | 100 | 0 | 1 | |
| lms ↗ | 0 | 0 | 2 | 99 | 0 | 6 | |
| eca_content_access ↗ | 0 | 0 | 1 | 91 | 0 | 2 | |
| configurable_anonymizer ↗ | 0 | 0 | 1 | 73 | 0 | 1 | |
| content_moderation_bulk_state_change ↗ | 0 | 0 | 1 | 68 | 0 | 1 | |
| token_eca_alter ↗ | 0 | 0 | 1 | 67 | 0 | 1 | |
| eca_group ↗ | 0 | 0 | 1 | 58 | 0 | 1 | |
| eca_views_data_export ↗ | 0 | 0 | 1 | 54 | 0 | 1 | |
| eca_entity_print ↗ | 0 | 0 | 1 | 49 | 0 | 2 | |
| give ↗ | 0 | 0 | 1 | 42 | 0 | 1 | |
| meeting_api ↗ | 0 | 0 | 1 | 41 | 0 | 2 | |
| drupalfit ↗ | 0 | 0 | 2 | 28 | 0 | 3 | |
| daterangepickerwidget ↗ | 0 | 0 | 1 | 27 | 0 | 1 | |
| ocr_image ↗ | 0 | 0 | 1 | 26 | 0 | 1 | |
| mail_action ↗ | 0 | 0 | 1 | 25 | 0 | 2 | |
| advanced_message_subscription ↗ | 0 | 0 | 1 | 24 | 0 | 1 | |
| pwa_firebase ↗ | 0 | 0 | 1 | 23 | 0 | 1 | |
| batch_plugin ↗ | 0 | 0 | 1 | 21 | 0 | 2 | |
| commerce_gc_client ↗ | 0 | 0 | 1 | 21 | 0 | 1 | |
| orchestration ↗ | 0 | 0 | 1 | 19 | 0 | 3 | |
| cas_user_ban ↗ | 0 | 0 | 1 | 17 | 0 | 1 | |
| search_api_solr_dense_vector ↗ | 0 | 0 | 1 | 16 | 0 | 1 | |
| views_query ↗ | 0 | 0 | 1 | 16 | 0 | 1 | |
| sql_views ↗ | 0 | 0 | 1 | 15 | 0 | 1 | |
| commerce_cart_reminder ↗ | 0 | 0 | 1 | 14 | 0 | 1 | |
| commerce_xero ↗ | 0 | 0 | 1 | 13 | 0 | 1 | |
| openai_batch ↗ | 0 | 0 | 2 | 13 | 0 | 2 | |
| entity_manager ↗ | 0 | 0 | 1 | 9 | 0 | 2 | |
| sms_message ↗ | 0 | 0 | 1 | 9 | 0 | 4 | |
| easy_entity_field ↗ | 0 | 0 | 2 | 8 | 0 | 1 | |
| search_api_ai ↗ | 0 | 0 | 1 | 7 | 0 | 1 | |
| eca_external_workflows ↗ | 0 | 0 | 2 | 3 | 0 | 2 | |
| eca_zoom ↗ | 0 | 0 | 1 | 2 | 0 | 11 | |
| node_change_default_language ↗ | 0 | 0 | 1 | 2 | 0 | 1 | |
| secure_nodes ↗ | 0 | 0 | 1 | 2 | 0 | 2 | |
| dynamic_yield ↗ | 0 | 0 | 1 | 1 | 0 | 2 | |
| eca_entity_import ↗ | 0 | 0 | 1 | 1 | 0 | 1 | |
| smallads ↗ | 0 | 0 | 1 | 1 | 0 | 2 | |
| eca_quiz ↗ | 0 | 0 | 1 | 0 | 0 | 1 | |
| mautic_eca ↗ | 0 | 0 | 1 | 0 | 0 | 13 | |
| plotly ↗ | 0 | 0 | 1 | 0 | 0 | 1 |