[Plan] Simplify core component list

Created on 7 September 2023, over 1 year ago
Updated 27 November 2023, about 1 year ago

Problem/Motivation

This is a follow up to the work started in 🌱 [Plan] Update core components Fixed . That issue removed some legacy components were deleted.

This issue it to resolve points 2 and 3 from that issue. Also, keep in mind that we are moving to GitLab where these will become labels.

  • Components that are hard to differentiate - batch system vs. form system.
  • Sheer number of components - i.e. one per module.

Currently the component list consists of 85 modules, 35 systems, 9 themes, 3 db driver, plus markup, javascript, CSS, phpunit, composer, documentation, meeting, Umami demo, user interface text, single directory component and other.

Proposed resolution

General points of agreement

  • Keep the component list and MAINTAINERS.txt in sync

This list does not include components that have been removed from D8+ or are D7 only.

  1. CSS - CSS
  2. announcements - announcements_feed.module
  3. base - cron system, lock system
  4. ban - ban.module
  5. contact - contact.module
  6. batch - batch system
  7. bootstrap - bootstrap system
  8. cache - cache system, page_cache.module
  9. coding standards -
  10. composer - composer
  11. configuration - configuration entity system, configuration system, config.module
  12. database - database system, mysql db driver, postgresql db driver, sqlite db driver
  13. update - database update system
  14. entity - entity system,
  15. edit - ckeditor5.module, editor.module
  16. extension - extension system
  17. field - field system
  18. fields - comment.module, datetime.module, field_ui.module, file.module, link.module, number.module, options.module, telephone.module, text.module
  19. file - file system
  20. form - form system, inline_form_errors.module
  21. image - image system
  22. help - help.module
  23. install - install system
  24. javascript - javascript
  25. mail - mail system
  26. layout - block.module, block_content.module, layout_builder.module, layout_discovery.module, field_layout.module, settings_tray.module
  27. localization - language system, language.module, locale.module
  28. log - dblog.module, syslog.module
  29. media - media system, breakpoint.module, image.module, responsive_image.module
  30. meetings
  31. menu - menu system, menu_link_content.module, menu_ui.module, path.module
  32. migration - migration system
  33. multilingual - language system, transliteration system, config_translation.module, content_translation.module, language.module, locale.module
  34. node - node system,
  35. plugin - plugin system
  36. render - ajax system, asset library system, markup, render system, theme system, contextual.module, filter.module
  37. request processing - request processing system, big_pipe.module, dynamic_page_cache.module
  38. routing - routing system
  39. search - search.module
  40. single directory components - single directory components
  41. statistics - statistics.modules
  42. system - system.module
  43. taxonomy - taxonomy.module
  44. testing - phpunit
  45. themes - claro, olivero, stable9, stark, starterkit_theme
  46. token - token system
  47. toolbar - toolbar.module
  48. typed data - typed data system
  49. umami - umami demo
  50. update - automatic_updates.module, update.module
  51. user - user system, history.module, user.module, shortcut.module
  52. interface text - user interface text
  53. views - views.module, views_ui.module
  54. web services - basic_auth.module, jsonapi.module, rest.module, serialization.module
  55. workflow - content_moderation.module, workflows.module, workspaces.module
  56. other -

Remaining tasks

To decide:

  • Keep the specific components/labels for specific modules or not
🌱 Plan
Status

Needs review

Version

11.0 πŸ”₯

Component
OtherΒ  β†’

Last updated 3 days ago

Created by

πŸ‡³πŸ‡ΏNew Zealand quietone

Live updates comments and jobs are added and updated live.
  • Project governance

    It is used to alert the BDFL that an issue change affects the governance, philosophy, goals, principles, or nature of Drupal and their signoff is needed. See the governance policy draft for more information.

Sign in to follow issues

