4141 * | wp-cli/server-command | Daniel Bachhuber | dev-main | available | 2.x-dev |
4242 * +-----------------------+------------------+----------+-----------+----------------+
4343 *
44- * # Install the latest development version of the package.
44+ * # Install the latest stable version of the package.
4545 * $ wp package install wp-cli/server-command
46- * Installing package wp-cli/server-command (dev-main )
46+ * Installing package wp-cli/server-command (^2.0 )
4747 * Updating /home/person/.wp-cli/packages/composer.json to require the package...
4848 * Using Composer to install the package...
4949 * ---
@@ -201,10 +201,10 @@ public function browse( $_, $assoc_args ) {
201201 *
202202 * ## EXAMPLES
203203 *
204- * # Install a package hosted at a git URL .
204+ * # Install the latest stable version of a package .
205205 * $ wp package install runcommand/hook
206206 *
207- * # Install the latest stable version.
207+ * # Install the latest stable version (explicitly specified) .
208208 * $ wp package install wp-cli/server-command:@stable
209209 *
210210 * # Install a package hosted at a GitLab.com URL.
@@ -224,12 +224,17 @@ public function install( $args, $assoc_args ) {
224224 $ version = '' ;
225225 if ( $ this ->is_git_repository ( $ package_name ) ) {
226226 if ( '' === $ version ) {
227- $ version = " dev- { $ this -> get_github_default_branch ( $ package_name , $ insecure )}" ;
227+ $ version = ' @stable ' ;
228228 }
229229 $ git_package = $ package_name ;
230230 $ matches = [];
231231 if ( preg_match ( '#([^:\/]+\/[^\/]+)\.git# ' , $ package_name , $ matches ) ) {
232- $ package_name = $ this ->check_git_package_name ( $ matches [1 ], $ package_name , $ version , $ insecure );
232+ $ extracted_package_name = $ matches [1 ];
233+ if ( '@stable ' === $ version ) {
234+ $ tag = $ this ->get_github_latest_release_tag ( $ extracted_package_name , $ insecure );
235+ $ version = $ this ->guess_version_constraint_from_tag ( $ tag );
236+ }
237+ $ package_name = $ this ->check_git_package_name ( $ extracted_package_name , $ package_name , $ version , $ insecure );
233238 } else {
234239 WP_CLI ::error ( "Couldn't parse package name from expected path '<name>/<package>'. " );
235240 }
@@ -301,7 +306,7 @@ public function install( $args, $assoc_args ) {
301306 $ git_package = $ package ;
302307
303308 if ( '' === $ version ) {
304- $ version = " dev- { $ this -> get_github_default_branch ( $ package_name , $ insecure )}" ;
309+ $ version = ' @stable ' ;
305310 }
306311
307312 if ( '@stable ' === $ version ) {
0 commit comments