| Commit message (Collapse) | Author | Age | Lines |
|
|
|
|
|
|
|
| |
Adds an image with only one python version installed. This can be useful
in development environments for other projects where the multi-version
features are less useful than a more efficient container.
Signed-off-by: Hassan Abouelela <[email protected]>
|
|
|
|
|
|
|
|
|
| |
Adds support for having multiple evaluation python versions installed in
the docker container. A utility to automatically generate correct
dockerfile instructions and nsjail mounts based on the available
versions is also included.
Signed-off-by: Hassan Abouelela <[email protected]>
|
|
|
|
|
|
|
| |
Upgrade build image, configuration files, and documentation to python
3.11.
Signed-off-by: Hassan Abouelela <[email protected]>
|
| |
|
|
|
| |
Co-authored-by: Matteo Bertucci <[email protected]>
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Pipenv was limited to only "normal" and "dev" dependencies. pip-tools
is more flexible, since each requirements file can be constrained by
more than one other requirements file. This means CI can choose to only
install coverage deps in the test job and linting deps in the lint job,
but these dependencies will still be constrained by each other and by
other requirements, so a developer will be able to install both sets
simultaneously without conflicts.
Use a Makefile to make up for the loss of Pipenv's scripts
functionality.
|
| |
|
|
|
|
|
|
|
| |
The updated versions adds support for telling NsJail to set the max swap
memory in the cgroup.
Resolve #125
|
|
|
|
| |
Signed-off-by: Hassan Abouelela <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CI was building the image twice: once with dev dependencies and again
without. Separating the pipenv command into separate layers allows the
second build in CI to take advantage of the cache for the base
dependencies that it will share across both builds.
Install numpy along with the dev dependencies within the container.
Previously it was installed in CI only, but this meant extra work for
those running tests locally.
Install numpy to the correct site.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The problem with --ignore-installed is that it also ignores packages in
the target site, therefore re-installing all packages and making caching
futile.
Install snekbox's dependencies to the default user site. During
installation of the exposed packages, switch the user site to a custom
one to ensure pip will not skip packages due to seeing them as already
installed as one of snekbox's dependencies.
If pip made the --root option ignore packages outside the root, then
using --root would be the best solution. There is a 5+ year old issue
open about that.
|
| |
|
| |
|
|
|
|
| |
Just a refactor.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Isolate snekbox's dependencies from the packages available within the
Python interpreter. Disable Python's default behaviour of site-dependent
manipulations of sys.path. The custom directory looks like a user site
to allow `pip install --user` to work with it. However, snekbox will see
it as simply an additional search path for modules rather than as a user
site.
Disable isolated mode (-I) because it implies (-E), which ignores
PYTHON* environment variables. This conflicts with the reliance on
`PYTHONPATH`.
Specify `PYTHONUSERBASE` in the Dockerfile to make installing packages
to expose more intuitive for users. Otherwise, they'd have to remember
to set this variable every time they need to install something.
|
| |
|
|
|
|
|
| |
I've fixed paths still pointing to the old Dockerfile location. I've
also reverted an error that somehow got committed to the Dockerfile.
|
|
One problem that our master builds may have is that they retain more and
more layers of old builds, as there is no easy way of purging them from
the cache. As such master cache would not have benefits over using
repository-based caching, I've removed persistent local caching for
non-PR builds.
|