Nut is a tool to manage versioned Go source code packages, called "nuts".

Owner
Alexey Palazhchenko
Pseudo-random person. Backend developer. Gopher. @GolangShow co-host. @GopherConRu and Golang Moscow organizer and speaker.
Alexey Palazhchenko
Comments
  • FAQ: Is LICENSE file really MUST have?

    FAQ: Is LICENSE file really MUST have?

    I'm really dont care about all this license related bla-bla-bla I'm software developer, not a lawyer. Why gonuts.io push me to add LICENSE file to the repo ?

  • Info from .nut.json deleted

    Info from .nut.json deleted

    How to reproduce:

    1. Open just generated nut.json
    2. Enter your tocken
    3. Make some mistake - like write version number in field "V": "0.1.0",
    4. Run nut generate

    What I got: Warning: Can't load config from /Users/varyous/.nut.json: json: cannot unmarshal string into Go value of type bool

    And all info from nut.json is lost. Its just replaced with blank nut.json file.

    I expect: Error message what nut.json file format is invalid and link to nut file specification http://www.gonuts.io/-/doc/spec

  • go get -u github.com/AlekSi/nut/... installs to GOROOT

    go get -u github.com/AlekSi/nut/... installs to GOROOT

    How can I install to $GOPATH/bin? I don't want to install to $GOROOT. Maybe update the docs with information on how to install $GOPATH/bin.

    I think for this tool to succeed, it's got to be as newbie friendly as possible. Thanks.

  • Make changes discussed in https://github.com/AlekSi/nut/issues/28

    Make changes discussed in https://github.com/AlekSi/nut/issues/28

    1. .nut.json should not be created if it's not present. Use-case: invocation of nut get on server. no changes required
    2. .nut.json is updated by any invocation of nut command. no changes required
    3. If .nut.json is empty, it should be generated silently, without "unexpected end of JSON input" warning. Use-case: first invocation. done
    4. If .nut.json is not empty and incorrect, do not update it and exit with error message. done
  • Nice Work! Improve docs?

    Nice Work! Improve docs?

    I just wanted to say at a cursory glance, this looks great! I just started Go yesterday as a veteran Node.js dev, I was bummed by Go's lack of versioning. I was thinking about starting my own system, as seen here: https://github.com/jprichardson/go-commander with package.toml as the package metatadata file.

    One thing that isn't clear. Where are nuts actually hosted? Does the site just do a redirect? How do you publish nuts?

    Good start so far!

  • Add vendors

    Add vendors

    After much thinking I decided that flat namespace (gonuts.io/nut) is a bad idea. Let's add vendors.

    Example: gonuts.io/gorilla/context gonuts.io/gorilla/mux ...

    At first iteration, there will be one vendor per user. Projects/organizations may follow.

  • Hard to find docs on what goes in nut.json

    Hard to find docs on what goes in nut.json

    My first few tries with nut were total failure. I typed "nut publish" with no nut.json file and got no feedback at all.

    Then I tried nut check and discovered that I should have a nut.json file. But the help didn't tell me what to put in it, and I still haven't found the docs (if they exist at all). I'd have expected "nut check" to say something like "use nut generate to start, and then type nut help json to see the format expected for the nut.json file"

    I just discovered nut generate, which is nifty. It should say, "Now edit nut.json to customize it." so I'd know

  • The error for malformed version number is useless

    The error for malformed version number is useless

    When I made the version number "1.0", I got:

    Bad format for version "1.0": parsed as [][]string(nil) (and a panic)

    No indication of what I was supposed to do to fix the problem.

    Also: I question the need to enforce a version number format. Why not a simple string? What if I like versions of the form 20130101?

  • Allow spaces in the JSON fields

    Allow spaces in the JSON fields

    I'd prefer for the JSON to look like this:

    { "Version": "1.0.0", "Authors": [ { "Full Name": "Jeff R. Allen", "Email": "[email protected]" } ], "Extra Files": [ "LICENSE" ] }

    i.e. "Full Name" instead of FullName.

  • Get dependencies

    Get dependencies

    • nut get test_nut should also get and install all dependencies, recursive
    • nut get should get and install all dependencies for package in current directory
  • Wrong error message

    Wrong error message

    1. I run
      nut generate

    and got error message:

    Now you should edit nut.json to fix following errors: Package summary in code should be in form "Package php_session_decoder ... ."

    Its completely wrong, because in turn this message is not related to nut.json file at all. Instead this message should clearly say what you should add doc.go file to your package.

    The second question - why do you push everyone to write package doc exactly in this form: "Package php_session_decoder ... ." I dont understand this. I think its my right to document my package as I want.

    And its not clear at all what I must have dot at the end of the sentence. I understand what accordingly to english grammar rules I should do it, but run config generation tool - not english spell checker and I expect what it will generate nuts.json and nothing more.

  • Version dependencies

    Version dependencies

    Use cases:

    1. ..* – any version
    2. X.. – major version X
    3. X.Y.* – major X, minor Y, any patch
    4. X.>=Y.* – major X, minor at least Y, any patch (X.>=0.* == X..)
    5. X.Y.Z

    Case 5 is typical for application, 4 – for nut.

