aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/protoc.py (unfollow)
Commit message (Collapse)AuthorLines
2021-05-19chore: Use TestCase.subTestGravatar ToxicKidz-12/+12
2021-05-19chore: Apply suggestions to improve documentationGravatar ToxicKidz-3/+5
Co-authored-by: Mark <[email protected]>
2021-05-19chore: Update the Nsjail.python3 docstring to use nsjail_argsGravatar ToxicKidz-1/+1
2021-05-18Add a step to lint-test to show pre-commit logsGravatar ToxicKidz-1/+8
2021-05-18chore: Fix some typosGravatar ToxicKidz-2/+2
2021-05-18chore: Add tests for py_args and ns_jail argsGravatar ToxicKidz-1/+32
2021-05-18chore: Improve documentation for arguments in /evalGravatar ToxicKidz-8/+16
2021-05-17feat: Allow custom arguments to be passed to evalGravatar ToxicKidz-3/+14
2021-04-08Clarify documentation of None return codeGravatar Mark-1/+1
2021-04-08Note new return case in eval api fileGravatar Bast-1/+1
2021-04-08Match new unicode eval tests and output to the format and functions of othersGravatar Bast-13/+9
2021-04-06Use PYTHONIOENCODING to enable utf-8 stdout for the nsjail pipe, and handle ↵Gravatar Bast-1/+31
the potential case where this is bypassable Since snekbox does not run with a tty, stdout is technically raw bytes, and thus incomplete surrogate pairs can be printed without the client application erroring, and instead fail within _consume_stdout when we attempt to decode it to a str. This commit sets the PYTHONIOENCODING environment variable to inform python to open the pipe in utf-8 mode. However, clever use of execl and os.unsetenv() can unset this environment variable, so we add a safety check to _consume_stdout to fail out of parsing output if it contains invalid unicode. This should only happen in deliberate cases, or significant bugs in python or a c library where output is printed to stdout ignoring the python stdout encoding.
2021-04-06Bump urllib3 from 1.26.3 to 1.26.4Gravatar dependabot[bot]-6/+6
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.3 to 1.26.4. - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/1.26.3...1.26.4) Signed-off-by: dependabot[bot] <[email protected]>
2021-04-05Move from GHCR_TOKEN to GITHUB_TOKEN in Docker publish stageGravatar Joe Banks-1/+1
2021-04-01Update policy documentsGravatar Matteo Bertucci-121/+8
2021-03-23Remove binarytree packageGravatar Mark-1/+0
It needs setuptools which requires --ignore-installed to be used. That causes all dependencies to be re-installed and therefore always invalidates the cache. Not worth it.
2021-03-23Add binarytree package to eval environmentGravatar Mark-0/+1
2021-03-19Bump urllib3 from 1.26.2 to 1.26.3Gravatar dependabot[bot]-39/+44
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.2 to 1.26.3. - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/1.26.2...1.26.3) Signed-off-by: dependabot[bot] <[email protected]>
2021-03-16Update flooding test to expect code 143Gravatar Joe Banks-1/+1
Test was relying on 137 which is SIGKILL, when instead it would receive 143, or SIGTERM.
2021-03-16Remove logic for removing remnant cgroupsGravatar Joe Banks-12/+0
This should be addressed by sending SIGTERM to nsjail instead of SIGKILL, since nsjail then gets an opportunity to run clean-up logic which includes removing cgroups.
2021-03-16Change SIGKILL to SIGTERMGravatar Joe Banks-3/+4
2021-03-13Remove the mixed line endings pre-commit hook because it is obsolete.Gravatar MarkKoz-2/+1
Relying on git to handle line endings means contributors have more flexibility with which line endings they want to use on check-out. The settings in .gitattributes only impose which line endings will be used upon check-in (LF), which should not impact local development; git will still respect the core.eol and core.autocrlf settings.
2021-03-13master => mainGravatar Joe Banks-14/+14
2021-03-07Docker: improve caching & install numpy in containerGravatar MarkKoz-9/+15
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.
2021-02-26Remove all child cgroups before removing parentsGravatar Joe Banks-0/+12
2021-02-04Fix patch for DEBUG value during testingGravatar MarkKoz-1/+1
2021-02-04Fix the memory limit test and the import errorGravatar MarkKoz-2/+2
2021-02-04Close file descriptors when subprocess endsGravatar MarkKoz-15/+14
2021-02-04Suppress NsJail info logs during testsGravatar MarkKoz-0/+1
The logs clutter up the test output way too much.
2021-02-04CI: fix test step not failing when tests failGravatar MarkKoz-3/+6
Generating the report in the same step resulted in the report exit code overriding the exit code of the test runner.
2021-02-04CI: use Docker Compose to run the containerGravatar MarkKoz-19/+10
Avoid redundant specification of Docker settings. The compose file is set up to build all stages. This makes sense for local development; both an interactive shell and running the webserver are useful. Therefore, the image built is tagged "snekbox:dev". However, CI does not need to run a webserver. It is therefore sufficient for it to only build to the venv stage, and it does exactly that. The image in CI is tagged as "snekbox-venv:<git sha>". To facilitate the discrepancy in image tags, the suffix for the image tag can be set with the new IMAGE_SUFFIX environment variable. Docker Compose will use this to determine the image from which to create a container. A TTY needs to be allocated to prevent the container from exiting immediately after starting. This is probably because the entrypoint is Python (inherited from the base image), and the REPL relies on a TTY.
2021-02-04Document configuration thoroughlyGravatar MarkKoz-1/+41
2021-02-04Fix coverage ownership when running testsGravatar MarkKoz-1/+2
2021-02-04Document how to update NsJailGravatar MarkKoz-0/+10
2021-02-04Replace protoc shell script with a Python oneGravatar MarkKoz-15/+63
2021-02-04Rename "snekbox" script to "webserver" in PipfileGravatar MarkKoz-1/+1
The new name better conveys what the script does.
2021-02-04Replace dev.sh with Docker ComposeGravatar MarkKoz-106/+38
Managing development containers through Docker Compose is convenient. However, it isn't quite flexible enough to facilitate both development and normal use. It's not really worth accommodating the latter since the container gets pushed to a registry and that's the intended way to run the service. Anyone that is checking out the repository and therefore has access to the compose file is likely a developer, not a user.
2021-02-04Categorise and sort scripts in PipfileGravatar MarkKoz-12/+14
2021-02-04Move development environment guide to a separate fileGravatar MarkKoz-94/+99
The information is only relevant to developers. The README is what all users will read; they shouldn't be subject to information that isn't necessarily relevant to them.
2021-02-03Remove cgroup parent constants from config fileGravatar Joe Banks-2/+0
2021-02-03Dynamically create parent cgroups for nsjailGravatar Joe Banks-6/+22
2021-02-02Fix typo in error messageGravatar Mark-1/+1
2021-01-22Remove trailing whitespaces from the READMEGravatar Matteo Bertucci-1/+1
2021-01-22Update the README badgesGravatar Matteo Bertucci-1/+6
2021-01-14Fix typo in READMEGravatar Mark-1/+1
2021-01-12CI: don't do a user install for pre-commitGravatar MarkKoz-1/+2
2021-01-12Docker: update pipenvGravatar MarkKoz-1/+1
2021-01-12Fix caching of exposed packagesGravatar MarkKoz-16/+14
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.
2021-01-11Docker: simplify pipenv install commandGravatar MarkKoz-6/+1
2021-01-11Docker: add comments to separate stagesGravatar MarkKoz-0/+3