1.5.4 (2026-05-15)

  • Fixed issue with force lock, not resetting the name to null

  • Add a space for buffered log banners to make it easier to read

1.5.3 (2026-05-08)

  • Fixed issue to prefer the name in the manifest to the one in the lockfile

1.5.2 (2026-05-07)

  • Fixed lock loader typo for Fossil & unsupported kind thrown error missing it’s argument

  • Fixed lock loader stray closing parenthesis (thanks )

  • Lock loader fallback to "src" if name is still missing (thanks )

1.5.1 (2026-05-07)

  • Store name now also derived on inputs missing from lockfile too such as newly-added inputs (which was the intended behavior)

  • Better handling of nixtamal tweak for editors with whitespace & filenames being unquoted (technically this could have been a security risk if this was for arbitrary files, but as it was only calling Nixtamal’s file names the quoting isn’t ‘required’, but it’s better to be safer).

1.5.0 (2026-05-01)

  • NEW: Schema 1.1.0

    • name=… property on Input nodes which sets the path name for the Nix store which helps with Unicode & other limitations to the tiny/strict/unsufficient allowed characters by Nix

    • default name is now $INPUT_NAME-src which should also help for identifying these fetched sources in the /nix/store as prior they were named like $HASH-fetchdarcs which is used by all inputs fetched by that kind.

  • Add default fresh-cmd for File & Archive kinds which peeks the HTTP headers for ETags or Link rel="immutable" (see Lockable HTTP Tarball Protocol). Do note that this will not follow that link like flakes but is just used as a canary; you can write your own fresh-cmd to follow it

  • Added cURL & GNU AWK to the Nix closure to be able to have defaults for tarballs. As many of the nix-prefetch-scripts already were using these dependencies, this shouldn’t meaningfully change the total disk usage / closure size

  • Input & Patch key names have their own newtype-like wrappers to get better type safety as it was too easy to accidentally mix them up since inputs & patches are often juggled in the same functions

  • Buffer logs during the TUI experience to show logs after the main processes are complete

  • Error when versions aren’t latest prompting users to upgrade

  • nixtamal check-soundness now errors when Darcs context files are missing

  • Fixed nixtamal lock --force $INPUT(S) where unchosen inputs were dropped instead of melded with the manifest using their old lockfile data

  • nixtamal lock --force will warn on lockfile corruption but press onward

  • open lockfile after encoding the JSON — if it errors, it truncated a perfectly cromulent file that if you were lucky, you could restore with your VCS

1.4.1 (2026-04-04)

  • Don’t just failwith on mismatched inputs but provide a proper error & message to help user recover (thanks to for reporting)

  • lock --force now ignore the lockfile when trying to meld manifest × lockfile inputs since the idea is to always override the input; for this reason, it also helps with the input mismatch issue

1.4.0 (2026-04-01)

  • Revert the VCS ignore patch for checking feature support in favor using XDG base directory at the user level (thanks to for the idea)

1.3.0 (2026-03-29)

  • BREAKING: --nixpkgs-branch on setup has been renamed --nixpkgs-channel

  • add --use-channels flag to use channels from channels.nixos.org which are community-owned & more efficient (LZMA compression) — however, unlike the default of using the Git archive, the channels option doesn’t provide as good of a template for users to remix, so it won’t be the default (thanks for the idea)

  • Fix bug where VCS files were getting clobbered instead of appending

1.2.0 (2026-03-26)

  • Fix bug in Git’s default ls-remate command for branches (thanks )

  • Truly split the Nixpkg + set outputsToInstall

  • nixtamal.default in overlay uses symlinkJoin on those outputs

  • Add a check for BLAKE3 hash support if used — which touches a file to avoid running the tests on each invocation…

  • …Add ignore file updates on set-up (assumes you set up the VCS first) with files you don’t want in your history

1.1.5 (2026-03-20)

  • Split bin/lib in the Nix package, which when using nixtamal.bin significantly reduces size (thanks to vbgl for the upstream fix)

  • Fix bug where errors were handing back the result of stdout instead of stderr

1.1.4 (2026-03-09)

  • Fix bug using old version of Nix where fetchGit did not have lfs

1.1.3 (2026-03-06)

  • Typos & documentation cleanup

1.1.2 (2026-02-19)

  • Actually make Cmdliner 2.x build

1.1.1 (2026-02-16)

  • Fix manifest’s default version wasn’t the current one, but an older version

1.1.0 (2026-02-15)

  • Make changes to be compatible with Cmdliner 2.x (in NixOS staging)

  • Fix manifest file errors should provide better context

  • Fix bug where missing lockfile would errors instead of write a new one

  • Fix TUI output with UTF-8

1.0.0 (2026-02-13)

  • 1.0.0’d the schema

  • Add nixtamal upgrade to upgrade schema versions

  • Add Fossil support

  • Fix some bugs in how the TUI was handled

0.3.1-beta (2026-02-07)

  • Fix refactor oversight where locking wasn’t getting the fresh command/value

0.3.0-beta (2026-02-07)

  • Add TUI

  • Fix missing lockfile loader semicolon on no local patches

0.2.1-beta (2026-02-03)

  • Add fetch-time to nixtamal show

0.2.0-beta (2026-02-02)

  • Update schema from 0.4.0 → 0.5.0 (will require manual migration [beta_man_migr])

    • New feature: fetch time

    • Git: now uses the ref in the lockfile to properly get the rev when fetching

    • Git: supports tags (convenience, previously used rev overloaded like Nix)

    • Loader: renaming for clarity nixpkgsbootstrap-nixpkgs

  • Fetch at either eval or build time (builtins.fetch* vs. pkgs.fetch*)

  • Fix typo in fetch-git block which prevented Git usage

  • Fix nix builds to work on Darwin (thanks WeeHet)

  • Remove that Nix code to remove stray OCaml references (as it doesn’t work as is does in other OCaml projects, & upstream Nix OCaml builds need to be looked at)

0.1.1-beta (2026-01-27)

  • Add CHANGELOG.rst

  • Add {CHANGELOG,README}.rst to Nixtamal’s source filter

  • Move nixtamal-manifest.schema → nitxtamal/schema/manifest.kdl

  • Tweak Nix code to wrap the binary with the $PATH for prefetchers

  • Tweak Nix code to remove stray OCaml references

[beta_man_migr]
  1. rm ${NIXTAMAL_DIRECTORY:-nix/tamal}/{lock.json,default.nix}

  2. nitamal tweak to bump version in manifest.kdl

  3. re-run nixtamal lock to generate a new lockfile