Files
MX_Pmodule/README.md
T
duan_jandClaude Fable 5 ad8eeca28d Update READMEs: Pmodules wiki background, unx-mx_adm permissions, build-* propagation notes
- main README: add Pmodules background from wiki, unx-mx_adm group
  replaces -adm account for updating modules in /etc/psi/MX, and
  how to propagate main to the build-* tutorial branches
- module READMEs: fix titles/paths to match module directories
  (DIALS, jfjoch_viewer), replace -adm login steps with unx-mx_adm note

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-14 14:45:38 +02:00

2.5 KiB

MX

This project includes all MX modules in use.

All modules are build with modbuild/2.1.2 Documentation for how-to-build modules can be found in: https://github.com/Pmodules/Pmodules/wiki

Pmodules background (from the wiki)

  • Modules are organized in hierarchical groups; all modules in this repo belong to the MX group (module use MX).
  • Filesystem layout: modulefile at $PREFIX/GROUP/modulefiles/NAME/VERSION, installation at $PREFIX/GROUP/NAME/VERSION, per-version config at $PREFIX/GROUP/modulefiles/NAME/.config-VERSION (YAML).
  • Release stages: unstable, stable, deprecated. Newly built modules land in unstable; opt in with module use unstable.
  • Pmodules automatically sets $NAME_DIR, $NAME_HOME, $NAME_PREFIX, $NAME_VERSION on load and prepends standard directories ($PREFIX/bin to PATH, $PREFIX/lib to LD_LIBRARY_PATH, ...) if they exist -- no explicit setenv/prepend-path needed in the modulefile.

Permissions

No need to switch to an -adm account any more: members of the unx-mx_adm group can update the modules in /etc/psi/MX directly. If you run into permission problems, please let the admins know.

Tutorial branches (build-*)

Each participant works on their own build-<module> branch (e.g. build-dials). All of them start from main.

To propagate new material from main to the build-* branches:

While the branches are still identical to main (fast-forward, no force needed):

git push origin main:build-dials main:build-buster main:build-careless main:build-crystfel main:build-phenix main:build-pymol main:build-autoproc main:build-xtrapol8

for b in dials buster careless crystfel phenix pymol autoproc xtrapol8; do
  git branch -f build-$b main
done

Once the branches have diverged (people committed on them), merge main into each instead:

for b in dials buster careless crystfel phenix pymol autoproc xtrapol8; do
  git checkout build-$b && git merge main && git push
done
git checkout main

If git push origin main:build-xxx fails with "non-fast-forward", the branch has its own commits: switch to the merge loop, do not force-push over other people's work.

Module tips

  1. modules is name/version (not name/name-version)
  2. Solution to unbound variables: /opt/psi/MX/phenix/phenix-1.20-4459/build/setpaths.sh: line 4: LIBTBX_BUILD_RELOCATION_HINT: unbound variable is to add puts stdout "set +x nounset" before the source statement in the modulefile
  3. wait until the tutorial on 18th August 2026