LuchnikovI / QGOpt

Riemannian optimization for quantum technologies
Apache License 2.0
56 stars 6 forks source link

Run tests automatically with continuous integration #38

Open goerz opened 3 years ago

goerz commented 3 years ago

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).

RyAlAl commented 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.