A modern, delicious implementation of the Nix package manager, focused on correctness, usability, and growth — and committed to doing right by its community https://lix.systems
  • C++ 75.8%
  • Python 10.7%
  • Nix 6.1%
  • Shell 4%
  • Meson 2%
  • Other 1.3%
Find a file
blokyk 68834b7841 tests/f1/repl-characterization: match golden text correctly
it seems like the repl_characterization tests have not been actually
running correctly for a while, since tests from more than 2 years ago
that should have failed have been in the test suite and OK'd thus far.

the reason why some tests passed when they shouldn't have is because
the AST nodes used by the characterization parser didn't have a correct
comparison operator, so the tests would only fail when one of the output
line was of the wrong *kind*, but not if it had the wrong *value*. this
was fixed by simply adding a default comparator to the TextNode type as
well as every derived class.

i've taken the occasion to fix the tests that were failing now that we
are actually being strict about them. most of these are pretty boring
changes like indentation, but if possible i'd like to get an explicit
ACK from at least one or two people on the core team that these changes
are okay.

for reference, here is the zulip thread that lead to this CL:
  https://zulip.lix.systems/#narrow/channel/8-Testing-.2F-functional2/topic/.E2.9C.94.20repl-characterization.20tests.20not.20failing/near/10276

ps: i had to turn clang-format off around the macro for text node
declarations because it re-formatted the entire macro, causing a lot
of noising and producing uglier code; if this isn't okay or if there's
a better alternative, please let me know!

Change-Id: I1d6d92eb3e9cb705ecfeccd7b9294d6cfd7fe25b
2026-04-27 23:40:56 +02:00
.github fix: docs issue template was busted 2024-09-14 19:28:46 +00:00
bench bench: add memory benchmark 2025-09-29 15:22:41 +02:00
contrib meson: merge libs 2026-01-30 17:29:51 +00:00
doc doc/manual: Update signature of primop fn in hacking.md 2026-04-22 08:39:49 -04:00
lix tests/f1/repl-characterization: match golden text correctly 2026-04-27 23:40:56 +02:00
maintainers maintainers: unify issue references 2026-03-09 22:16:50 +00:00
meson treefmt/ruff: extract ruff config from f2 to global state 2025-12-05 13:45:47 +00:00
misc upgrade-nix: use --store local, so we don't kill our own access to the daemon 2026-04-24 15:56:19 +00:00
nix-support codeowners: add some missing directories 2025-09-17 16:26:49 +00:00
perl libutil/hash: Add default values for Hash::to_string 2026-01-10 18:26:15 +00:00
releng releng: Adapt for AFNix S3 2026-04-27 11:39:58 +00:00
scripts Fix broken user override of NIX_SSL_CERT_FILE in fish shell 2026-04-20 13:02:17 +00:00
subprojects nix-eval-jobs: Remove Value default construction from releaseExprTopLevelValue 2026-04-22 08:37:17 -04:00
tests tests/f1/repl-characterization: match golden text correctly 2026-04-27 23:40:56 +02:00
.clang-format clang-format: Raise column limit to 110 2026-01-02 17:51:33 +00:00
.clang-tidy clang-tidy: enable bugprone-multi-level-implicit-pointer-conversion 2025-12-09 14:51:43 +00:00
.dir-locals.el .dir-locals.el: Set c-block-comment-prefix 2020-07-10 11:21:06 +02:00
.editorconfig .editorconfig: json: init with 4 space indent 2025-05-15 15:11:57 -07:00
.envrc .envrc: remove MAKEFLAGS and use clang environment by default 2024-06-25 12:36:18 -06:00
.gitignore gitignore: ignore top-level build and outputs directories 2026-04-22 11:47:09 +00:00
.mailmap chore: reflect account migration 2026-01-31 20:59:02 +00:00
.this-is-lix devShell: guard against running from another directory 2024-06-24 13:41:38 -07:00
Cargo.lock rust support in libutil via rust-monocrate 2026-01-06 16:35:49 +01:00
Cargo.toml rust support in libutil via rust-monocrate 2026-01-06 16:35:49 +01:00
CONTRIBUTING.md chore: re-work the contribution guide 2024-05-07 01:28:35 +00:00
COPYING Add pre-commit checks 2024-03-29 22:57:40 -07:00
default.nix chore: replace edolstra/flake-compat with lix-project/flake-compat 2026-01-20 12:31:41 +00:00
docker.nix nixpkgs: bump to 25.11 2025-12-17 20:59:59 +01:00
flake.lock Update nixpkgs and nix2container 2026-03-11 11:21:11 +00:00
flake.nix flake: static build in CI 2026-04-13 22:46:30 +01:00
justfile improve justfile, and add more docs about it 2026-03-28 19:08:37 +01:00
meson.build libcmd: remove support for lowdown < 1.4.0 2026-03-17 21:38:42 +00:00
meson.options add a builtin-builder command for ... builtin builders 2026-01-25 17:26:39 +00:00
OWNERS codeowners: add some missing directories 2025-09-17 16:26:49 +00:00
package.nix package.nix: Remove unused linuxPackages input 2026-03-24 11:43:30 -04:00
pyproject.toml tests/functional2: Fix Python LSP by adjusting imports 2026-01-23 15:06:51 +01:00
README.md Fix typos in documentation 2025-03-18 04:20:00 +00:00
shell.nix chore: replace edolstra/flake-compat with lix-project/flake-compat 2026-01-20 12:31:41 +00:00
treefmt.toml code-generation: run ruff 2026-01-10 00:07:33 +00:00
version.json version.json: begin the 2.96 series 2026-03-13 22:59:53 +01:00

Lix

Lix is an implementation of Nix, a powerful package management system for Linux and other Unix systems that makes package management reliable and reproducible.

Read more about us at https://lix.systems.

Installation

On Linux and macOS the easiest way to install Lix is to run the following shell command (as a user other than root):

$ curl -sSf -L https://install.lix.systems/lix | sh -s -- install

For systems that already have a Nix implementation installed, such as NixOS systems, read our install page

Building And Developing

See our Hacking guide in our manual for instruction on how to set up a development environment and build Lix from source.

Additional Resources

License

Lix is released under LGPL-2.1-or-later.