← all change records
symbol
2
#3395582 Plugin types should use PHP attributes instead of annotations
Generated 2026-05-12 08:43 UTC
Rules (2)
from
\Drupal\Core\Annotation\Action
→
to
\Drupal\Component\Plugin\Attribute\AttributeBase\Drupal\Core\Action\Attribute\Action
Affected contrib projects (97)
| Project | legacy | in_flight | migrated | no_match | installs | files | adopters | |
|---|---|---|---|---|---|---|---|---|
| pathauto | 0 | 0 | 1 | 1 | 460,784 | 0 | 1 | |
| redirect | 0 | 0 | 1 | 1 | 269,845 | 0 | 1 | |
| search_api | 0 | 0 | 1 | 1 | 155,254 | 0 | 2 | |
| views_bulk_operations | 0 | 0 | 2 | 2 | 146,204 | 0 | 8 | |
| migrate_plus | 0 | 0 | 1 | 1 | 59,801 | 0 | 3 | |
| symfony_mailer | 0 | 0 | 1 | 3 | 42,916 | 0 | 1 | |
| commerce | 0 | 0 | 1 | 3 | 37,105 | 0 | 4 | |
| mailchimp | 0 | 0 | 1 | 3 | 23,621 | 0 | 2 | |
| file_delete | 0 | 0 | 1 | 3 | 22,382 | 0 | 2 | |
| trash | 0 | 0 | 1 | 1 | 18,513 | 0 | 2 | |
| eca | 0 | 0 | 3 | 3 | 15,522 | 0 | 204 | |
| content_lock | 0 | 0 | 1 | 3 | 14,106 | 0 | 1 | |
| ai | 0 | 0 | 5 | 3 | 13,284 | 0 | 20 | |
| domain | 0 | 0 | 2 | 2 | 11,148 | 0 | 14 | |
| tmgmt | 0 | 0 | 1 | 1 | 11,000 | 0 | 3 | |
| genpass | 0 | 0 | 2 | 4 | 10,697 | 0 | 1 | |
| og | 0 | 0 | 1 | 3 | 8,347 | 0 | 9 | |
| ai_agents | 0 | 0 | 3 | 3 | 6,863 | 0 | 2 | |
| ui_icons | 0 | 0 | 1 | 3 | 5,642 | 0 | 2 | |
| workflow | 0 | 0 | 1 | 3 | 5,070 | 0 | 2 | |
| gutenberg | 0 | 0 | 1 | 5 | 4,945 | 0 | 1 | |
| privatemsg | 0 | 0 | 1 | 1 | 3,065 | 0 | 4 | |
| quiz | 0 | 0 | 1 | 3 | 3,025 | 0 | 1 | |
| registration | 0 | 0 | 1 | 1 | 2,987 | 0 | 6 | |
| groupmedia | 0 | 0 | 2 | 4 | 2,290 | 0 | 4 | |
| civicrm_entity | 0 | 0 | 1 | 1 | 1,870 | 0 | 1 | |
| eca_tamper | 0 | 0 | 1 | 3 | 1,404 | 0 | 1 | |
| reassign_user_content | 0 | 0 | 1 | 1 | 1,069 | 0 | 1 | |
| pdf_to_imagefield | 0 | 0 | 1 | 1 | 821 | 0 | 1 | |
| eca_webform | 0 | 0 | 1 | 3 | 789 | 0 | 4 | |
| crowdsec | 0 | 0 | 1 | 3 | 760 | 0 | 1 | |
| markdownify | 0 | 0 | 1 | 1 | 670 | 0 | 1 | |
| consent_manager | 0 | 0 | 1 | 3 | 537 | 0 | 1 | |
| ai_translate | 0 | 0 | 2 | 2 | 388 | 0 | 1 | |
| eca_commerce | 0 | 0 | 1 | 3 | 374 | 0 | 2 | |
| log | 0 | 0 | 1 | 3 | 366 | 0 | 4 | |
| media_folders | 0 | 0 | 1 | 1 | 329 | 0 | 1 | |
| tool | 0 | 0 | 1 | 1 | 325 | 0 | 2 | |
| eca_helper | 0 | 0 | 1 | 3 | 314 | 0 | 32 | |
| bulk_edit_terms | 0 | 0 | 1 | 1 | 301 | 0 | 1 | |
| mcp | 0 | 0 | 1 | 1 | 272 | 0 | 1 | |
| sdc_devel | 0 | 0 | 1 | 1 | 264 | 0 | 1 | |
| resend_register_mail | 0 | 0 | 1 | 1 | 258 | 0 | 1 | |
| address_suggestion | 0 | 0 | 1 | 1 | 251 | 0 | 1 | |
| eca_flag | 0 | 0 | 1 | 3 | 232 | 0 | 1 | |
| sdc_styleguide | 0 | 0 | 2 | 2 | 228 | 0 | 2 | |
| field_states | 0 | 0 | 2 | 2 | 195 | 0 | 1 | |
| ai_provider_aws_bedrock | 0 | 0 | 1 | 5 | 179 | 0 | 1 | |
| wisski | 0 | 0 | 1 | 3 | 179 | 0 | 5 | |
| ai_agents_test | 0 | 0 | 1 | 1 | 174 | 0 | 1 | |
| eca_state_machine | 0 | 0 | 1 | 3 | 173 | 0 | 1 | |
| eca_metatag | 0 | 0 | 1 | 3 | 146 | 0 | 2 | |
| document_loader | 0 | 0 | 2 | 2 | 137 | 0 | 1 | |
| pluggable_entity_view_builder | 0 | 0 | 1 | 1 | 136 | 0 | 1 | |
| static_setting_contexts | 0 | 0 | 1 | 1 | 121 | 0 | 1 | |
| navigation_plus | 0 | 0 | 2 | 2 | 120 | 0 | 2 | |
| lms | 0 | 0 | 2 | 0 | 94 | 0 | 6 | |
| eca_content_access | 0 | 0 | 1 | 3 | 88 | 0 | 2 | |
| ai_search | 0 | 0 | 1 | 1 | 79 | 0 | 1 | |
| content_moderation_bulk_state_change | 0 | 0 | 1 | 1 | 73 | 0 | 1 | |
| configurable_anonymizer | 0 | 0 | 1 | 1 | 67 | 0 | 1 | |
| token_eca_alter | 0 | 0 | 1 | 3 | 64 | 0 | 1 | |
| eca_group | 0 | 0 | 1 | 1 | 57 | 0 | 1 | |
| eca_entity_print | 0 | 0 | 1 | 3 | 46 | 0 | 2 | |
| give | 0 | 0 | 1 | 1 | 45 | 0 | 1 | |
| eca_views_data_export | 0 | 0 | 1 | 3 | 40 | 0 | 1 | |
| meeting_api | 0 | 0 | 1 | 1 | 29 | 0 | 2 | |
| daterangepickerwidget | 0 | 0 | 1 | 3 | 28 | 0 | 1 | |
| advanced_message_subscription | 0 | 0 | 1 | 1 | 25 | 0 | 1 | |
| orchestration | 0 | 0 | 1 | 1 | 24 | 0 | 3 | |
| ocr_image | 0 | 0 | 1 | 1 | 23 | 0 | 1 | |
| pwa_firebase | 0 | 0 | 1 | 1 | 22 | 0 | 1 | |
| batch_plugin | 0 | 0 | 1 | 3 | 19 | 0 | 2 | |
| sql_views | 0 | 0 | 1 | 1 | 16 | 0 | 1 | |
| commerce_cart_reminder | 0 | 0 | 1 | 1 | 15 | 0 | 1 | |
| commerce_gc_client | 0 | 0 | 1 | 3 | 15 | 0 | 1 | |
| mail_action | 0 | 0 | 1 | 1 | 15 | 0 | 2 | |
| drupalfit | 0 | 0 | 2 | 2 | 14 | 0 | 3 | |
| commerce_xero | 0 | 0 | 1 | 1 | 12 | 0 | 1 | |
| search_api_solr_dense_vector | 0 | 0 | 1 | 1 | 12 | 0 | 1 | |
| views_query | 0 | 0 | 1 | 1 | 12 | 0 | 1 | |
| cas_user_ban | 0 | 0 | 1 | 1 | 11 | 0 | 1 | |
| openai_batch | 0 | 0 | 2 | 0 | 11 | 0 | 2 | |
| search_api_ai | 0 | 0 | 1 | 1 | 11 | 0 | 1 | |
| sms_message | 0 | 0 | 1 | 1 | 9 | 0 | 4 | |
| entity_manager | 0 | 0 | 1 | 1 | 7 | 0 | 2 | |
| easy_entity_field | 0 | 0 | 2 | 2 | 4 | 0 | 1 | |
| dynamic_yield | 0 | 0 | 1 | 1 | 3 | 0 | 2 | |
| eca_external_workflows | 0 | 0 | 2 | 0 | 3 | 0 | 2 | |
| secure_nodes | 0 | 0 | 1 | 1 | 3 | 0 | 2 | |
| eca_zoom | 0 | 0 | 1 | 1 | 2 | 0 | 11 | |
| smallads | 0 | 0 | 1 | 1 | 2 | 0 | 2 | |
| mautic_eca | 0 | 0 | 1 | 1 | 1 | 0 | 13 | |
| node_change_default_language | 0 | 0 | 1 | 1 | 1 | 0 | 1 | |
| eca_entity_import | 0 | 0 | 1 | 5 | 0 | 0 | 1 | |
| eca_quiz | 0 | 0 | 1 | 1 | 0 | 0 | 1 | |
| plotly | 0 | 0 | 1 | 1 | 0 | 0 | 1 |