A diff tool especially for Go language.

go-diff A diff tool for Go languange. It shows the semantic differences between two Go source files. Ignored Difference Order of import statements Ord

Feb 1, 2022
Watchdog for the unreliable nut-driver on the Raspberry Pi

nut-watcher For some reason, nut-driver on the Raspberry Pi likes to break. Every few days it stalls out trying to talk to my UPS. nut-watcher is a si

Dec 6, 2021
"there" also called "GoThere" aims to be a simple Go Library to reduce redundant code for REST APIs.

there "there" also called "GoThere" aims to be a simple Go Library to reduce redundant code for REST APIs. Despite the existence of the other librarie

Dec 25, 2022
Tool to handle versioned migrations with gorm

GORM Migrations About Gorm Migrations Gorm Migrations is a tool designed for go-gorm. Gorm Migration takes the pain out of development of migrations v

Mar 14, 2022
Versioned model registry suitable for temporary in-training storage and permanent storage

Cogment Model Registry Cogment is an innovative open source AI platform designed to leverage the advent of AI to benefit humankind through human-AI co

May 26, 2022
A versioned, snapshottable (immutable) AVL+ tree for persistent data.

IAVL+ Tree Note: Requires Go 1.13+ A versioned, snapshottable (immutable) AVL+ tree for persistent data. The purpose of this data structure is to prov

Nov 24, 2021
A versioned, snapshottable (immutable) AVL+ tree for persistent data.

IAVL+ Tree Note: Requires Go 1.13+ A versioned, snapshottable (immutable) AVL+ tree for persistent data. The purpose of this data structure is to prov

Nov 26, 2021
Akutan is a distributed knowledge graph store, sometimes called an RDF store or a triple store.

Akutan is a distributed knowledge graph store, sometimes called an RDF store or a triple store. Knowledge graphs are suitable for modeling data that is highly interconnected by many types of relationships, like encyclopedic information about the world. A knowledge graph store enables rich queries on its data, which can be used to power real-time interfaces, to complement machine learning applications, and to make sense of new, unstructured information in the context of the existing knowledge.

Jan 7, 2023
A go project generator, which aims to simplify building and releasing go projects by storing all project configuration in a single file called gojen.json, and creates appropriate workflow/git files using that config.

gojen Define your go project's configuration using a json config. This config can be used to generate a new go project for you, and can also create co

Mar 8, 2022
An interpreter written in go for a brainfuck-based language called €*

eurostar-go-interpreter This is an interpreter written in go for a brainfuck-bas

Sep 14, 2022
Gostall - Run go install ./cmd/server and not have the binary install in your GOBIN be called server?

GOSTALL Ever wanted to run go install ./cmd/server and not have the binary insta

Jan 7, 2022
My solution for a Go exercises series called gophercises - exercise #1

My solution for a Go exercises series called gophercises - exercise #1

Jan 11, 2022
You drive the heart of a little creature called: Musshi.
You drive the heart of a little creature called: Musshi.

Musshi's Heart You drive the heart oh a little creature called: Musshi. Developed for the 50th Ludum Dare Game Jam: Delay The Inevitable Goal Every Mu

Dec 20, 2022
:triangular_ruler:gofmtmd formats go source code block in Markdown. detects fenced code & formats code using gofmt.
:triangular_ruler:gofmtmd formats go source code block in Markdown. detects fenced code & formats code using gofmt.

gofmtmd gofmtmd formats go source code block in Markdown. detects fenced code & formats code using gofmt. Installation $ go get github.com/po3rin/gofm

Oct 31, 2022
Tools - This subrepository holds the source for various packages and tools that support

Go Tools This subrepository holds the source for various packages and tools that

Jan 12, 2022
Code generator to produce CLI from R packages

cmd Create command line applications from R packages. How it works It's a code generator that outputs Go code which produces a Command Line Applicatio

Apr 30, 2022
octocov is a tool for collecting code metrics (code coverage, code to test ratio and test execution time).

octocov is a tool for collecting code metrics (code coverage, code to test ratio and test execution time).

Jan 9, 2023
sail is an operation framework based on Ansible/Helm. sail follows the principles of Infrastructure as Code (IaC), Operation as Code (OaC), and Everything as Code. So it is a tool for DevOps.

sail 中文文档 sail is an operation framework based on Ansible/Helm. sail follows the principles of Infrastructure as Code (IaC), Operation as Code (OaC),a

Dec 16, 2021
The most opinionated Go source code linter for code audit.
The most opinionated Go source code linter for code audit.

go-critic Highly extensible Go source code linter providing checks currently missing from other linters. There is never too much static code analysis.

Jan 6, 2023