-
Notifications
You must be signed in to change notification settings - Fork 310
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
Is this an abandoned project? #380
Comments
It looks like there is fork that had a release last month (https://github.com/thought-machine/go-flags/releases/tag/v1.6.1). https://github.com/thought-machine/go-flags Perhaps @thought-machine folks could make their fork official? /cc @peterebden @samwestmoreland |
Seems that he's only scratching his own itches, not too care about the latest development on jessevdk:master side, :( |
When I created that fork, I wasn't planning for it to take over from this repo; we've used this library extensively and still are very fond of it, ideally I'd like development to come back here. We have done some more work on that fork to facilitate our own needs, particularly Sam's done work on it recently for some fairly specific use cases we have (we're doing some programmatic building of flags objects which I get the impression is not very common elsewhere), although I don't think there is any fundamental reason that can't be merged back. I'm not sure if we would have the time to be good stewards of the project - maybe. But it would be nice to hear what @jessevdk thinks, I definitely don't want it to look like we're trying to muscle in and take this away :)
I think that is a little unfair. There was a period when this repo went pretty quiet (hence why we forked, it's painful to keep stacking up patches or use |
sorry about that -- I didn't mean to hurt you personally or your overall contributions. I was just focusing on that the 16 latest commits from jessevdk:master has not merged into your repo yet, so I personally won't consider such fork official. It's only my personal view and I'm sorry to have expressed that bluntly. The reason for all this is that, I do love this project, and think it is still the best I found so far. Just I'm sad to see the maintenance/development side stopped. |
I think that is quite reasonable, it's something that one can do with either stdlib's flag or the likes of cobra. I would certainly like to be able to set descriptions and defaults dynamically, not sure if this library supports that right now. |
Fair enough :) If we find time it would be useful for us to check those 16 commits and see if we have any issues incorporating them (hopefully / probably not) and then see whether we can turn our changes into a set of pull requests here - that'd make it clear how the two have diverged. I'm hopeful that the differences are not that profound. |
Has anyone tried contacting @jessevdk via email or other channels? |
I think it is safe to assume that this project has been abandoned. |
Sounds like a fork is overdue 😄 |
@errordeveloper does |
@johnnybubonic it probably would, albeit all of my project that use this library right now are quite simple, and I don't have a desire to write a comlicated CLI any time soon. When I mentioned that, I was thinking of some of the things I had to do in |
Hello everyone, |
@maxlandon thanks for sharing, will have a look! As much as I tend to dislike cobra for complexity, I can see how it might be a pragmatic choice and allow for incremental changes in some projects (does your lib implementation allow that?). |
Yeah, that's exactly the reason I don't like it either.
Another option is, instead of relying on a single tool/package to do the migration, I define my cli interface at higher level abstractly within a https://github.com/go-easygen/easygen/wiki/Docs:-Command-line-flag-handling-code-auto-generation |
Well we all agree that cobra being somewhat made as to reach to greatest number of use cases, it has its complexities. However, I must say that I find its defaults to be rather sane, and that you don't have to care about most of the possible fields/settings of a cobra command (or its flags) in order to make it work. To answer your question:
So yes basically there are a couple reasons why I chose to generate structs into cobra commands:
Additionally:
|
BTW, for anyone who don't have the time or energy to jump-ship to another project, take a look at That's the project that I forked, and then looked into every other forks, with or without PR sending over to the official repo, and collected all possible enhancements into a single repo: check it out. |
@suntong is there a reason you didn't use fork functionality of GitHub? (just wondering) |
Lots of reasons, but in summary, I'm doing it in respectful of the original author. Here are the top major reasons.
|
My two cents: I used this package on one project and it was okay; on another project I used https://github.com/alexflint/go-arg and I haven't looked back because it's so easy to use it almost feels "too easy". |
Wow, indeed! Thanks for the recommendation! |
https://github.com/alexflint/go-arg#subcommands Having to do switch statements on all commands to find which one is active is clearly a regression as compared with all other libraries using struct parsing. Same goes with their validation mechanism. Although I am yet another one having written a struct-based CLI library, I must say its a shame that we actually end up with tens of different libraries which only differ in the tag names to use, and one or two conventions. The net result is just:
(Disclaiming that my own lib translates structs to cobra stuff, so I might look biased, but again, maintaining command/flag parsing code is just a complete waste of time: there are so many stuff to be done outside of that). |
Is this an abandoned project, since 2018? as such an important feature (#264) has been broken for over 3 years.
I should have checked all the issues, most importantly #264, before I investigate my time in it, I did check some, but apparently not enough. :( :(
Originally posted by @suntong in #264 (comment)
The text was updated successfully, but these errors were encountered: