handbook icon indicating copy to clipboard operation
handbook copied to clipboard

Remove "hub" requirement

Open salcode opened this issue 2 years ago • 2 comments

Feature Request

Currently, https://make.wordpress.org/cli/handbook/contributions/pull-requests/ indicates hub is a required tool

Install Composer and hub if you don’t already have them.

and some commands are hub specific, e.g.

hub clone wp-cli/core-command

Proposed Solution

Modify the language and example commands to use git commands directly, rather than hub.

Optionally, call out hub as a useful tool that can be used.

Possible Drawbacks

  1. Commands will be slightly more verbose.
  2. Will we need to differentiate between a HTTPS or SSH clone?
    git clone [email protected]:wp-cli/wp-cli.git ~/wp-cli
    

salcode avatar Aug 24 '23 15:08 salcode

@salcode Did you want to submit a PR for this?

danielbachhuber avatar Aug 29 '23 22:08 danielbachhuber

I don't anticipate submitting a PR for this in the immediate future due to a combination of this change being more complex than I additionally identified and my current time limitations.

While I still think removing hub as a requirement is a good move to make and hope to ultimately revisit this, I understand if you want to close this issue for the time being.

Complexity of Removing hub

As I started writing up changes, I realized how powerful the hub tool is.

For example this line

run hub fork here to create a pushable repository on GitHub.

encompasses a lot of changes in a simple command. It is non-trivial to replace this line.

I still think we should remove hub as a dependency however it brings up the question of how to document this. Do we:

a. Expect a certain level of knowledge around using Git and remotes (e.g. "Create a fork of the repository and update your remote to push your changes to the newly forked repo") b. Link to an external resource which explains how to fork a project and update your remote c. Including all of the information about how to visit the GitHub repo (e.g. something like

  1. click the fork button
  2. copy the "clone" URL remote on the newly created fork
  3. go to your local install and run this command while substituting the new "clone" URL you copied

Why I Still Think We Should Remove Hub

While hub abstracts away all of these changes, this abstraction feels like a layer of "magic" that prevents the user from understanding what is going on.

salcode avatar Aug 31 '23 10:08 salcode