-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
hub + gh = GitHub CLI #475
Comments
I suggest you keep the old Ruby implementation as
I think JSON is far more popular. YAML is popular only in the Ruby world. The
Definitely v2.0.0. I'll be especially happy if you drop the obsolete Just my two cents. Keep being awesome! |
I think |
I'd add that |
@jingweno Oh, thanks for reminding me about a topic I've forgot to bring up, and that is extra features of gh: namely Releases, Issues, Gists support. Historically I've rejected such feature requests because they're not related to git, and hub was a git wrapper. Now that the project is becoming “GitHub CLI”, would we be open to make it a more generic GitHub API client, with features not necessarily tied to git? I'm open to that, although I've avoided adding issues support in the past mostly because of the amount of work involved with that, and because better tools already exist such as ghi. However, initially I would suggest only adding support for creating Releases & Gists, since they're easy (ideally replacing the Ruby-based gist library), and managing Pull Requests, since they're related to git workflow and we already support creating them. I would do managing of Issues last, if ever, since it would be the most complex feature with many moving parts (labels, milestones, assignees, searching, ordering). /cc @technoweenie @calavera; @pengwynn because octonaut |
@mislav, creating and listing issues is already there, as well as creating and listing releases. On Wednesday, February 5, 2014 at 4:01 AM, Mislav Marohnić wrote:
|
@calavera I've seen that. I was asking whether we want to ship that with next version of hub, i.e. whether we want to commit to maintaining those features and making them more useful. Right now listing issues is little useful: it doesn't support pagination, doesn't cache results, you can't filter based on label or assignee (e.g. can't fetch your own issues as a TODO list), it displays URLs in the terminal which is of little use since you can't click on them… See #351 (comment) for my comments on what user experience would I like to have for an issues/PR browser. |
As for Releases: I've just tried to use
So I can't even create a release without uploading a binary asset. These features are half-baked. If we commit to shipping this, it means spending some time to make them better. |
I'm 👍 on ditching octonaut and putting my efforts into the new CLI. Honestly, I don't have a big preference on the executable name because I alias to
Agreed. @mislav is the plan to keep the Cucumber specs? That's a Ruby dependency for development, but I think it's more than worth it. |
Yep, keeping all cukes. This is the most reliable way to ensure compatibility with last stable release of hub. Right now a lot of them are failing in the "gh" branch but we're working on it. |
Perhaps instead of |
You may want to check https://github.com/cordoval/gush, which is focused on releases afaik /cc @cordoval |
@Ocramius well we have for instance a versioneye command to update dependencies, but that goes a bit geared toward package maintainers and contributors flow (hence the name Gush), and even we have started a gushbot.io open source REST as an aggregator of service statuses to better power FOSS development. I think you guys idea of moving this to Go is interesting. Good idea! I will be following closely your efforts. |
I'm all for keeping it as |
@mislav Recall that the old github-gem (which is still what's installed with
Maybe... like any other
|
👍 |
I've just met with @jingweno here in Vancouver and we hacked on the Go version of hub. To answer my initial questions:
I don't think we'll make a big deal out of v2.2 release or label it as "official GitHub CLI" just yet. We want existing users of hub or gh to upgrade and tell us their thoughts and report bugs first, which will certainly be plentiful since it's a complete rewrite. The next version after that (v2.3) will be a bigger deal. Gonna close this now as we've gathered enough feedback for now. The rest of the conversation will hapen in individual issues. Thanks, everyone! |
@mislav 👍 |
❤️ |
[gh] is a [hub] reimplementation that's much faster and is now the official Github CLI. It appears that "hub" is [deprecated]. [gh]: https://github.com/jingweno/gh [hub]: https://github.com/github/hub [deprecated]: mislav/hub#475
@muescha Not sure about the rejecting feature requests part 😺, but we do plan to make |
[gh] is a [hub] reimplementation that's much faster and is now the official Github CLI. It appears that "hub" is [deprecated]. [gh]: https://github.com/jingweno/gh [hub]: https://github.com/github/hub [deprecated]: mislav/hub#475 Matches thoughtbot/laptop: thoughtbot/laptop@d9a9dfe
[gh] is a [hub] reimplementation that's much faster and is now the official Github CLI. It appears that "hub" is [deprecated]. [gh]: https://github.com/jingweno/gh [hub]: https://github.com/github/hub [deprecated]: mislav/hub#475
[gh] is a [hub] reimplementation that's much faster and is now the official Github CLI. It appears that "hub" is [deprecated]. [gh]: https://github.com/jingweno/gh [hub]: https://github.com/github/hub [deprecated]: mislav/hub#475 Matches thoughtbot/laptop: thoughtbot/laptop@d9a9dfe
`gh` is the new `hub`, rewritten to be fast and efficient. http://owenou.com/gh/ If has been adopted by GitHub themselves and will replace `hub` entirely, see: mislav/hub#475 This patch simply checks for `gh` as a possible `_git_cmd` in addition to hub, restoring scm_breeze functionality for people who have switched to gh.
[gh] is a [hub] reimplementation that's much faster and is now the official Github CLI. It appears that "hub" is [deprecated]. [gh]: https://github.com/jingweno/gh [hub]: https://github.com/github/hub [deprecated]: mislav/hub#475 Matches thoughtbot/laptop: thoughtbot/laptop@d9a9dfe
I'm just wondering one thing: why is the Until now, I have been using the previous version written in Ruby (1.x) and for example version 1.12.2 had 84 kB. That's quite corresponding with what it does. But 9.5 MB is extremely huge. Why is that? Does it contain the Go interpreter? But even the whole Go interpreter can't be so huge, I guess. Thank you :) |
You're right. |
Thank you guys. But still it seems way too much to me. It's caused by a library(ies) included most probably. Whole Python interpreter is about 2 MB (3.4), 1.7 MB (2.7), 800 kB (2.2), Lua under 100 kB. According what I have googled, simple "Hello world" binary in Go is also up to 2 MB (depending on a version of a compiler). |
@ferenczy I wouldn't worry too much about the binary size. With the download speed nowadays, it takes less than 100 ms to download |
`gh` is the new `hub`, rewritten to be fast and efficient. http://owenou.com/gh/ If has been adopted by GitHub themselves and will replace `hub` entirely, see: mislav/hub#475 This patch simply checks for `gh` as a possible `_git_cmd` in addition to hub, restoring scm_breeze functionality for people who have switched to gh.
This commit swaps the two exports of the commands "hub" and "gh" in the aliases. The fact is the export of "gh" overwrites the previous one, and the official GitHub client is using "hub" as command. See mislav/hub#475. Closes scmbreeze#209
[gh] is a [hub] reimplementation that's much faster and is now the official Github CLI. It appears that "hub" is [deprecated]. [gh]: https://github.com/jingweno/gh [hub]: https://github.com/github/hub [deprecated]: mislav/hub#475
@technoweenie had this idea (backed by @calavera) that we adopt the awesome work on the Go port of hub (by @jingweno) as the official GitHub thing and call it “GitHub CLI”.
I 👍 this. My Ruby implementation of
context.rb
is getting unwieldy and in hub v1.11 I feel I've reached the limit of how much I can speed up hub exection. I can't make it much faster than 50 ms due to Ruby interpreter slowness. Go port can execute in under 10 ms, and it's not even specially optimized yet. Go port can also be distributed as a pre-compiled binary, skipping the need to install Ruby, which can be especially tricky and error-prone for Windows users.I've merged jingweno/gh with hub and pushed that to the "gh" branch here. It's all still rough, but it's a good start. More than half of the Cucumber suite in
features/
already passes. The plan is that the next major release of hub will be Go-powered and our Ruby implementation gone by that point.Some open questions:
git
, so it doesn't matter. We can keep it ashub
for compatibility, or we could name itgh
for shortness.hub browse
, though.~/.config/hub
, although we should save the OAuth token elsewhere.hub.protocol
&hub.host
git config options. But we could move the values to YAML config./cc @defunkt since hub was originally his baby
The text was updated successfully, but these errors were encountered: