Problem/Motivation

As we make progress with #3582246: [meta] CLI in Core community initiative, and especially as phase 1 is close to being committed (#3453474: CLI entry point in Drupal Core), it would be good to make this a real Core subsystem with both an entry in MAINTAINERS.txt and a Component label.

Steps to reproduce

Proposed resolution

Add "Drupal Command Line Interface (CLI) - `dr`" section to MAINTAINERS.txt.
Add co-maintainers (TBD):

  1. moshe weitzman (confirmed via Slack)
  2. mradcliffe (TBD)
  3. dww (if needed)

Remaining tasks

  1. Finalize list of co-maintainers.
  2. Finalize wording.
  3. Create MR.
  4. Governance sign-off.
  5. Add component for d.o Core issue queue.

User interface changes

Introduced terminology

API changes

Data model changes

Release notes snippet

Issue fork drupal-3590536

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

dww created an issue. See original summary.

moshe weitzman’s picture

I would be honored to serve, if the community desires that.

quietone’s picture

Issue tags: +Project governance
mradcliffe’s picture

I think it would be a good idea to add a CLI section to maintainers.txt.

Currently I think commands are maintained by their respective sub-systems. So Recipes maintainers have been maintaining their recipe commands. The other commands and CLI scripts seem to de facto maintained by core committers.

What is the scope for the CLI subsystem?

  • Commands: these seem very related to their subsystem or module and maybe co-maintainership with the subsystem and module maintainer? For instance, recipe subsystem seems to be the maintainer of recipe commands.
  • symfony/runtime: this seems related to the index.php/update.php, which I am not sure what subsystem that falls under?
  • API documentation
  • script deprecations, required features/scope (i.e. translatability)
  • The symfony/runtime dependency and DrupalRuntime is related to dr/drupal CLI, but separate. Should the subsystem be more general to include runtime decisions (opinion: probably not)?
dww’s picture

MAINTAINERS.txt already has sections for each core module, and then a bunch of "systems" like "Form API" or "Routing". Most modules provide routes and have forms. While I might be the maintainer for "Update Status" module, a Form API subsystem maintainer is welcome to weigh in on an issue with a form inside Update Status.

I think there's a similar overlap here. The "CLI maintainers" understand the plumbing, the scripts for the "Application", the bootstrapping stuff, and (generally) the individual commands. We have an overview of the big picture. Specific commands are mostly going to be covered by the subsystem maintainers that added them (e.g. the recipe commands are under the recipe subsystem, as you point out). But also, the CLI maintainers are changing some of the details of those recipe commands based on the big picture. I don't think this needs to be formally explained in the MAINTAINERS.txt section. We can understand that the "CLI subsystem maintainers" are available for questions and reviews about the CLI system overall, and will be able to help specific issues correctly add new commands to various other subsystems. Generally, the "guts" of each command will be understood and maintained by the subsystem maintainer(s) for the module that's providing the command. But the CLI maintainers might have opinions on The Right Way(tm) to structure the command, how to write good tests for it, whatever.

Meanwhile, there's already this section:

Bootstrap
- ?

so if someone (e.g. @kingdutch) wanted to put themselves forward as the "bootstrap subsystem maintainer", they'd be most welcome to do so. 😅

All that said, @mradcliffe: Do you want to be listed as a CLI subsystem maintainer? You've definitely been driving this effort in a lot of ways, and clearly understand the inner workings.

dww’s picture

Title: Add a MAINTAINERS.txt entry for Drupal CLI » Add a MAINTAINERS.txt entry for Drupal CLI with Moshe and dww as co-maintainers
Status: Active » Needs review

Since #3453474: CLI entry point in Drupal Core is merged (🎉🙏), would be good to get this in, too.

Still happy for @mradcliffe to join. Based on Slack, they're still considering if they want to do it. We can always add them later. So for now, here's a rebase and non-draft MR with just Moshe and myself (for now).

smustgrave’s picture

Status: Needs review » Reviewed & tested by the community

If I haven't said it before congrats on landing this and I personally have no objections.

so if someone (e.g. @kingdutch) wanted to put themselves forward as the "bootstrap subsystem maintainer", they'd be most welcome to do so.

oh man please! I don't think I've ever seen anyone even volunteer for that one.

mstrelan’s picture

We also need a component for d.o issues

dww’s picture

Issue summary: View changes

Re #9 agreed. I assumed that was implied, but I just added it explicitly as a remaining task. Thanks!

alexpott’s picture

Version: main » 11.4.x-dev
Status: Reviewed & tested by the community » Fixed

Committed and pushed a28906d2800 to main and ce2b0094e9c to 11.x and 770d98e44a8 to 11.4.x. Thanks!

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

  • alexpott committed 770d98e4 on 11.4.x
    task: #3590536 Add a MAINTAINERS.txt entry for Drupal CLI with Moshe and...

  • alexpott committed ce2b0094 on 11.x
    task: #3590536 Add a MAINTAINERS.txt entry for Drupal CLI with Moshe and...

  • alexpott committed a28906d2 on main
    task: #3590536 Add a MAINTAINERS.txt entry for Drupal CLI with Moshe and...
dww’s picture

Status: Fixed » Patch (to be ported)

Thanks!

We still need the dr - CLI system component added to the core project. I don’t think I have perms / auth to do that myself.

alexpott’s picture

Status: Patch (to be ported) » Fixed

I'll do that. Fixing the status of this issue.

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

dww’s picture

Component: base system » CLI system

Sweet, thanks!

Status: Fixed » Closed (fixed)

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