diff --git a/CHANGELOG.rst b/CHANGELOG.rst index aef5cc1..208d10e 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,3 +1,9 @@ +UNRELEASED +---------- + +* Support `pixi-devenv 0.1.0` or later. + + 1.5.1 (2025-08-26) ------------------ diff --git a/src/deps/_tests/test_deps_cli.py b/src/deps/_tests/test_deps_cli.py index 89ddb3c..3fadc60 100644 --- a/src/deps/_tests/test_deps_cli.py +++ b/src/deps/_tests/test_deps_cli.py @@ -71,7 +71,8 @@ def create_devenv_file( toml_path = root_dir / get_devenv_filename(flavor) env_content = [] if relative_paths_to_root is not None: - env_content.append("includes = [") + env_content.append("[devenv]") + env_content.append("upstream = [") # Use the extended version for half of the includes: # includes = [ # { path = "../core" }, diff --git a/src/deps/deps_cli.py b/src/deps/deps_cli.py index 290663b..a417eb4 100644 --- a/src/deps/deps_cli.py +++ b/src/deps/deps_cli.py @@ -92,14 +92,10 @@ def get_shallow_dependencies(dev_env_file: Path) -> Sequence[Path]: case ".toml": import tomli - data = tomli.loads(dev_env_file.read_text(encoding="UTF-8")) - if not data.get("includes"): - return [] - def get_relative_path(entry: str | dict[str, str]) -> str: - """Include entries have two possible formats: + """pixi-devenv entries have two possible formats: - includes = [ + devenv.upstream = [ "../core", { path = "../calc" }, ] @@ -109,11 +105,16 @@ def get_relative_path(entry: str | dict[str, str]) -> str: else: return entry - return [ - Path(os.path.abspath(dev_env_file.parent / get_relative_path(p))) - / "pixi.devenv.toml" - for p in data["includes"] - ] + data = tomli.loads(dev_env_file.read_text(encoding="UTF-8")) + match data: + case {"devenv": {"upstream": upstream}} if upstream: + return [ + Path(os.path.abspath(dev_env_file.parent / get_relative_path(p))) + / "pixi.devenv.toml" + for p in upstream + ] + case _: + return [] case ext: # pragma: no cover msg = f"Cannot parse files with extension {ext}" echo_error(msg)