dependency-management.rst 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. Dependency Management
  2. =======================
  3. Requirements
  4. -------------
  5. FlexMeasures is built on the shoulder of giants, namely other open source libraries.
  6. Look into the `requirements` folder to see what is required to run FlexMeasures (`app.in`) or to test it, or to build this documentation.
  7. The `.in` files specify our general demands, and in `.txt` files, we keep a set of pinned dependency versions, so we can all work on the same background (crucial to compare behavior of installations to each other).
  8. To install these pinned requirements, run:
  9. .. code-block:: bash
  10. $ make install-for-dev
  11. Check out `Makefile` for other useful commands, but this should get you going.
  12. To upgrade the pinned versions, we can run:
  13. .. code-block:: bash
  14. $ make upgrade-deps
  15. Python versions
  16. ----------------
  17. In addition, we support a range of Python versions (as you can see in the `requirements` folder.
  18. Now ― you probably have only one Python version installed. Let's say you add a dependency, or update the minimum required version. How to update the pinned sets of requirements across all Python versions?
  19. .. code-block:: bash
  20. $ cd ci; ./update-packages.sh; cd ../
  21. This script will use docker to do these upgrades per Python version.
  22. Still, we'd also like to be able to test FlexMeasures across all these versions.
  23. We've added that capability to our CI pipeline (GitHub Actions), so you could clone it an make a PR, in order to run them.