The io/ioutil package has been deprecated as of Go 1.16, see
https://golang.org/doc/go1.16#ioutil. This commit replaces the existing
io/ioutil functions with their new definitions in io and os packages.
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
* Start moving code out of cmd
* hacky cmd -> action/evn refactor
* progress
* String verbose error from lib, mostly not reconstructed on cli side
* Missing verbose errors in lib, still not handled in cli. Refactor vinai's doc diffs to not depend on merge
* Small progress commit on other laptop
* Merge bats passing
* format
* progress
* Remotes bats tests working
* More error fixes
* Fix cyclic foreign keys bats
* Fix import cycle
* Start cleaning up code
* Fix a couple bats
* Clean up comments and println
* Brian's comments
The existing noms codebase uses panics for signaling errors in most cases. This is not idiomatic go, and it is not the optimal behavior when building cloud services, or products on top of noms as a panic in any go routine causes the entire process to exit.
This is a large step in removing panics, and bubbling errors up through the code.
NomsBlockStore gets seeded with a version string specifier which gets threaded
through various contexts. If the existing manifest specifies a different
format, then that takes priority.