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++ 77.3%
  • Python 7.2%
  • Nix 6.1%
  • Shell 5.9%
  • Meson 2.1%
  • Other 1.3%
Find a file
Rebecca Turner cb34b56fea tests/functional2: Fix Python LSP by adjusting imports
See: cl/4840

When importing Python modules, we include `functional2` in the module
path, like this:

    from functional2.testlib.fixtures.env import ManagedEnv

This means that python expects to see a file like
`functional2/testlib/fixtures/env.py`. We run `pytest` from `tests/` in
the `justfile` and have `tests/functional2/__init__.py` so `pytest` in
`meson` is able to find these imports.

However, language servers generally consider the `pyproject.toml` to be
the project root, so (e.g.) `pyright` is unable to follow any of the
`functional2` imports, leading to lots of spurious errors.

In cl/4840 I moved `tests/functional2/pyproject.toml` to
`tests/pyproject.toml`, which worked but was considered aesthetically
unappealing.

This diff is much larger but it's a more elegant solution.

Change-Id: I2983c7b87f88f59a4e3521451a9f5acd6a6a6964
2026-01-23 15:06:51 +01: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 contrib/plugins: add mTLS binary cache store plugin 2026-01-21 22:50:35 +00:00
doc contrib/plugins: add mTLS binary cache store plugin 2026-01-21 22:50:35 +00:00
lix libutil: remove unused RunOptions::{chdir, createSession} 2026-01-22 16:59:39 +01:00
maintainers maintainers: run ruff 2025-12-29 17:55:16 +00:00
meson treefmt/ruff: extract ruff config from f2 to global state 2025-12-05 13:45:47 +00:00
misc contrib/plugins: add mTLS binary cache store plugin 2026-01-21 22:50:35 +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 nixpkgs: bump to 25.11 2025-12-17 20:59:59 +01:00
scripts Draft of OWNERS 2025-07-14 18:20:47 -07:00
subprojects meson: unify pkgconfig files 2026-01-15 21:50:40 +00:00
tests tests/functional2: Fix Python LSP by adjusting imports 2026-01-23 15:06:51 +01: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 subprojects/.wraplock 2025-12-29 21:24:05 +00:00
.mailmap add .mailmap 2024-11-04 13:46:10 +01: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 chore: replace edolstra/flake-compat with lix-project/flake-compat 2026-01-20 12:31:41 +00:00
flake.nix chore: replace edolstra/flake-compat with lix-project/flake-compat 2026-01-20 12:31:41 +00:00
justfile tests/functional2: Fix Python LSP by adjusting imports 2026-01-23 15:06:51 +01:00
meson.build contrib/plugins: add mTLS binary cache store plugin 2026-01-21 22:50:35 +00:00
meson.options contrib/plugins: add mTLS binary cache store plugin 2026-01-21 22:50:35 +00:00
OWNERS codeowners: add some missing directories 2025-09-17 16:26:49 +00:00
package.nix contrib/plugins: add mTLS binary cache store plugin 2026-01-21 22:50:35 +00: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 Begin the 2.95 window 2025-11-17 13:33:35 -08: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.