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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user