Open goerz opened 3 years ago
Dear Michael Goerz, thank you for the recommendations!
We've extended automatic testing of primitives using Actions : now with pytest we test all the routines related to manifolds, and we test also all optimizers on the example of Stiefel manifold. We decided to use pytest also, as other primitives testing is based on it. Later, when we extend the library functionality, we can also use nbval for ipynb checks. Tutorials on https://qgopt.readthedocs.io/ are also automaticaly updated with the corresponding changes in the repository.
Please make sure that the package tests and the tutorial notebooks run automatically via "continuous integration" when pushing commits to the repository. I would consider this essential best practices for any open source software and a requirement for publication of the SciPost manuscript.
At this time, I would recommend using Github Actions. I've recently added testing with Github Actions for one of my own packages if that helps as an example: https://github.com/QAlgebra/qalgebra/tree/master/.github/workflows
If you are using
pytest
to run your tests, you may be able to automatically verify the tutorial notebooks using the nbval plugin. You may look at https://github.com/qucontrol/krotov for an example where we've had to do this as well (sadly, the project is still using Travis for continuous integration, which has since shut down - we'll have to move that to Github actions in the near future).