handbook
                                
                                 handbook copied to clipboard
                                
                                    handbook copied to clipboard
                            
                            
                            
                        Remove "hub" requirement
Feature Request
- [x] Yes, I reviewed the contribution guidelines.
Currently, https://make.wordpress.org/cli/handbook/contributions/pull-requests/ indicates hub is a required tool
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
- Commands will be slightly more verbose.
- Will we need to differentiate between a HTTPS or SSH clone?
- Note: in Working on the project as a whole we already have code that is SSH specific
 git clone [email protected]:wp-cli/wp-cli.git ~/wp-cli
@salcode Did you want to submit a PR for this?
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
- click the fork button
- copy the "clone" URL remote on the newly created fork
- 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.