Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Cli ergonomics #9
I really fail to see what switching to quicli gets me in this. Its the new kid on the block for option parsers and it will be broken in the Rust 2018 Edition due to some changes with errors coming up. I'm also not a fan of the macro style. Effectively this is what commit messages are for. To lay out your argument as to WHY this change should be made. WHY is quicli better than using iq-cli or structopt directly or even clap directly? The change to using quicli should be its own logical commit with a commit message explaining WHY its the right choice.
I also fail to see the advantage of switching to cargo-metadata over using cargo directly. In the past when there were changes like workspaces cargo-metadata was broken for some time and a project I had that used it needed to be redone so I'm hesitant to depend on it again. Same thing here with regards to the commit messages. The change to cargo-metadata should be its own logical commit with the reasoning of WHY this change should be included.
Overall this PR says is about ergonomics and you had mentioned on IRC that it was to remove boilerplate but ignoring the addition of the test in here its adding 775 lines of code and removing 599 so I fail to see how it achieves that.
I honestly don't see how this moves the needle towards making this easier with/for Gentoo.
quicli as now is used only to re-export structopt, logenv, etc... it simply reduces imports, if you think is bad I can just drop it.
The PR removes boilerplate and the needs of have useless fuctions like
I'm pretty sure this project uses the following format for commit messages
Could you please update them to use the same formats. Tools such as
Overall you improved the commit going from cargo to cargo_metadata along with its commit message. But that then begs the question of why there's a commit changing the cargo version if the series ultimately drops cargo in the end. Drop that patch. A number of the earlier patches need refinement still.
As we discussed off this ticket, I wanted to provide you with some commits that try to show some detailed commit messages along with code changes that should compile and pass tests at each commit. So I picked some tasks that I felt were mostly mechanical in nature and implemented them. Ultimately I've broken the main entry point away from the rest of code so that its testable. Lastly I've reduced the usage of the Cargo crate from the main binary to allow you to convert the library portion to cargo-metadata. Unfortunately this will result in a bit of conflicts for you but hopefully gives you an idea of the type changes I'm looking forward to in this project.