Installing the Development Environment#
SEAMM provides a lot of help for developing with the SEAMM environment, but expects a
fairly specific set of tools. The SEAMM Manager keeps a separate development
installation in ~/SEAMM_DEV, beside the production one in ~/SEAMM, and adds the
development tools – things like black, flake8, pytest and sphinx – to
it.
If you have not already, install uv and the SEAMM Manager as described in
Installing SEAMM with the Manager. Then create the development installation with SEAMM,
all the MolSSI plug-ins and the development tools:
seamm-manager --development install --all development
--development makes the manager work in ~/SEAMM_DEV, with its Python environment
in ~/SEAMM_DEV/venv. You can name individual plug-ins instead of --all; usually
you want at least basic ones such as Read Structure and From Smiles to run and
test your work. Running seamm-manager --development with no command opens the
manager’s window for the development installation, where the Components tab works
as usual.
To work on a package, install your checkout into the development environment. Activate
the environment and use the package’s Makefile:
source ~/SEAMM_DEV/venv/bin/activate
cd my_step
make install
make install reinstalls the package from your source, which picks up entry points
and data files that an editable install can miss. make test, make lint and
make html then use the same environment.
After the installation is complete you may wish to create the shortcuts for easy access to SEAMM and the SEAMM Manager, and the JobServer and web interface services:
seamm-manager --development apps create
seamm-manager --development services create jobserver
See Command Line Installation for the web interface.
Note
The development installation is separate from the production one. You can safely
install both, including shortcuts and services. The development versions have
“(Development)” or “dev” in their names, e.g. the dev_jobserver service, and use
port 55155 rather than 55055 for the web interface. Jobs you run in the development
installation go to ~/SEAMM_DEV/Jobs, separate from your production jobs.
The conda environments for the plug-ins’ codes, which hold the executables, are shared, e.g. there is only one seamm-lammps environment, and both installations use the LAMMPS in it by default.
Update the development installation now and then:
seamm-manager --development update --all
This updates the installed packages and the development tools. It does not touch the
packages you installed from your own checkouts unless a newer release is available, so
reinstall your checkout with make install afterwards if needed.