For Developers¶
Preferred way to develop pysjef is within a conda environment, without any external libraries. This makes it easier to than distribute the package on conda-forge.
The main pysjef repository is hosted on gitlab https://gitlab.com/molpro/pysjef. Developers should fork their own copy and add their contribution through a merge request.
Installing pymolpro¶
Clone the pysjef repository:
git clone https://gitlab.com/molpro/pysjef.git
cd pysjef
Run a script to create a conda environment for developing pysjef:
bash create_conda_env.sh pysjef-dev
conda activate pysjef-dev
Run a script to build the project and install it into conda:
bash build.sh
It will build sjef c++ library in cmake-build/ and compile
a cython wrapper of sjef.project
Testing¶
For testing, pytest and mocker will need to be installed:
pip install pytest pytest-mock
Tests are automatically run in CI.
Test files are kept in test/. Any data files required for tests
are kept in test/samples/.
Documenting¶
To build the documentation, Sphinx will need to be installed:
pip install sphinx sphinx_rtd_theme
Then to generate the documentation itself, run Sphinx from docs/:
make clean && make html
Documentation is primarily generated from docstrings in the source code using sphinx-autodoc. For that, pysjef module must be importable.