@@ -199,9 +199,17 @@ Important settings:
199199- ` machines.path ` : optional path to target-owned machine config files.
200200- ` pixi.prefix ` : required in practice.
201201- ` pixi.channels ` : required and must be non-empty.
202+ - ` pixi.login_mpi ` : optional alternate MPI setting for login nodes. When set,
203+ ` mache deploy run ` may create a second pixi environment for login-node use
204+ and the generated load script will auto-select between the login and compute
205+ environments.
206+ - ` pixi.login_prefix ` : optional install path for that login-node pixi
207+ environment. If omitted, mache reuses ` pixi.prefix ` when the login and
208+ compute MPI settings match, or defaults to ` <pixi.prefix>_login ` when they
209+ differ.
202210- ` permissions.group ` : optional shared-filesystem group to apply after a
203211 successful deploy. If unset, ` mache deploy run ` falls back to merged machine
204- config ` [deploy] group ` , then legacy ` [e3sm_unified] group ` .
212+ config ` [deploy] group ` .
205213- ` permissions.world_readable ` : optional boolean controlling whether deployed
206214 files are readable outside the shared group. Hooks may override both values
207215 through ` ctx.runtime["permissions"] ` .
@@ -557,12 +565,15 @@ created.
5575655. Resolves toolchain pairs for Spack.
5585666. Renders `deploy/pixi.toml.j2` into the install prefix and runs
559567 ` pixi install` .
560- 7. Optionally installs a development copy of `mache` when a fork/branch was
568+ 7. Optionally creates a second login-node pixi environment when
569+ ` pixi.login_mpi` is configured or a hook sets `ctx.runtime["pixi"]`
570+ accordingly.
571+ 8. Optionally installs a development copy of `mache` when a fork/branch was
561572 requested.
562- 8 . Optionally builds and installs JIGSAW.
563- 9 . Optionally deploys or loads Spack environments.
564- 10 . Optionally installs the target software in editable mode.
565- 11 . Writes one or more `load_<software>*.sh` scripts.
573+ 9 . Optionally builds and installs JIGSAW.
574+ 10 . Optionally deploys or loads Spack environments.
575+ 11 . Optionally installs the target software in editable mode.
576+ 12 . Writes one or more `load_<software>*.sh` scripts.
566577
567578When a toolchain pair is selected, script names include machine, compiler,
568579and MPI tags, for example :
@@ -572,6 +583,11 @@ and MPI tags, for example:
572583Those load scripts are the main artifact a downstream user consumes after the
573584deployment completes.
574585
586+ When a login pixi environment is configured, the generated load script chooses
587+ the login environment on login nodes and the compute environment inside common
588+ batch jobs such as Slurm, PBS, or Cobalt. Spack activation remains compute-only
589+ in that split-environment case.
590+
575591# # The command-line contract
576592
577593There are really two CLIs involved :
@@ -621,8 +637,10 @@ Examples from the current contract:
621637- ` --bootstrap-only` is deploy-only.
622638- ` --machine` is deploy-plus-run.
623639- ` --mache-version` is bootstrap-plus-run.
624- - ` --pixi` , `--prefix `, `--recreate`, `--quiet`, `--mache-fork`, and
640+ - ` --pixi` , `--pixi-path `, `--recreate`, `--quiet`, `--mache-fork`, and
625641 ` --mache-branch` are routed across all relevant phases.
642+ - ` --prefix` is still accepted as a deprecated compatibility alias for
643+ ` --pixi-path` .
626644
627645# ## How `deploy/custom_cli_spec.json` works
628646
0 commit comments