For Contributors

Thank you for your interest in contributing to the QMCPy package!

Please submit pull requests to the develop branch and issues using a template from .github/ISSUE_TEMPLATE/

If you develop a new component please consider writing a blog for qmcpy.org

Join team communications by reaching out to us at qmc-software@googlegroups.com

Installation

In a git enabled terminal (e.g. bash for Windows) with miniconda installed and C compilers enabled (Windows users may need to install Microsoft C++ Build Tools), run

git clone https://github.com/QMCSoftware/QMCSoftware.git
cd QMCSoftware
git checkout develop
conda env create --file environment.yml
conda activate qmcpy
pip install -e .

Doctests and unittests take a few minute to run with

make tests_no_docker

Optionally, you may install Docker and then run all tests with

make tests

After installing Pandoc and LaTeX, documentation may be compiled into your preferred format with

doc_html
doc_pdf
doc_epub

Demos may be run by opening Jupyter using

jupyter notebook

and then navigating to the desired file in the demo/ directory. Some of our developers prefer JupyterLab, which may be installed with

pip install jupyterlab

and then run with

jupyter-lab

The Developers Tools page on qmcpy.org documents additional tools we have found helpful for mathematical software development and presentation.

Visual Studio Code Tips and Tricks

VSCode is the IDE of choice for many of our developers. Here we compile some helpful notes regarding additional setup for VSCode.

  • Run CMD+p then > Python: Select Interpreter then select the ('qmcpy') choice from the dropdown to link the qmcpy environment into your workspace. Now when you open a terminal, your command line should read (qmcpy) username@... which indicates the qmcpy environment has been automatically activated. Also, when debugging the qmcpy environment will be automatically used.

  • Go to File and click Save Workspace as... to save a qmcpy workspace for future development.

Useful Extensions

  • Python

  • Jupyter

  • Markdown Preview Enhanced

  • eps-preview, which requires

    • Postscript Language

    • pdf2svg

  • Git Graph

  • Code Spell Checker