UCL-INGI / INGInious

INGInious is a secure and automated exercises assessment platform using your own tests, also providing a pluggable interface with your existing LMS.
http://www.inginious.org
Other
202 stars 139 forks source link

Pivot to pyproject.toml for setuptools packaging #994

Open AlexandreDoneux opened 6 months ago

AlexandreDoneux commented 6 months ago

Using pyproject.toml is the new standardized way to declare packaging metadata. As it is the new standard there will likely be less problems related to the packaging of INGInious.

Rem : setup.py is still usable and the configuration in pyproject.toml overwrites that of setup.py. For the moment the scripts are left in setup.py because of the condition on INGINIOUS_COMPOSE environment variable that can not be done in toml files.

TO DO :

nrybowski commented 6 months ago

See https://github.com/UCL-INGI/INGInious/issues/893

AlexandreDoneux commented 6 months ago

A discussion is needed regarding the scripts in the INGInious package using docker compose. They are not needed and where ignored conditionnaly with a boolean in setup.py. It is however not possible with the pyproject.toml file.

Using two different pyproject.toml files does not seem to be achievable : 1) The pip install command does not allow selection of a particular pyprojetc.toml. 2) Placing the pyproject.toml files in two sub-directories will not work as it seems pip copies only that directory in /tmp before the install. The source code is therefor not reachable for the install.

So either we accept the presence of unused scripts in the docker compose package (not that many) or we comment the pyproject.toml scripts before building it.

nrybowski commented 6 months ago

This PR will be reconsidered after the definition of a new backend architecture and services separation.