Skip to content

Using a Basic accounting Ledger App to learn things

License

hampgoodwin/GoLuca

Repository files navigation

GoLuca

A Simple Accounting Ledger

Go Report Card Coverage Status golangci-lint buf-lint

  • Simple application which writes and reads accounting ledger entries

Tooling

Core dependencies are nix and nix-direnv. Everything else required for this repository is managed by these two!

We use direnv to manage all toolings and dependencies. You can reference the ./flake.nix file for their declarations and ./flake.lock for versions. Currently we are not pinning versions in flake.nix via import, but we should do that soon. Below are some tools we use, and a description of how we use them.

  • nix-direnv
    • we use direnv, as started above, but we use a specific nix-direnv that allows us to use nix, specifically nix develop via flake.nix, to manage our toolings such that we're all using the same thing.
  • buf
    • we use buf for proto toolchain. Linting, formatting, and generation. Also in CI allows for backwards-breaking change detection.
  • gofumpt for formatting.
    • gofumpy for formatting go code.
  • golangci-lint for linting.
    • golangci-lint for linting go code. I like to update golangci-lint versions and use it's default opinions; hence we have no .golangci-lint configuration file.
  • colima for container runtimes.
  • jaeger for local trace collector and ui.
  • nats for eventing.

How to develop

Read the Tooling section.

Navigate in your shell to this repos directory and a developer environment will be configured for you. Either have a global container runtime available, or use this environments colima, by running colima start. Review the Makefile to see available commands. Otherwise, everything is what you'd expect. Best of luck!

About

Using a Basic accounting Ledger App to learn things

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published