[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)