Problem/Motivation
In #3484850: [meta] Tasks to deprecate Toolbar module it was decided to deprecate the Toolbar module from Drupal core, to be removed in Drupal 12.
To start porting dependent modules, we would like to anticipate on the migration of the Toolbar module out from core to contrib and provide long term support for Drupal 12.
I have requested and obtained maintainer's permissions for this project in #3607179: Applying for 'Maintainer' role for the project Toolbar.
The core toolbar module with its complete history was imported into the contrib's 1.x branch.
The initial release toolbar-1.x-dev was created to support 11.3+ and 12.
However, the Composer information shows composer require 'drupal/toolbar-toolbar:1.x-dev@dev' instead of composer require 'drupal/toolbar:1.x-dev@dev'.
Is there anything we could do to fix that, or any reason the Composer namespace drupal/toolbar could not be used?
Proposed resolution
I'm not sure exactly how to further proceed. This is based on #3575102-8: Taking over the Keyboard shortcut namespace.
Remaining tasks
Drupal Infra team updates the Composer name to drupal/toolbar (currently drupal/toolbar-toolbar) in Gitlab issue #3567861: Ensure that Toolbar does not get special core treatment.
Fixing this will allow @dydave to complete the steps from How to deprecate and remove an extension > Create the contrib project with a stable release.
Documentation
Why are the composer namespace special for a contrib module with the same name as a core module?
Why did Drupal Core feel entitled to use the Drupal\toolbar namespace in Drupal Core when a contrib module was using it?
Arguments around why Core shouldn't reuse contrib namespaces in the first place, making ownership takeovers unnecessary and unfair to existing maintainers. The dual-name issue will remain anyway, since infra only de-duplicates once a module is production-ready. See complete answer at #30.
User interface changes
API changes
Data model changes
| Comment | File | Size | Author |
|---|---|---|---|
| #28 | screenshot-2607-301344001.png | 16.54 KB | avpaderno |
Comments
Comment #2
avpadernoThese offers need to be created in the project issue queue, even when the person asking for more permissions is already co-maintainer or maintainer. As per Offering to become a project owner, maintainer, or co-maintainer, they can be moved in the Drupal.org project ownership queue, 14 days after the offer was posted/moved in the project queue, if the offer has not been declined by maintainers (including the project owner).
Remember to give the project link, when the issue is moved.
As a side note, only the person who made the offer can move the issue.
Comment #3
dydave commentedThanks Alberto (@avpaderno)!
I'm really not sure I understand the interest of keeping this issue in the Toolbar project issue queue, since I'm the only one looking in there.
The module is abandoned with the former module maintainer not being active anymore in the Drupal community and he has passed full maintainership over to me.
Former maintainer will not look or respond to tickets.
No one else will look at any of the issues in the project issue tracker....
Do we really need to wait for two weeks (for nothing, in my opinion), before doing anything with this issue?
I'm the one posting the ticket, the current module maintainer and agree with this request.
What else would you be expecting to happen within the next two weeks?
I'll just set a calendar reminder in two weeks and leave this issue to sleep here for now .... Nothing else is going to happen on here for the next 14 days...
Comment #4
cmlara@dydave:
This isn’t even a Project Ownership issue, you will need to request Infrastructure makes the change (through project_composer queue).
A sample of the type of issue you want:
https://git.drupalcode.org/project/project_composer/-/work_items/3567860
Note:
https://www.drupal.org/project/drupal/issues/3579778 is related issue and has been holding up these changes IIUC.
Your fellow co-developers that have been deprecating core modules should have more info for you.
Comment #5
dydave commentedSuper helpful Conrad (@cmlara), thanks a lot! 🙏
Sorry for the annoyed comment above, but I had the feeling I was not completely on the right track.
Indeed, I'll create an issue in the project_composer project based on the example your provided:
https://git.drupalcode.org/project/project_composer/-/work_items/3567860
This should allow us to declare "drupal/toolbar:1.x-dev@dev" as a composer dependency in the Admin Toolbar module so we could start working on the D12 version.
I'll see with the developers involved in the Toolbar deprecation ticket what other actions could be necessary further down.
I'm unblocked, at least for now and will try creating a project_composer issue right now.
Thanks again for your help! 😊
Comment #6
dydave commentedOK, I just created: Gitlab issue #3583683: Ensure that Toolbar does not get special core treatment...
Let's hope this will help moving in the right direction 🤞
Thanks!
Comment #7
avpadernoTruly, he made you a maintainer, which is what you asked in #3607179: Applying for 'Maintainer' role for the project Toolbar. (Full maintainer does not mean project owner.)
Since he has not posted a comment saying he would like to make you the new project owner, project moderators cannot make you the new project owner without following the usual procedure.
The offer is required to be posted in the project issue queue to give it visibility not only to project maintainers, but also to people who may be interested in this offer, in a way or another.
Comment #8
dydave commentedThanks Alberto (@avpaderno)!
Sure I understand, no problem.
Let's see if any additional information is required from the infrastructure team for the project_composer issue. 🤞
Comment #9
dydave commentedMy ticket was closed by @drumm since it was a duplicate of another issue:
Gitlab issue #3567861: Ensure that Toolbar does not get special core treatment.
Looks like these issues are getting some attention. 👍
Comment #10
avpaderno@dydave Are you still interested in taking over this namespace?
Comment #11
dydave commentedSuper nice of you Alberto (@avpaderno) to get back to me on this, thanks a lot! 🙏
Yes, indeed! I've been following:
#3579778: Removed modules should be included as a replace in composer.json
and looks like it was Fixed just a few days ago 🥳
Not sure if there would be any actions needed on our side, but we are still interested in getting the command:
to install the deprecated core toolbar module, which now sits at:
https://www.drupal.org/project/toolbar/releases/1.x-dev
Gitlab repo: https://git.drupalcode.org/project/toolbar
Feel free to let me know if any other action would be needed on my side, I would surely be happy to help!
Thanks in advance! 😊
Comment #12
cmlara@dydave, I believe @avpaderno is asking if you wish to move from Maintainer to Owner of https://www.drupal.org/project/toolbar/.
To my knowledge @avpaderno is treating your request as a standard Drupal.org project takeover request, without understanding your initial request was to resolve https://git.drupalcode.org/project/project_composer/-/work_items/3567861.
To the best of my knowledge, you becoming owner of https://www.drupal.org/project/toolbar/ will not fix problem that you must use
composer require 'drupal/toolbar-toolbar:1.x-dev@devto install the module. To the best of my knowledge only the Infra team can change that. You becoming owner will not break that issue, it will just not help it.Comment #13
dydave commentedThanks a lot Conrad (@cmlara) for the detailed explanation! 🙏
Indeed, you're completely right: I've misunderstood the use of this ticket...
I'm not really after becoming the owner of the module, since I'm already the maintainer and able to manage its releases, code repository, and project page.
What I'm actually after is just changing the composer namespace so it could be added as a dependency of the Admin Toolbar module, which is tracked in the composer project issue:
https://git.drupalcode.org/project/project_composer/-/work_items/3567861
There's no real point in keeping this ticket open anymore and take any more of your time or attention.
Closing as won't fix for now.
If I need to become owner of the module in the future I will create another issue.
Thanks again Alberto (@avpaderno) and Conrad (@cmlara) for your great help with this process.😊
Comment #15
ressaThanks for the update @dydave, @avpaderno for the follow up, and @cmlara for clearing things up. About getting the Owner-role, I checked a few other contrib modules like Redirect and Pathauto, and only "Administrator @root-admin" has the Owner-role, so getting that role seems not necessary.
I was about to update the "Remaining tasks" in the issue summary to clarify that the Composer name update is what is needed first and foremost, and the aim of this issue:
In light of #3576667-14: [meta] Tasks to deprecate Settings Tray where the new contrib maintainers of another Drupal core module set for deprecation with 11.5.0 release priority are nudged to "... Create the contrib project with a stable release so we can finish the deprecation?" it would nice if the Composer name could be updated to
drupal/toolbar, since it is currently a blocker for this project.Comment #16
avpaderno@ressa On git.drupalcode.org, none of the project owners has the Owner GitLab role; that is normal, and expected, since having that GitLab role would give permissions Drupal.org does not want to give.
When one of the Drupal core modules is moved to a contributed project, the project owner (on drupal.org side) for the existing project (when there is already one which uses the namespace used by the Drupal core module) is usually changed. That happened for the Shortcut module, for example, where the project owner has been changed in #3575102: Taking over the Keyboard shortcut namespace.
dydave does not seem interested in being the project owner and asked for that thinking that being the project owner would allow him fixing the namespace issue.
Comment #17
dydave commentedThanks so much @ressa (credited) for summing up the current situation...
Indeed, a bit of confusion on my side and consequently pulling Alberto (@avpaderno) and Conrad (@cmlara) into this 😅
Woops! 😅
Going back to the remaining tasks you updated, do you think we should keep this issue open, change the title maybe and keep tracking our work for the module until we get the correct composer setup? (and maybe any other actions?)
Or should we keep tracking our work in new issues or the existing ones maybe, already referenced in this issue?
Thanks again @ressa for your help going through this process. 😊
Comment #18
dydave commentedSorry Alberto (@avpaderno), I missed your last comment 😅
Yes, indeed, Alberto (@avpaderno)... again, you're completely right ... The confusion is on my side ...
Sorry about that 😅
What we're actually looking for is probably best tracked and described by issue:
https://git.drupalcode.org/project/project_composer/-/work_items/3567861
(pointed by @cmlara in some of the comments above)
Sorry for all the noise @avpaderno once again and thanks very much for your time and patience! 🙏
Efficient as always! 🤩
Comment #19
ressaHeh, let's face it @dydave, it's all very confusing with a lot of moving parts, but thanks for explaining the details, and sticking with us @avpaderno :)
Taking a helicopter view, I think @dydave should be granted the highest role, ownership and permissions possible on drupal.org and git.drupalcode.org of https://www.drupal.org/project/toolbar, since he will be the head maintainer.
Or in other words, he should eventually have the same role/permissions/etc. as if he had created the project from scratch, in my opinion.
I have added this in the "Problem/motivation" in the Issue Summary:
I hope this suggestion does not seem heavy handed, but the original creators and maintainers have happened by chance to now have ownership and the highest possible roles ("Maintainer") in what may become one of the most installed modules. I don't expect anything bad to happen, but control over email accounts can get lost, or otherwise get compromised. To be on the safe side, anytime an old namespace is taken over, perhaps the previous maintainers ought to be removed, as part of a policy? This could maybe deserve its own issue, to reach a decision about what to do in such situations?
And yes @dydave, I thought the same thing about this issue 😊
We can keep it open until you have the highest possible role, permission, etc. on drupal.org and git.drupalcode.org, and the Composer name has been fixed, to keep track of theses last structural tasks? I have attempted to update the remaining tasks in the Issue Summary to reflect this.
Comment #20
ressaThinking more about this, after seeing here and in other issues how much time contrib maintainers spend on taking over an old namespace in a core-to-contrib situation, wouldn't it be better if the Drupal Organisation took care of these necessary changes?
Again, it may seem heavy handed, but it's in the interest of all the Drupal users to maintain the highest security, by only vetted users having the Maintainer-role, or being owner of a core-to-contrib project. With that in mind, for situations like these, perhaps the Drupal Organisation can expropriate the name space for the common good, and hand it over to the new maintainer, who have graciously volunteered to maintain the core module as contrib module in the future?
Comment #21
cmlaraD.O. already does through its project ownership process (that @avpadenro was treating this initial issue as).
Very little time is needed by a maintainer to start this process, only a few minutes, a quick message to the maintainer via the contact form and the basic outline of this issue. After that its primarily just waiting with zero interaction from the propsective owner.
For context: this entire response took about as much of my human time as I have spent on an a full project ownership application from applying to receiving ownership.
You're not wrong in that assessment, IMO any developer would even consider taking over a module like this without being the owner does need to answer some questions about how they are protecting the module from attack. It does help that most of these modules in recent years have gone to contrib to die rather than be maintained. I'm not a fan of the project ownership takeover system, however I've often said if one is going to use it, they should always use it for the owner role so that they can lock down the module from others ( @avpaderno has argued that letting a new person take over owner would be less secure, and the existing owner is not a security risk).
There are already several open issues related to the adoption process that I suggest reviewing that should be taken into consideration especially since transferring these namespaces poses a risk to older sites as well (even D7). https://www.drupal.org/project/securitydrupalorg/issues/3452326 as a meta.
There is also a belief among some that Drupal Core shouldn't take over existing namespaces/reusing the core namespace and instead should create new namespaces for the modules (@drumm from Infra has raised this in Slack and I tend to agree).
There are also some issues arguing that some of these dual name faults are issues with the metadata server itself:
https://git.drupalcode.org/project/project_composer/-/work_items/3582324
https://git.drupalcode.org/project/project_composer/-/work_items/3304661
Comment #22
ressaThank you very much for your thorough and considerate reply @cmlara.
I do feel that comparing the time spent by someone such as yourself, with deep knowledge and experience about the details and processes which govern Drupal's infrastructure, to someone who is mainly a module developer and maintainer, will end with a skewed result ...
It seems to me that these take-over issues show that the task of taking over a (more or less) old or unused project is not a trivial task. It can become a drain on the new contrib maintainer, since it is not clear what needs to be done, to make it all click together.
Ideally, using Toolbar as a use case, @dydave would have requested ownership transfer of https://www.drupal.org/project/toolbar. But the method to use was not clear from the issue #3484850: [meta] Tasks to deprecate Toolbar module. In hindsight, it would have been fantastic if instead of this:
... it said something like this:
And thanks for all the links to related issues, which I skimmed through, clicked further to even more issues and subscribed to them all. It was really nice to see all the different perspectives getting aired in them, and the lively discussion.
About core-to-contrib situations, as I see it there are two scenarios:
If we continue with the current "take over existing contrib module"-method, then the D.O team should handle the entire process, as a natural step in the "Deprecate Drupal core module XYZ"-issue, where a "Remove original owners/maintainers from drupal.org/project/xyz, and hand it over to new core-to-contrib"-maintainer" step is added, doing these tasks:
drupal/toolbar-toolbar)The new contrib maintainer will get everything handed over on a silver platter, ready to use, well in advance of the actual deprecation. However, this would probably require policy changes, so getting to this scenario could take time, or never happen.
It was heartening for me to learn about another view point which you and @drumm from Infra share: A new namespace should be created for a deprecated Drupal Core module. I could not find an issue with this exact proposal, it seems the closest is #3452328: Prohibit the ability to adopt a project. I support this method, since it would prevent much take-over confusion, be more secure, prevent the Composer conflicts you linked to, and even the annoying
drupal/toolbar-toolbarsituation. So in the case of Toolbar, @dydave would instead have created a new project, for example under https://www.drupal.org/project/toolbar-core for a totally fresh start, with him as the only project member, as project-owner on drupal.org, and with Maintainer-role on https://git.drupalcode.org/project/toolbar-core. This would also prevent old cruft, like unrelated Drupal 6 issues in the issue queue, old unrelated code in Git clones, etc.Returning to this issue, it's great so see that you agree that @dydave ought to become owner of https://www.drupal.org/project/toolbar/.
Comment #23
avpadernoSince dydave is not interested in becoming the new project owner, the @dydave should be granted the ownership and/or highest possible roles on drupal.org part should be removed.
Furthermore, dydave is already maintainer for this project (with which I mean he has all the permissions on this project). He already has the highest possible role he could have on the project without being the project owner.
Comment #24
avpadernoTruly, I argued that that adding a new person as project owner would not make the project more secure. The CVE-2024-3094 incident shows exactly that, although it was perpetrated by a co-maintainer. (I am not sure GitHub uses that term in the same way we use it on drupal.org.)
Imagine what could have happened if that person was made the new project owner (which is possible, site XZ Utils is an organization project).
Comment #25
ressaI have reverted the title and Issue Summary, it was premature to add it, and I should have waited for @dydave's feedback about becoming project owner.
Comment #26
dydave commentedThanks so much @ressa! 🙏
Great work as usual on updating the ticket and collecting various pieces of documentation from the different comments. 👍
For the module Toolbar:
I'm really open to anything here honestly 😊
1 - The current owner (author of the node project Toolbar lelizondo) has left the Drupal community: I had email exchanges with him and that's what he told me before granting me maintainer role (highest administrative role on the module).
Therefore, it "should" not be too much of a problem if we wanted to switch owners.
2 - But as Alberto (@avpaderno) mentioned, with my current rights, I'm already able to do everything we need to do to put the Toolbar module back on track.
(Except of course the composer namespace related with infrastructure // The real object of this ticket)
Personally, I don't really have any strong opinion one way or another 😅
I was just thinking: Let's go the way that requires the least amount of work 😆
In other words ... We "should" be fine as it currently is, no?!
(so we could leave @avpaderno and @cmlara alone with this 😅)
But if you think it would be better for the future of the module and in general for its maintenance, I would be very happy to keep pushing this ownership request and comply with the required process.
I'll just stick to everyone's recommendations in this issue 👌
and execute any remaining tasks/actions.
Thanks a lot once again Alberto (@avpaderno) and Conrad (@cmlara) for all the assistance, patience and feedback! 🙏
Great work @ressa on the docs! 🤩
Comment #27
avpadernoComment #28
avpadernoAs a side note, not even a project owner can fix the Composer namespace issue.
Truly, a project owner is merely a project maintainer for which the permissions on the project cannot be changed. In fact, on https://www.drupal.org/node/748492/maintainers, none of the checkboxes for the project owner can be deselected, contrarily to the checkboxes for the other maintainers or for the co-maintainers.
This issue was "mixing up" two different issues which essentially are not related to each other. I would keep them separated and possibly open a new issue to take over the project, in the case dydave changes idea.
Comment #29
ressaThanks for fast feedback @dydave and @avpaderno, it's great. It sounds fantastic that you are open for suggestions @dydave :)
Personally, I have become more and more convinced that in a core-to-contrib take over situation, the new maintainer (you) should by default be made project owner automatically. Since it is not the policy yet (fingers crossed that it might happen), the new maintainer has to do this themselves, through the official process.
The feedback that the project owner (@lelizondo) has left the Drupal community, makes it to me a no-brainer: Then you should definitely become project owner. Anything else would be reckless in my opinion, and I believe it would be ideal if you requested to become project owner in a fresh issue.
@avpaderno:
Thanks for sharing, that was also my conclusion following another core-to-contrib issue Ensure that Telephone does not get special core treatment, where the new maintainer needed help from the Drupal Infra team to fix this.
Comment #30
cmlara@ressa:
NOTE: This is all getting significantly off topic, I might suggest it may be better to open a dedicated issue or converse in Slack.
Taking a step back on your recent questions, I would suggest that first, we need to ask why did Drupal Core feel entitled to use the Drupal\toolbar namespace in Drupal Core when a contrib module was using it?
This goes back to a few issues we have had with Core not reviewing the ecosystem when choosing module names. In the past other modules have became unusable after the core team decided to use a contrib module name in core I don't have the issue in front of me however I recently (past week?) saw arguments in favor of repeating this for a new core module.
That would be the first issue to resolve, prevent that and there is no need for a project ownership takeover request in the future, there would be no contrib owner to try and adopt from. The infra team currently blocks new core module namespaces preventing new registrations. That would allow following your more direct "D.O. handles the request" method, as the would create the new project and assign it to a maintainer. Given the need to request ownership is directly tied to decisions the core team made in the past I don't view it as fair to expedite it bypassing existing process. While we haven't seen a case yet it could have been the existing maintainers do want to use the namespace now that core is releasing it, and we shouldn't be advocating in favor of stealing from other hard working developers.
The dual name issue would still exist with that IIRC since Core would be using the name requiring infra to make infrastructure changes related to de-duplicate the name when the module is ready for production (they have intentionally NOT de-duplicated in the past to avoid a module under test not break the rest of the Drupal ecosystem).
Note: Given the title is now "Reserve the Composer namespace drupal/toolbar for this project" shouldn't this issue be closed as a duplicate of https://www.drupal.org/project/toolbar/issues/3607814 ?
Comment #31
dydave commentedThanks @ressa!
Let's go for the ownership then 🥳
While we're all in this issue, I'll just quickly double check with Alberto (@avpaderno):
Would it be OK to start over the ownership process in a new issue @avpaderno?
I just want to avoid any more mistakes in the procedure 😅
We're clear this time Alberto (@avpaderno) 😆
The new issue would follow the exact, classic project ownership process, as described in the doc, etc...
and YES, we would be looking for the Toolbar project ownership.
(I could re-contact the maintainer if you'd like, copy/paste the answer in ticket, wait for 2 weeks, etc..., etc.... 🤣)
If I can get your confirmation, I'll go ahead and create another ticket in the Toolbar issue tracker to initiate the process 👌:
Title: Requesting ownership of Toolbar
Inspired on: #2994872: Requesting ownership of Telephone
Other examples:
Thanks a lot Conrad (@cmlara) for all the background information.
I tried extracting a short summary in a "Documentation" section of the IS, pointing to your comment 👍
So hopefully we could circle back on this later for docs purposes.
I'm not completely sure exactly yet where this issue is going 😅
It might become just a "[META] Plan" to track various tasks/actions in sub/related tickets (Ownership, Composer namespace, any other potential blockers, etc..) and documentation...
I'm really open to any suggestions at this stage 😊
Comment #32
avpadernohttps://www.drupal.org/project/toolbar/issues/3607814 is this very issue. I take the other comment meant https://git.drupalcode.org/project/project_composer/-/work_items/3567861.
@dydave Yes, please, create an offer for taking over the Toolbar namespace. I will contact the project owner.
Comment #33
dydave commentedThanks a lot Alberto (@avpaderno) for the very clear and speedy reply! 🙏
Following your confirmation, I went ahead and created:
#3614183: Taking over the Toolbar namespace
OK, no problem @avpaderno: you will contact the current owner 👌
At this point, I don't think there is anything else outstanding on my side: Standing by 😅
Please let me know at any time if there is anything else to do on my side, I would surely try answering as soon as possible.
Thanks in advance! 😊
Comment #34
ressaThanks @cmlara for detailing the challenges. And yes, I am sorry that this issue branched out into a discussion about a related subject. You are right, it should be taken elsewhere, like in a new or existing issue. So I'll just add this comment, and we can leave this issue to its purpose of keeping an eye on the Composer name issue, and see that it gets fixed.
And I do agree, ideally it should just be in situations (like this) where a Drupal 6 module has been left behind, and there are no plans to resurrect it, that owner transfer happens. Grabbing a namespace which someone has plans for would seem harsh, and a new namespace could be considered instead. But it's a grey area ... and nobody has any ill intent, things just happened to end up this way, due to a lot of external factors and historical decisions, and it's very challenging to get them all to match up.
But it's nice to hear that namespaces for new Drupal core modules are blocked in contrib, a great step to prevent future problems.
And about being a duplicate of the Composer name issue on Gitlab, I think it's nice to be able to have Toolbar-related issues here on drupal.org, to keep track of them, so the Composer name challenge is not forgotten.
@dydave: That sounds great! Thanks for links to previous ownership issues, it was interesting reading through the comments, and the heated debate taking place in some of them.
Comment #35
minoroffense commentedAs of today when we require drupal/admin_toolbar in Drupal 11.3.x we get a dev release of the drupal/toolbar module I think because drupal/admin_toolbar depends on something called "drupal/toolbar" which is no longer drupal core's toolbar? It's an issue because we get a whitescreen error. When I run composer why it says it installed admin_toolbar needs drupal/toolbar
At one of the dev releases for this module. I'm not sure if this module is the issue or admin toolbar or what really. But any chance of maybe unpublishing the 1.x release for this module? Maybe that'll unconfuse composer or the Drupal packaging system.
I can create a separate issue if you prefer but since this was open about the composer namespace I posted it here.
Comment #36
dpiSame per #35, incredibly derailing.
You can however workaround it by telling Composer that your project already has it:
But be careful not to let it come along for the next upgrade.
Also, #3630983: Cannot update to latest 11.3.x or 10.6.x core version due to impossible drupal/toolbar dependency
Comment #37
liam morlandWe are having the problem described in #35 and the fix in #36 is working for us.