Problem/Motivation

Drupal 6 support is going to be dropped this month.

Core's component list is unwieldy to handle, for at least three reasons:

1. Stale components that are no longer used/exist
2. Components that are hard to differentiate - batch system vs. form system.
3. Sheer number of components - i.e. one per module.

#3 is not the focus of this issue, we could tackle that in another issue but it'll be difficult. I think we could fix #1 and #2 quite easily though.

Proposed resolution

Go through the existing component list and trim it down.

There's no good way to collaborate on this - the list only exists as a multi-value text field.

So went for google docs with suggestions:
https://docs.google.com/document/d/1XdC00nJFPEHcdK6JVu0ijkJO8MXkljoC1PnT...

Remaining tasks

User interface changes

API changes

Data model changes

CommentFileSizeAuthor
#2 components.txt1.96 KBcatch
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

catch created an issue. See original summary.

catch’s picture

FileSize
1.96 KB

Current list as a .txt because it's annoying to parse it out of the issue creation form options markup...

xjm’s picture

Version: 8.1.x-dev » 8.2.x-dev

Drupal 8.1.0-beta1 was released on March 2, 2016, which means new developments and disruptive changes should now be targeted against the 8.2.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

xjm’s picture

So I'm in the process of writing queries to prepare major triage sessions with both themeand entity/field system maintainers, which reminded me of this issue.

I think we should consider all of the following:

  • Remove all components that do not exist in D7 or D8
  • D.o issue for restricting component list by the version
  • Policy/governance issue to group components into broad top-level categories (postponed on the removal issue above, because noise)
  • D.o issue for optional subcomponents (these are the current components, so that e.g. emma.maria can look only for Bartik issues, but Cottser can find all issues for all themes)
  • D.o issue to populate the top-level components
  • D.o issue to allow multiple components

Edit: Moving my notes to the postponed issue to not confuse the discussion.

xjm’s picture

I posted #2702321: Group core components into broad categories and moved my broad grouping notes to there.

I left some comments on the gdoc. I think we should start by just deleting the components that do not exist in D7 or D8; I don't care if outdated issues lose their component data on update and that does not require anything but a committer updating the core project node. Anything that involves renaming components requires a bulk update from infra as well, because they are just stored as plain strings, not references or IDs. I made that mistake once in the past which is why it is currently "node system" instead of "node.module." :P

catch’s picture

For straight renames on a 1-1 basis a bulk update sounds useful.

Some components definitely do not need a bulk update, for example the lock component:

https://www.drupal.org/project/issues/search/drupal?project_issue_follow...

15 issues

Two of them are about database deadlocks.

One of them is about blocks.

5 were updated in the past 12 months.

Two of those are the misclassified ones.

Just a validation error on those issues is preferable to moving them all the base system for me.

xjm’s picture

To start, I deleted the following legacy and previously renamed core components that do not exist for Drupal 8 or 7:

  1. archive.module
  2. blogapi.module
  3. drupal.module
  4. page.module
  5. story.module
  6. throttle.module
  7. translation.module
  8. translation_entity.module
  9. watchdog.module

If issues filed against these components get updated, they'll have to pick a new component. (Edit: and there is a reasonable chance they'll be accidentally moved to the AJAX system.) ;)

Edit:

Just a validation error on those issues is preferable to moving them all the base system for me.

AFAIK there is no validation error; just it defaults to the first thing in the list. rfay patiently moved issues out of AJAX system all the time because of this. :)

Wim Leers’s picture

Wow, story.module, page.module, blogapi.module. How times have changed!

dawehner’s picture

Made a couple of comments on the google doc.

xjm’s picture

Deleted another old stray... upload.module.

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.0-beta1 was released on August 3, 2016, which means new developments and disruptive changes should now be targeted against the 8.3.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

xjm’s picture

xjm’s picture

xjm’s picture

xjm’s picture

And after #2785891: The distinctions between modules, themes, and other subsystems are not relevant in MAINTAINERS.txt or the issue queue component field I'm going to start filing specific governance issues for components that can be combined, either getting the signoff of the relevant subsystem maintainers or just making the change in case of subsystems without active maintainers.

Gábor Hojtsy’s picture

Re comment #8:

To start, I deleted the following legacy and previously renamed core components that do not exist for Drupal 8 or 7:

  1. archive.module
  2. blogapi.module
  3. drupal.module
  4. page.module
  5. story.module
  6. throttle.module
  7. translation.module
  8. translation_entity.module
  9. watchdog.module

If issues filed against these components get updated, they'll have to pick a new component. (Edit: and there is a reasonable chance they'll be accidentally moved to the AJAX system.) ;)

Edit:

Just a validation error on those issues is preferable to moving them all the base system for me.
AFAIK there is no validation error; just it defaults to the first thing in the list. rfay patiently moved issues out of AJAX system all the time because of this. :)

I don't think we can depend on rfay to fix our metadata and even rfay cannot fix it if an issue is/was with upload.module and then it can only be moved to base system.

Drupal 5 vs. Drupal 6 vs. 7 vs. 8 has different set of modules, module names and components that could apply. Given that components are cross-version I don't agree that its a good solution to remove components altogether, because then any issue edited for an older Drupal release (to fix a tag, testbot glitch or who knows what) would mess up our issue metadata. Given the sizable difference between Drupal 7 and 8 also, the component list could never get appropriate enough for any issue at hand.