Comments & Activities

  • Issue created by @quietone
  • πŸ‡³πŸ‡ΏNew Zealand quietone

    Here is a suggested start. It does not cover all the current components.

    • configuration - configuration entity system, configuration system, config.module
    • database - mysql db driver, postgresql db driver, sqlite db driver
    • entity
    • fields - field_ui.module, number.module, options.module, link.module, telephone.module, text.module
    • help
    • layout -
    • localization - language system, language.module, locale.module
    • meetings
    • menu - menu system, menu_ui.module, menu_link_content.module, path.module, path+alias.module
    • migration
    • plugin system
    • render - ajax system, asset library system, forms system, theme system, markup
    • routing - routing system
    • single directory components
    • testing
    • themes - claro, engines, olivero, stable9, stark, starterkit_theme
    • translation - transliteration system, content_translation.module, config_translation translation_entity.module
    • umami demo
    • update - database update system, update.module, automatic updates
    • views - views.module, views_ui.module
    • web services - basic_auth.module, jsonapi.module, rest.module, serialization.module
  • πŸ‡³πŸ‡ΏNew Zealand quietone
  • πŸ‡³πŸ‡ΏNew Zealand quietone
  • πŸ‡ΊπŸ‡ΈUnited States andy-blum Ohio, USA

    would it be possible to alphabetize the components as well?

  • πŸ‡¬πŸ‡§United Kingdom catch

    No solutions but possible problems:

    Entity and fields is tricky, the individual field types are not part of the entity API, but the field API very much is, and issues could end up in the wrong place because of that. We sometimes get the same issue with node/user/comment/taxonomy issues that could be entity-type-specific, could be entity system but just discovered via a specific entity type. Same with content_translation and entity where there's a lot of overlap.

    I wouldn't put the database update system and update module together because they're dealing with very different things, but this is complicated by automatic updates module which is dealing with both.

  • Status changed to Needs review over 1 year ago
  • πŸ‡³πŸ‡ΏNew Zealand quietone

    In the hope of generating discussion I made a suggestion in the IS. It is limited to D8+ components and I am sure there are mistakes.

  • πŸ‡¨πŸ‡­Switzerland berdir Switzerland

    I get that we want to reduce the amount of labels/components, but I'm not sure about grouping together different modules and things that have different maintainers. As a maintainer of a subsystem, I need a way to filter my issues.

    Examples for that would be different database backends, but also config/translation being *very* different beasts that have little to no overlap. But also themes, olivero and claro have completely different maintainers.

    So IMHO, the components for issues should be based on the components we have in MAINTAINERS.txt and if we want to clean up, we should start there?

    Another problematic use case is things that we remove from core. For example you put the form system and inline_form_errors in the same component. if we were to remove the module from core it would be _very_ tedious to find all relevant issues and move them to the contrib module.

    IMHO, the solution for that with gitlab issue labels would be multiple labels. For example, both localization and translation could actually be a common multilingual label but then each module within that would also have it's "sub-label" and we'd add both to an. That would of course result in even more labels technically speaking, but that's going to happen anyway because we'll also need to make all tags labels?

  • +1 that whatever we do, it should align with MAINTAINERS.txt, including if that means modifying MAINTAINERS.txt.

  • πŸ‡ͺπŸ‡ΈSpain ckrina Barcelona

    But also themes, olivero and claro have completely different maintainers.

    Agreed. As a Claro maintainer it's really useful to filter by component.

  • πŸ‡³πŸ‡ΏNew Zealand quietone

    Yes, the components and MAINTAINERS.txt should be more in alignment. And because of that I don't think it is necessary to start this discussion on how to group the components in a new issue about MAINTAINERS.txt. We just need to keep in mind the two places these 'groups' are used.

    For some reason I did not mention in the IS that we could use scoped labels. I am guessing that this is the sub-label referred to in #8. That will allow us to maintain the module or theme granularity.

    @Berdir, are you suggesting this change?
    Replace

    1. localization - language system, language.module, locale.module
    2. translation - transliteration system, content_translation.module, config_translation

    with

    1. multilingual - language system, language.module, locale.module, transliteration system, content_translation.module, config_translation
  • πŸ‡ΊπŸ‡ΈUnited States smustgrave

    Moving to plan.

    But also a +1 to redoing MAINTAINERS.txt as we currently have 26 gaps in it.

  • πŸ‡¨πŸ‡­Switzerland berdir Switzerland

    > @Berdir, are you suggesting this change?

    If and only if we keep the specific components/labels for the specific modules (whatever they will be called), yes. The separation between localization and translation seems arbitrary to me.

    That was just one example, I'll try to take another closer look under that assumption and make more suggestions.

  • πŸ‡³πŸ‡ΏNew Zealand quietone

    Updated the IS to include the preference for keeping the extension granularity and the 'multilingual' suggestion. Also, sorted the items on the right side of the hyphen by system then by extension.

    @Berdir, thanks. I am looking forward to your suggestions.

  • πŸ‡³πŸ‡ΏNew Zealand quietone

    There has been little engagement with this issue and I also think this is a difficult task to do in an issue. A few days ago I thought a card sort exercise of some sort will help. I am only just starting to explore that.

    Also, I updated the IS to show that there is agreement on keeping this in sync with MAINTAINERS.txt. I have moved the point about agreement on keeping the module level distinction to a remaining tasks for further discussion. I did that because of my experience as a migrate maintainer. Quite a few migration issues were neglected because they were filed in some module component. It was purely by accident that I found one and then added extra searching to my habits. I'd like to consider that a bit more and hear other opinions.

  • πŸ‡ΈπŸ‡°Slovakia poker10

    As the D7 EOL is in January 2025, I am curious what exactly does this mean?

    This list does not include components that have been removed from D8+ or are D7 only.

    Don't we need to preserve D7 components until the EOL?

  • πŸ‡³πŸ‡ΏNew Zealand quietone

    @poker10, yes, the D7 world needs to be included in some way. When I made this is seemed that starting with D8+ only would make this simpler due to less components, but also to encourage long term thinking.

    How about the D7 components are added but say, in italics, so we can see the difference. You are invited to add them to the IS :-)!

  • πŸ‡ΈπŸ‡°Slovakia poker10

    I checked the list of components and compared it with the proposal in the IS. Here are my thoughts:

    D7 only components which are missing in the proposal:

    • base system - add to the group "base"?
    • xml-rpc system
    • aggregator.module
    • blog.module
    • color.module
    • dashboard.module
    • menu.module - add to the group "menu"?
    • openid.module
    • overlay.module
    • php.module
    • poll.module
    • profile.module
    • rdf.module
    • simpletest.module - add to group "testing"
    • trigger.module
    • Bartik theme - add to group "themes"
    • Seven theme - add to group "themes"

    I also found few D7/D10 components which are missing:

    • action.module - D10 only, missing in the proposal
    • book.module - D7 + D10
    • forum.module - D7 + D10
    • tour.module - D10 only, missing in the proposal
    • tracker.module - D7 + D10
    • documentation - not included anywhere in the proposal

    I have not updated the IS with these two groups yet, as I think it would be better to check if some of them could be assigned to existing groups in proposal, instead of adding all of them as new groups. Once we reach consensus, we can update the IS according to this.

  • πŸ‡³πŸ‡ΏNew Zealand quietone

    I had the idea that a card sort would help us resolve this. I reached out to https://maze.co/ and https://support.optimalworkshop.com for support. They both replied in the negative.

    Anyone have other ideas to make this easy for us?

  • πŸ‡¬πŸ‡§United Kingdom catch

    @poker10 the Drupal 10 ones that are missing are (I assume) because those modules are planned to move to contrib for Drupal 11. Maybe we can apply @quietone's italics idea for those too.

    Documentation for me is more of a topic than a component, although sometimes it's used for documentation for core on Drupal.org which is kind of a grey area compared to the actual documentation queue.

  • πŸ‡ΊπŸ‡ΈUnited States smustgrave
Production build 0.71.5 2024