← all change records
#3395582 Plugin types should use PHP attributes instead of annotations
Generated 2026-09-22 02:00 UTC
Matching rules (2)
- from:
fqn: \Drupal\Core\Annotation\Action
to:
fqn: \Drupal\Core\Action\Attribute\Action
- to:
fqn: \Drupal\Component\Plugin\Attribute\AttributeBase
Affected contrib projects (102)
| Project | legacy | in_flight | migrated | installs | files | adopters | |
|---|---|---|---|---|---|---|---|
| pathauto ↗ | 0 | 0 | 1 | 464,059 | 0 | 1 | |
| redirect ↗ | 0 | 0 | 1 | 266,035 | 0 | 1 | |
| search_api ↗ | 0 | 0 | 1 | 162,719 | 0 | 2 | |
| views_bulk_operations ↗ | 0 | 0 | 2 | 148,209 | 0 | 8 | |
| migrate_plus ↗ | 0 | 0 | 1 | 61,728 | 0 | 3 | |
| symfony_mailer ↗ | 0 | 0 | 1 | 44,562 | 0 | 1 | |
| commerce ↗ | 0 | 0 | 1 | 36,840 | 0 | 4 | |
| mailchimp ↗ | 0 | 0 | 1 | 23,849 | 0 | 2 | |
| trash ↗ | 0 | 0 | 1 | 23,141 | 0 | 2 | |
| file_delete ↗ | 0 | 0 | 1 | 22,557 | 0 | 2 | |
| eca ↗ | 0 | 0 | 3 | 19,931 | 0 | 218 | |
| ai ↗ | 0 | 0 | 7 | 17,818 | 0 | 26 | |
| content_lock ↗ | 0 | 0 | 1 | 15,367 | 0 | 1 | |
| tmgmt ↗ | 0 | 0 | 1 | 12,654 | 0 | 3 | |
| domain ↗ | 0 | 0 | 3 | 11,497 | 0 | 14 | |
| ai_agents ↗ | 0 | 0 | 3 | 10,093 | 0 | 2 | |
| genpass ↗ | 0 | 0 | 2 | 8,834 | 0 | 1 | |
| ui_icons ↗ | 0 | 0 | 1 | 8,746 | 0 | 1 | |
| og ↗ | 0 | 0 | 1 | 6,906 | 0 | 9 | |
| workflow ↗ | 0 | 0 | 1 | 5,412 | 0 | 2 | |
| gutenberg ↗ | 0 | 0 | 1 | 5,031 | 0 | 1 | |
| iubenda_integration ↗ | 0 | 0 | 2 | 3,003 | 0 | 2 | |
| registration ↗ | 0 | 0 | 1 | 2,944 | 0 | 6 | |
| quiz ↗ | 0 | 0 | 1 | 2,898 | 0 | 1 | |
| privatemsg ↗ | 0 | 0 | 1 | 2,603 | 0 | 4 | |
| groupmedia ↗ | 0 | 0 | 2 | 2,497 | 0 | 4 | |
| civicrm_entity ↗ | 0 | 0 | 1 | 1,856 | 0 | 1 | |
| eca_webform ↗ | 0 | 0 | 1 | 1,738 | 0 | 4 | |
| eca_tamper ↗ | 0 | 0 | 1 | 1,543 | 0 | 1 | |
| markdownify ↗ | 0 | 0 | 1 | 1,321 | 0 | 2 | |
| ai_translate ↗ | 0 | 0 | 2 | 1,288 | 0 | 1 | |
| bibcite ↗ | 0 | 0 | 1 | 1,252 | 0 | 11 | |
| tool ↗ | 0 | 0 | 1 | 1,240 | 0 | 1 | |
| eca_metatag ↗ | 0 | 0 | 1 | 1,038 | 0 | 2 | |
| reassign_user_content ↗ | 0 | 0 | 1 | 995 | 0 | 1 | |
| sdc_devel ↗ | 0 | 0 | 1 | 931 | 0 | 1 | |
| crowdsec ↗ | 0 | 0 | 1 | 864 | 0 | 1 | |
| markdown_easy ↗ | 0 | 0 | 1 | 793 | 0 | 1 | |
| pdf_to_imagefield ↗ | 0 | 0 | 1 | 785 | 0 | 1 | |
| consent_manager ↗ | 0 | 0 | 1 | 545 | 0 | 1 | |
| media_folders ↗ | 0 | 0 | 1 | 484 | 0 | 1 | |
| ai_search ↗ | 0 | 0 | 1 | 430 | 0 | 1 | |
| eca_commerce ↗ | 0 | 0 | 1 | 400 | 0 | 2 | |
| eca_helper ↗ | 0 | 0 | 1 | 389 | 0 | 32 | |
| mcp ↗ | 0 | 0 | 1 | 371 | 0 | 1 | |
| log ↗ | 0 | 0 | 1 | 316 | 0 | 4 | |
| resend_register_mail ↗ | 0 | 0 | 1 | 310 | 0 | 1 | |
| bulk_edit_terms ↗ | 0 | 0 | 1 | 295 | 0 | 1 | |
| static_setting_contexts ↗ | 0 | 0 | 1 | 251 | 0 | 1 | |
| address_suggestion ↗ | 0 | 0 | 1 | 233 | 0 | 1 | |
| eca_flag ↗ | 0 | 0 | 1 | 233 | 0 | 1 | |
| sdc_styleguide ↗ | 0 | 0 | 2 | 230 | 0 | 2 | |
| ai_provider_aws_bedrock ↗ | 0 | 0 | 1 | 226 | 0 | 1 | |
| wisski ↗ | 0 | 0 | 1 | 218 | 0 | 5 | |
| field_states ↗ | 0 | 0 | 2 | 209 | 0 | 1 | |
| eca_state_machine ↗ | 0 | 0 | 1 | 203 | 0 | 1 | |
| lms ↗ | 0 | 0 | 2 | 196 | 0 | 6 | |
| vbo_workflow_transition ↗ | 0 | 0 | 1 | 183 | 0 | 1 | |
| ai_agents_test ↗ | 0 | 0 | 1 | 156 | 0 | 1 | |
| document_loader ↗ | 0 | 0 | 2 | 149 | 0 | 1 | |
| token_eca_alter ↗ | 0 | 0 | 1 | 101 | 0 | 1 | |
| augmentor ↗ | 0 | 0 | 1 | 99 | 0 | 3 | |
| pluggable_entity_view_builder ↗ | 0 | 0 | 1 | 97 | 0 | 1 | |
| content_moderation_bulk_state_change ↗ | 0 | 0 | 1 | 93 | 0 | 1 | |
| navigation_plus ↗ | 0 | 0 | 2 | 90 | 0 | 3 | |
| eca_content_access ↗ | 0 | 0 | 1 | 78 | 0 | 2 | |
| configurable_anonymizer ↗ | 0 | 0 | 1 | 71 | 0 | 1 | |
| meeting_api ↗ | 0 | 0 | 1 | 68 | 0 | 2 | |
| eca_group ↗ | 0 | 0 | 1 | 65 | 0 | 1 | |
| orchestration ↗ | 0 | 0 | 1 | 59 | 0 | 3 | |
| search_api_solr_dense_vector ↗ | 0 | 0 | 1 | 57 | 0 | 1 | |
| eca_entity_print ↗ | 0 | 0 | 1 | 40 | 0 | 2 | |
| eca_views_data_export ↗ | 0 | 0 | 1 | 36 | 0 | 1 | |
| give ↗ | 0 | 0 | 1 | 33 | 0 | 1 | |
| advanced_message_subscription ↗ | 0 | 0 | 1 | 28 | 0 | 1 | |
| daterangepickerwidget ↗ | 0 | 0 | 1 | 26 | 0 | 1 | |
| mail_action ↗ | 0 | 0 | 1 | 24 | 0 | 2 | |
| ocr_image ↗ | 0 | 0 | 1 | 22 | 0 | 1 | |
| pwa_firebase ↗ | 0 | 0 | 1 | 22 | 0 | 1 | |
| sms_message ↗ | 0 | 0 | 1 | 18 | 0 | 4 | |
| openai_batch ↗ | 0 | 0 | 2 | 17 | 0 | 2 | |
| commerce_gc_client ↗ | 0 | 0 | 1 | 16 | 0 | 1 | |
| drupalfit ↗ | 0 | 0 | 2 | 16 | 0 | 3 | |
| node_change_default_language ↗ | 0 | 0 | 1 | 16 | 0 | 1 | |
| sql_views ↗ | 0 | 0 | 1 | 16 | 0 | 1 | |
| batch_plugin ↗ | 0 | 0 | 1 | 14 | 0 | 2 | |
| commerce_cart_reminder ↗ | 0 | 0 | 1 | 14 | 0 | 1 | |
| commerce_xero ↗ | 0 | 0 | 1 | 13 | 0 | 1 | |
| entity_manager ↗ | 0 | 0 | 1 | 13 | 0 | 2 | |
| views_query ↗ | 0 | 0 | 1 | 13 | 0 | 1 | |
| cas_user_ban ↗ | 0 | 0 | 1 | 12 | 0 | 1 | |
| easy_entity_field ↗ | 0 | 0 | 2 | 10 | 0 | 1 | |
| search_api_ai ↗ | 0 | 0 | 1 | 6 | 0 | 1 | |
| smallads ↗ | 0 | 0 | 1 | 6 | 0 | 2 | |
| eca_entity_import ↗ | 0 | 0 | 1 | 4 | 0 | 1 | |
| eca_external_workflows ↗ | 0 | 0 | 2 | 3 | 0 | 2 | |
| mautic_eca ↗ | 0 | 0 | 1 | 3 | 0 | 13 | |
| dynamic_yield ↗ | 0 | 0 | 1 | 2 | 0 | 2 | |
| eca_zoom ↗ | 0 | 0 | 1 | 2 | 0 | 11 | |
| plotly ↗ | 0 | 0 | 1 | 1 | 0 | 1 | |
| secure_nodes ↗ | 0 | 0 | 1 | 1 | 0 | 2 | |
| eca_quiz ↗ | 0 | 0 | 1 | 0 | 0 | 1 |