diff --git a/lib/spack/spack/environment/shell.py b/lib/spack/spack/environment/shell.py index 534ced56ea4..814c84b4051 100644 --- a/lib/spack/spack/environment/shell.py +++ b/lib/spack/spack/environment/shell.py @@ -8,6 +8,7 @@ import llnl.util.tty as tty from llnl.util.tty.color import colorize +import spack.config import spack.environment as ev import spack.repo import spack.schema.environment @@ -158,7 +159,8 @@ def activate( # become PATH variables. # - env_vars_yaml = env.manifest.configuration.get("env_vars", None) + with env.manifest.use_config(): + env_vars_yaml = spack.config.get("env_vars", None) if env_vars_yaml: env_mods.extend(spack.schema.environment.parse(env_vars_yaml)) @@ -195,7 +197,8 @@ def deactivate() -> EnvironmentModifications: if active is None: return env_mods - env_vars_yaml = active.manifest.configuration.get("env_vars", None) + with active.manifest.use_config(): + env_vars_yaml = spack.config.get("env_vars", None) if env_vars_yaml: env_mods.extend(spack.schema.environment.parse(env_vars_yaml).reversed()) diff --git a/lib/spack/spack/test/cmd/env.py b/lib/spack/spack/test/cmd/env.py index 5fc00ad582a..640efdeef6c 100644 --- a/lib/spack/spack/test/cmd/env.py +++ b/lib/spack/spack/test/cmd/env.py @@ -3065,14 +3065,26 @@ def test_stack_view_activate_from_default( def test_envvar_set_in_activate(tmp_path, mock_packages, install_mockery): spack_yaml = tmp_path / "spack.yaml" + env_vars_yaml = tmp_path / "env_vars.yaml" + + env_vars_yaml.write_text( + """ +env_vars: + set: + CONFIG_ENVAR_SET_IN_ENV_LOAD: "True" +""" + ) + spack_yaml.write_text( """ spack: + include: + - env_vars.yaml specs: - cmake%gcc env_vars: set: - ENVAR_SET_IN_ENV_LOAD: "True" + SPACK_ENVAR_SET_IN_ENV_LOAD: "True" """ ) @@ -3083,12 +3095,16 @@ def test_envvar_set_in_activate(tmp_path, mock_packages, install_mockery): test_env = ev.read("test") output = env("activate", "--sh", "test") - assert "ENVAR_SET_IN_ENV_LOAD=True" in output + assert "SPACK_ENVAR_SET_IN_ENV_LOAD=True" in output + assert "CONFIG_ENVAR_SET_IN_ENV_LOAD=True" in output with test_env: - with spack.util.environment.set_env(ENVAR_SET_IN_ENV_LOAD="True"): + with spack.util.environment.set_env( + SPACK_ENVAR_SET_IN_ENV_LOAD="True", CONFIG_ENVAR_SET_IN_ENV_LOAD="True" + ): output = env("deactivate", "--sh") - assert "unset ENVAR_SET_IN_ENV_LOAD" in output + assert "unset SPACK_ENVAR_SET_IN_ENV_LOAD" in output + assert "unset CONFIG_ENVAR_SET_IN_ENV_LOAD" in output def test_stack_view_no_activate_without_default(