[HN Gopher] Coral, a Cobra fork with nearly all its features, bu...
___________________________________________________________________
Coral, a Cobra fork with nearly all its features, but only 4
dependencies
Author : gojiberries
Score : 43 points
Date : 2022-02-03 00:41 UTC (1 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| kkirsche wrote:
| This looks amazing. Viper was something I've always removed from
| my projects as they're simple tools usually where configuration
| files don't make sense, so I really appreciate you sharing this.
| Excited to see where it goes!
| rad_gruchalski wrote:
| Interesting. I wasn't usually using viper but on a recent
| project it was handy.
| rad_gruchalski wrote:
| Which features are missing?
| nikolay wrote:
| Christian Muehlhaeuser (@muesli) is an outstanding 10x developer
| and all his projects and contributions are pretty remarkable!
| orblivion wrote:
| I recognize that handle and avatar from following him on
| Mastodon. (assuming it's actually him)
| bigdubs wrote:
| 4 ... of its 5 dependencies. It's just missing Viper. We should
| do a better job with the title here.
|
| See: - [0] https://github.com/muesli/coral/blob/master/go.mod -
| [1] https://github.com/spf13/cobra/blob/master/go.mod
| jjnoakes wrote:
| Right but that last one is the problem...
|
| https://github.com/muesli/coral/blob/master/go.sum
|
| https://github.com/spf13/cobra/blob/master/go.sum
| racingmars wrote:
| ...but that fifth dependency makes all the difference!
| $ go mod init foo && go get github.com/spf13/cobra && wc -l
| go.sum 758 go.sum $ go mod init foo && go get
| github.com/muesli/coral && wc -l go.sum 10 go.sum
|
| (Number of lines in go.sum != number of transitive
| dependencies, of course, but the scale of the difference still
| hints at how much extra is being pulled into your project.)
| lbhdc wrote:
| The dependency that was dropped has many dependencies that
| would get added to your project.
|
| https://github.com/spf13/viper/blob/master/go.mod
| CraigJPerry wrote:
| I like this from the readme: It's easy to use
| Coral as a drop-in replacement for Cobra in existing projects,
| just let gofmt do the heavy lifting for you: gofmt
| -w -r '"github.com/spf13/cobra" -> "github.com/muesli/coral"' .
| gofmt -w -r '"github.com/spf13/cobra/doc" ->
| "github.com/muesli/coral/doc"' . gofmt -w -r 'cobra ->
| coral' . go mod tidy
|
| Having implemented something to do a similar one off refactor in
| java for thousands of files, that is a breath of fresh air. In
| java i had to go code -> AST -> perform manipulations -> generate
| code from AST (with inevitable long PR's due to generated code
| not matching 1:1 with parsed original). After having gone through
| that i think if i had to repeat again with java I'd probably try
| harder to use structural find and replace.
___________________________________________________________________
(page generated 2022-02-04 23:00 UTC)