MUQ  0.4.3
Developer Infrastructure Notes

Git

Testing

  • GTest for running c++ unit tests for each compile groups, sequential and MPI parallel
  • RunAllNotebooks.sh for automatically running all python notebook examples

CI

  • See bitbucket-pipelines.yml in MUQ2 repo
  • Coverage
    • Basic c++ unit tests and python notebooks test on push
    • Weekly extended runs mainly for different OS configs
    • Weekly installation instructions script run to ensure they it still leads to a running MUQ setup

Website

  • Hosted on bitbucket pages in the mituq.bitbucket.io repository.
  • Accessible at https://mituq.bitbucket.io/
  • When something is committed to this repository, bitbucket pipelines runs Jekyll and generate the html.
  • (in progress) HTML example pages are generated from the documentation/scripts/ProcessExamples.py in the MUQ2 repository. This script is run from the pipelines script in the MUQ2 repository when a new git tag is created.
  • The bitbucket.io site is static, but the slack invitation button requires extra processing that cannot occur on a static site. To overcome this, a "cloud function" has been set up on the Google cloud platform to handle POST requests when the invitation modal and interact with the slack API.

Doxygen

  • Built via CI when release tag is defined on master repo, pushed as commit to website repo

Docker (in progress)

Conda

  • The MUQ2 conda image lives on conda-forge.
  • The recipe for the MUQ2 conda image lives in the muq-feedstock repository on github.
  • Directions for updating the recipe manually can be found here.
  • Linus and Matt are currently recipe maintainers.
  • In our bitbucket-pipelines.yml file, a fork of conda-forge's muq-feedstock repository is updated every time a new tag is created on the MUQ2 repository. To update the image on conda-forge, we then need to go into github and create a pull request to merge our fork into conda-forge's repo.