config: fix SPACK_DISABLE_LOCAL_CONFIG, remove $user_config_path (#27022)

There were some loose ends left in ##26735 that cause errors when
using `SPACK_DISABLE_LOCAL_CONFIG`.

- [x] Fix hard-coded `~/.spack` references in `install_test.py` and `monitor.py`

Also, if `SPACK_DISABLE_LOCAL_CONFIG` is used, there is the issue that
`$user_config_path`, when used in configuration files, makes no sense,
because there is no user config scope.

Since we already have `$user_cache_path` in configuration files, and since there
really shouldn't be *any* data stored in a configuration scope (which is what
you'd configure in `config.yaml`/`bootstrap.yaml`/etc., this just removes
`$user_config_path`.

There will *always* be a `$user_cache_path`, as Spack needs to write files, but
we shouldn't rely on the existence of a particular configuration scope in the
Spack code, as scopes are configurable, both in number and location.

- [x] Remove `$user_config_path` substitution.
- [x] Fix reference to `$user_config_path` in `etc/spack/deaults/bootstrap.yaml`
      to refer to `$user_cache_path`, which is where it was intended to be.
This commit is contained in:
Todd Gamblin
2021-10-28 14:33:44 -07:00
committed by GitHub
parent d0e177e711
commit a1216138f6
7 changed files with 15 additions and 19 deletions

View File

@@ -409,8 +409,6 @@ Spack understands several special variables. These are:
<https://docs.python.org/2/library/tempfile.html#tempfile.tempdir>`_
variable.
* ``$user``: name of the current user
* ``$user_config_path``: user configuration directory (``~/.spack`` unless
:ref:`overridden <local-config-overrides>`)
* ``$user_cache_path``: user cache directory (``~/.spack`` unless
:ref:`overridden <local-config-overrides>`)
@@ -587,9 +585,9 @@ Spack provides three environment variables that allow you to override or opt out
configuration locations:
* ``SPACK_USER_CONFIG_PATH``: Override the path to use for the
``user`` (``~/.spack``) scope.
* ``SPACK_SYSTEM_CONFIG_PATH``: Override the path to use for the ``system``
(``/etc/spack``) scope.
``user`` scope (``~/.spack`` by default).
* ``SPACK_SYSTEM_CONFIG_PATH``: Override the path to use for the
``system`` scope (``/etc/spack`` by default).
* ``SPACK_DISABLE_LOCAL_CONFIG``: set this environment variable to completely disable
**both** the system and user configuration directories. Spack will only consider its
own defaults and ``site`` configuration locations.