zxcalc / zxlive

A graphical tool for the ZX calculus
Apache License 2.0
51 stars 20 forks source link

differentiate between deployment and development requirements #163

Open dlyongemallo opened 1 year ago

dlyongemallo commented 1 year ago

Right now, there are two sets of requirements, one in requirements.txt and one in pyproject.toml. I think probably the former should be deprecated in favour of the latter, which is more expressive. Either way, they should be merged.

The requirements as currently stated are development requirements (as they include required packages for testing, linting, and typing). For creating an executable (see #158), it's necessary to identify the minimum set of deployment requirements, to make the resulting executable as small as possible. There's obviously no reason to include typing stubs or testing frameworks into the deployed executable.

(Also, I noticed that sympy is stated as a requirement but isn't used anywhere. Is it intended to be used in the future, or can it be removed from the requirements?)

jvdwetering commented 1 year ago

sympy can be removed from the requirements, since we elected to use a custom lightweight framework to handle variables in expressions.

Can we specify in pyproject.toml requirements for both deployment and development?

dlyongemallo commented 1 year ago

Can we specify in pyproject.toml requirements for both deployment and development?

I believe the answer is "yes", but it depends on how you want to deploy the library and/or app.

jvdwetering commented 9 months ago

Because PyPI doesn't allow any requirements that have to refer to github, we can only have pyproject.toml contain the requirements for deployment. Requirements for development will be specified in requirements.txt

dlyongemallo commented 9 months ago

I think the spec for the executable relies on requirements.txt though, unless that's changed since I last looked at it.