Closed antalszava closed 2 years ago
Hi @antalszava,
From your comment I understand that requirements-ci.txt
would be used by the CI to test that strawberryfields works as expected when used as a package, hence it will contain the requirements appearing on setup.py
. On the other hand, requirements.txt
will have all dependencies required to used all the features of SF.
Is that correct? Could you elaborate a bit more?
When you mention pinned closely and pinned exactly, are you referring to semantic versioning?
Pennylane has resolved the same issue and is a good reference for this: Create a separate requirements file for the CI #1292
Hi @sduquemesa,
When you mention pinned closely and pinned exactly, are you referring to semantic versioning?
Yes! The idea would be to only pin only those packages to a certain version in the requirements-ci.txt
file where there is a specific constraint (i.e., SF only works with a certain version of the dependency). The rest of the packages would stay unpinned so that when issuing pip install -r requirements-ci.txt
, the latest version for each package is installed by the continuous integration check.
In contrast, in the requirements.txt
file we would like to provide the user with a working setup to use Strawberry Fields. We provide a list of dependencies with pinned versions, such that by doing pip install -r requirements.txt
, they will get a working combination of dependencies and be able to use Strawberry Fields.
We would like to have a separate
requirements.txt
(pinned exactly to the versions used) andrequirements-ci.txt
(pinned closely tosetup.py
). This latter would be used by the CI.See the conversation thread at the end of #581.