We currently horribly abuse issue tags in order to track issues that span multiple components, at least in the core queue. For example, there are both "views.module" and "views_ui.module" components. But do the Views maintainers actually track? The "VDC" tag. :\ This is both completely opaque to outsiders, and results in weird contortions like using the "documentation" component even when a change is actually against, say, the Block module and needs that maintainer's sign-off as well.
An "easy"? way to solve this is to simply make component a multi-value field. I would assume this has been submitted as a feature request before, but wasn't able to find it.
Comments
Comment #1
davidhernandezSure. But shouldn't we tackle the bigger problem of tagging, and the need for better fields all around, or is the thought to just do it incrementally? I think there is a d.o issue on more better fields somewhere.
Comment #2
YesCT CreditAttribution: YesCT commentedI think there was something about making the component field match with what is in maintainers.txt ... and have hierarchy to it, so people would pick views first and then something more specific. If I can find a link, I'll come back and add it.
Comment #3
webchickOoh, the idea of "sub" components could be a really neat solution to this problem.
I'm not sure about better fields. I vaguely recall something about adding specific "needs X" fields. But this is different, and involves notifying the proper subsystem maintainers when things are in their queues, in a way that new users can also consistently find/interact with.
Comment #4
YesCT CreditAttribution: YesCT commentedRe #2 mention about making maintainers.txt match components:
#2102141: Make MAINTAINERS.txt database section friendlier for parsing
Comment #5
drummFor Drupal.org deployment, changing an issue field from single to multi-value is a re-indexing of all issues, adding another table. Queries would be a bit slower when searching on components, it is another join, but not any more noticeable to humans than the others, like searching on tag. Overall, this is certainly doable, with being careful on deployment.
Some sanity checks - Does core has too many components? Is separating views and views_ui good? Are these changes good for non-core projects too? (Just a thought, I don't have enough first-hand experience to have a good opinion.)
I do think working on tagging (and maybe other fields) would be great. But free tagging, with some structured tags, isn't a replacement for a curated list of components. At least not in the near future.
Comment #6
YesCT CreditAttribution: YesCT commentedanother example: #2589237: Menu links parent migration is broken which is both migration and menu system
Comment #7
xjmComment #8
xjmComment #9
xjm#2702321: Group core components into broad categories has some ideas for the governance side of this.
Comment #10
Dries CreditAttribution: Dries commented"Shut up and take my money!"
Read: yes, this would be great to have.
Comment #11
dwwComing here from #2660144: [Plan] Update core components and Bug Smash Initiative
Different people seem to want different things from this. In Slack, @xjm wrote:
But @YesCT in #6 is saying:
That wouldn't be solved by the proposal for subcomponents, only multi-valued components. The two ideas in the title and summary are at odds with each other, we can't really do both.
There's a lot of prior discussion and history to this, so I don't want to do unilaterally make changes, but can someone with authority please decide which of these problems we're solving and update the title and summary accordingly?
Meanwhile, subcomponents would be a fair bit of work:
Are we sure that's all necessary and that we can't actually solve this with some creative use of issue tags? I don't see that discussed / ruled out either here nor at #2660144: [Plan] Update core components.
Is there a smaller change we could make to how issue tags work that would give us what we need with less effort that the list above? That might also make life better for contrib issue queues, too (unlike sub-components, which seems like it's only be used by the core queue).
If we're going to invest a big effort in retooling our tools, I'd like to know we're getting the most benefit for the effort.
Thanks!
-Derek
Comment #12
xjmI posted about this in: #2702321-15: Group core components into broad categories
When I interviewed both subsystem maintainers of components we wanted to merge and core committers, there was widespread concern that tags were not discoverable, consistent, etc. enough. For the ideal user experience, we would have a hierarchical-type select (a11y and UX validation needed) that allowed selecting a required component and optional sub-component.
I'm more on the fence about making it multivalue. I think multivalue issues are more the 10% case. So maybe we should treat that as a separate scope.
Comment #13
catchMultivalue would be useful for migrate and similar systems - I recently moved an issue from migrate_system to node, and then it got moved back to migrate_system by the migrate maintainers. This also happens with entity system and specific entity implementations sometimes.
One thing that crossed my mind thinking abou this, in between tags and a subselect, would be two flat lists. The shorter list required and single choice, then the longer list (maybe using better select or similar) optional with all the subcomponents and multiple choice.