Skip to content

Opinionated 🤓, batteries-included 🔋, extra-DRY 🤌 Nix boilerplate.

License

Notifications You must be signed in to change notification settings

dataheld/nullkomma

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nullkomma ⚡️❄️

built with nix

Opinionated 🤓, batteries-included 🔋, extra-DRY 🤌 Nix ❄️ boilerplate.

nullkommanix [ɪn ˈnʊl ˌkɔma ˈnɪçt͡s] noun German colloquialism (translation: in next to time).

Installing

Note

This is the software you need to have on your system. All project-specific software is handled automatically.

  1. Install Nix (the package manager). The Determinate Nix Installer is recommended.
  2. Install direnv.
  3. (optional) Install nix-direnv for better performance during development.
  4. (if not already done) Clone the repo
  5. (one-time only) Inside the repo, run direnv allow

Tip

Windows is not supported by Nix, but you can use the Windows Subsystem for Linux (WSL).

From now on, whenever you change into the directory of your project, all the necessary dependencies etc. will be ready. The first time you enter the directory, this might take some time.

Building

All build-targets are self-documented:

make help

Updating

Nix

There are two separate aspects to updating the nix dependencies.

  1. There may be newer versions available given the pinning in flake.nix. This can be accomplished by running make update-flake locally and may change the flake.lock. However such updates may break a project. It is therefore recommended to only run this in CI, using the periodically scheduled nix_maintenance.yml job. It will automatically open pull requests if there are updates available. Users can then inspect whether the updated project still passes all tests.
  2. The versions pinned in flake.nix (and the resulting flake.lock) itself may be out of date. The DeterminateSystems/flake-checker will fail if this is the case. It runs on every push as well as periodically. You can also run this locally using make check-flake-checker.

Development Shell

To bring the shell you are working in up to date with the source (nix.flake, etc.) of your repository:

direnv reload

Or if you have nix-direnv installed,:

nix-direnv-reload

Issues

nix-/direnv can be a bit chatty on launch. Set hide_env_diff=true to quiet it down.

About

Opinionated 🤓, batteries-included 🔋, extra-DRY 🤌 Nix boilerplate.

Topics

Resources

License

Stars

Watchers

Forks