I think even a simple JS to make core components dependent on the version field would go a long way. Even if no server-side implementation to back it up, it would only allow people who really want to do incorrect combinations of version - component to pick an incorrect one. Drupal 8 would not have the overlay module, blog module, etc. while Drupal 7 would not offer you Classy, responsive images, menu_link_content and inline form errors among other things. While the issue submission/editing UI would show a version-appropriate set of components, the search UIs would still show all the components, but that is the only way one could find issues with upload module.

I don't see why we need to possibly mess up our history to fix a forward going problem that even with removing some components cannot be resolved satisfactorily. We need to make components conditional on version numbers somehow anyway to make it clear for Drupal 7 and 8 for several years to come.

xjm’s picture

Another thing I think would help would be to "lock" metadata for very old, closed issues since reopening them causes a lot of problems. We should be able to comment and provide related issues etc. but not rewrite history of the fields (either accidentally through unexpected allowed value changes or because someone doesn't know the best practice to create a new issue).

YesCT’s picture

I agree #17 sounds nice: having different components for different versions, and not removing historical data. But I see how that would be blocked on DA resources, and sometimes we are looking to see what we can do without DA resources.

YesCT’s picture

@xjm re #18, there are a lot of (old) (closed) (duplicate) issues about closing old issues https://www.google.com/search?q=automatically+close+old+issues+site%3Adr... I'm not sure if tagging them might help consolidate the ideas from them? or what the current canonical "lock old issue" issue is.

pfrenssen’s picture

We should be clear about the terminology :) "Locking" an old (closed) issue is different from "closing" an old (open) issue. I was very confused about the idea of "closing" old issues :)

pfrenssen’s picture

I think this is what you are looking for: #2102233: Automatically lock issues a year after they're closed.

xjm’s picture

Title: Update core components » [Plan] Update core components
David_Rothstein’s picture

frob’s picture

I haven't seen it listed here yet so I will make one more suggestion.

Can we easily just alphabetize the list?

frob’s picture

Version: 8.3.x-dev » 8.4.x-dev

Drupal 8.3.0-alpha1 will be released the week of January 30, 2017, which means new developments and disruptive changes should now be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

cilefen’s picture

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.0-alpha1 will be released the week of July 31, 2017, which means new developments and disruptive changes should now be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

xjm’s picture

Mile23 raised that we were using simpletest.module for phpunit for awhile. phpunit got added as its own component but Mile23 suggested a more generic "testing" component. I'd suggest changing that to "Automated testing" since "Testing" would get misused for test issues, hello world, etc.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.0-alpha1 will be released the week of January 17, 2018, which means new developments and disruptive changes should now be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.7.x-dev

Drupal 8.6.0-alpha1 will be released the week of July 16, 2018, which means new developments and disruptive changes should now be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.7.x-dev » 8.8.x-dev

Drupal 8.7.0-alpha1 will be released the week of March 11, 2019, which means new developments and disruptive changes should now be targeted against the 8.8.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.0-alpha1 will be released the week of October 14th, 2019, which means new developments and disruptive changes should now be targeted against the 8.9.x-dev branch. (Any changes to 8.9.x will also be committed to 9.0.x in preparation for Drupal 9’s release, but some changes like significant feature additions will be deferred to 9.1.x.). For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.1.x-dev

Drupal 8.9.0-beta1 was released on March 20, 2020. 8.9.x is the final, long-term support (LTS) minor release of Drupal 8, which means new developments and disruptive changes should now be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

dww’s picture

+1 to #30. Since simpletest has now moved to contrib, we're left with only 'phpunit' as a legit component for all test plumbing / infrastructure. run-tests.sh should die, but until it does, seems like we need somewhere for issues related to it to be classified. So we should probably rename 'phpunit' to a more generic 'testing system' or 'automated testing system' or whatever.

quietone’s picture

I've been working on a Bug Smash Initiative task that is to move simpletest.module issues to the Simpletest module. As I read them I realized that some needed to remain in core but then I didn't know which component, as it wasn't about phpunit. I asked in #bugsmash and dww said to use 'phpunit', as it was the only component for 'testing' issues. That was a surprise.

The component list is hard enough to use as is, let's remove unexpected usages like phpunit for automatic testing issues. Or, given that this issue is 4 years old, how about a link to some docs like there is for 'Priority' and 'Status'.

+1 to #30

Version: 9.1.x-dev » 9.2.x-dev

Drupal 9.1.0-alpha1 will be released the week of October 19, 2020, which means new developments and disruptive changes should now be targeted for the 9.2.x-dev branch. For more information see the Drupal 9 minor version schedule and the Allowed changes during the Drupal 9 release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Drupal 9.2.0-alpha1 will be released the week of May 3, 2021, which means new developments and disruptive changes should now be targeted for the 9.3.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.0-rc1 was released on November 26, 2021, which means new developments and disruptive changes should now be targeted for the 9.4.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.0-alpha1 was released on May 6, 2022, which means new developments and disruptive changes should now be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.5.x-dev » 10.1.x-dev

Drupal 9.5.0-beta2 and Drupal 10.0.0-beta2 were released on September 29, 2022, which means new developments and disruptive changes should now be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

prabhu9484’s picture

Problem description #3 - Seems to be related to https://www.drupal.org/project/drupal/issues/3339890

Version: 10.1.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch, which currently accepts only minor-version allowed changes. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

quietone’s picture

Status: Active » Fixed

There is still work to do here but I think it best to move it to a new issue. I checked with catch about this and he agreed that this can be closed and work continue in the next issue. I am marking it fixed because it did complete a clean up phase.

The next one is #3385864: [Plan] Simplify core component list.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.