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>
This commit is contained in:
2026-08-14 14:45:38 +02:00
co-authored by Claude Fable 5
parent fd8519dd49
commit ad8eeca28d
6 changed files with 49 additions and 32 deletions
+38 -1
View File
@@ -1,10 +1,47 @@
# MX
This project includes all MX modules in use.
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)