Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v2.5.0 #540

Merged
merged 45 commits into from
Aug 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
37b5fcd
Update changelog for release v2.4.0 (#481)
pretendWhale Jan 13, 2024
4599eda
unset sticky bit when clearing working directory (#483)
pretendWhale Jan 25, 2024
566bf7c
haskell tester: document STACK_ROOT and add to docker dev environment…
pretendWhale Feb 7, 2024
6f1e500
update changelog with new release v2.4.1 [ci skip] (#490)
donny-wong Feb 7, 2024
d69c533
[pre-commit.ci] pre-commit autoupdate (#479)
pre-commit-ci[bot] Feb 24, 2024
b59053c
build(deps): bump jsonschema from 4.20.0 to 4.21.1 in /server (#485)
dependabot[bot] Mar 11, 2024
f87f855
build(deps): bump jsonschema from 4.20.0 to 4.21.1 in /client (#487)
dependabot[bot] Mar 11, 2024
f5b9452
build(deps): bump python-dotenv from 1.0.0 to 1.0.1 in /client (#486)
dependabot[bot] Mar 11, 2024
4fe3068
build(deps): bump rq from 1.15.1 to 1.16.0 in /server (#494)
dependabot[bot] Mar 11, 2024
01cca0d
build(deps): bump redis from 5.0.1 to 5.0.3 in /server (#497)
dependabot[bot] Mar 13, 2024
69a0ffa
build(deps): bump redis from 5.0.1 to 5.0.3 in /client (#498)
dependabot[bot] Mar 13, 2024
12f2890
user separate sticky bit command when cleaning up test directories (#…
pretendWhale Mar 22, 2024
04c71d7
[pre-commit.ci] pre-commit autoupdate (#500)
pre-commit-ci[bot] Mar 31, 2024
77ecd57
Set _env_status earlier when updating settings (#499)
david-yz-liu Apr 2, 2024
a1b9c05
update changelog for v2.4.2 (#506)
pretendWhale Apr 4, 2024
a85cdf8
Sticky bit unit test (#501)
donny-wong Apr 9, 2024
f2bfa61
Upgrade dev docker environment to 22.04 (#492)
pretendWhale Apr 9, 2024
b61a55f
[pre-commit.ci] pre-commit autoupdate (#507)
pre-commit-ci[bot] Apr 19, 2024
c3b34fc
add post-install script for haskell (#508)
pretendWhale Apr 22, 2024
59772b7
add typing-extensions to test venv (#511)
pretendWhale Apr 23, 2024
9c4c641
Clean local directory before setting up test files (#510)
pretendWhale Apr 24, 2024
7a56e41
Add tidyverse as a default package for the R tester (#512)
pretendWhale Apr 26, 2024
9d25ba0
Ensure Python tester omits skipped tests (#522)
david-yz-liu May 8, 2024
a6b414e
update changelog with new release v2.4.3 [ci skip] (#525)
donny-wong May 9, 2024
3d9a5e0
[pre-commit.ci] pre-commit autoupdate (#514)
pre-commit-ci[bot] Jun 1, 2024
9b750fe
haskell tester: make stack resolver version a user setting (#526)
donny-wong Jun 1, 2024
16dcb8c
Clear files created in /tmp after test runs (#528)
pretendWhale Jun 10, 2024
6c49a8d
[pre-commit.ci] pre-commit autoupdate (#533)
pre-commit-ci[bot] Jun 18, 2024
b25bb72
update changelog for v2.4.4 (#537)
pretendWhale Jul 23, 2024
09f3ea3
r-tester: use rownames to check installed packages and ensure stringi…
pretendWhale Jul 23, 2024
bf921ab
Make PyTA version a schema setting (#536)
donny-wong Jul 29, 2024
75e9831
[pre-commit.ci] pre-commit autoupdate (#538)
pre-commit-ci[bot] Aug 7, 2024
d59ab91
Add libxml2-dev to server Dockerfile, required by R testthat library
david-yz-liu Aug 7, 2024
3ec4a68
Display stderr contents if R packages fail to install
david-yz-liu Aug 7, 2024
bb2f7ae
Do not display failure messages when test case passes
david-yz-liu Aug 7, 2024
df22b18
build(deps): bump redis from 5.0.3 to 5.0.4 in /client (#520)
dependabot[bot] Aug 8, 2024
44160c1
build(deps): bump redis from 5.0.3 to 5.0.4 in /server (#516)
dependabot[bot] Aug 8, 2024
4e84476
build(deps): bump jsonschema from 4.21.1 to 4.22.0 in /client (#519)
dependabot[bot] Aug 8, 2024
b3570d0
build(deps): bump jsonschema from 4.21.1 to 4.22.0 in /server (#517)
dependabot[bot] Aug 8, 2024
c9989c4
build(deps): bump rq from 1.16.0 to 1.16.2 in /server (#529)
dependabot[bot] Aug 8, 2024
a7fb05d
build(deps): bump rq from 1.15.1 to 1.16.2 in /client (#531)
dependabot[bot] Aug 8, 2024
4284afa
build(deps): bump requests from 2.31.0 to 2.32.3 in /server (#530)
dependabot[bot] Aug 8, 2024
0f268fc
build(deps): bump flask from 2.3.3 to 3.0.3 in /client (#521)
dependabot[bot] Aug 8, 2024
fe51b25
Merge branch 'master' into release_v2.5.0
pretendWhale Aug 16, 2024
d2003e6
Changelog: update changelog
pretendWhale Aug 16, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
repos:
- repo: https://github.com/psf/black
rev: 23.12.1
rev: 24.8.0
hooks:
- id: black
- repo: https://github.com/pycqa/flake8
rev: 6.1.0
rev: 7.1.1
hooks:
- id: flake8
7 changes: 7 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
# CHANGELOG
All notable changes to this project will be documented here.

## [v2.5.0]
- Ensure R packages are correctly installed (#535)
- Make PyTA version a setting (#536)
- Add `libxml2-dev` to server `Dockerfile`, required by R `tidyverse` library (#539)
- Display stderr contents if R packages fail to install (#539)
- Do not display `testthat` failure messages when test case passes (#539)

## [v2.4.4]
- Add tidyverse as a default R tester package (#512)
- For the Haskell tester, make stack resolver a test setting (#526)
Expand Down
12 changes: 6 additions & 6 deletions client/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
flask==2.2.5;python_version<"3.8"
flask==2.3.3;python_version>="3.8"
flask==3.0.3;python_version>="3.8"
python-dotenv==0.21.1;python_version<"3.8"
python-dotenv==1.0.0;python_version>="3.8"
rq==1.15.1
redis==5.0.1
python-dotenv==1.0.1;python_version>="3.8"
rq==1.16.2
redis==5.0.4
jsonschema==4.17.3;python_version<"3.8"
jsonschema==4.20.0;python_version>="3.8"
jsonschema==4.22.0;python_version>="3.8"
Werkzeug==2.2.3;python_version<"3.8"
Werkzeug==2.3.8;python_version>="3.8"
Werkzeug==3.0.3;python_version>="3.8"
1 change: 1 addition & 0 deletions server/.dockerfiles/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ RUN apt-get update -y && \
libjpeg-dev \
libharfbuzz-dev \
libfribidi-dev \
libxml2-dev \
r-base

RUN useradd -ms /bin/bash $LOGIN_USER && \
Expand Down
5 changes: 4 additions & 1 deletion server/autotest_server/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -405,7 +405,10 @@ def update_test_settings(user, settings_id, test_settings, file_url):
try:
tester_settings["_env"] = tester_install.create_environment(tester_settings, env_dir, default_env)
except Exception as e:
raise Exception(f"create tester environment failed:\n{e}") from e
error_message = f"create tester environment failed:\n{e}"
if e.stderr:
error_message += f"\nDetails (captured stderr):\n{e.stderr}"
raise Exception(error_message) from e
test_settings["testers"][i] = tester_settings
test_settings["_files"] = files_dir
test_settings.pop("_error", None)
Expand Down
2 changes: 0 additions & 2 deletions server/autotest_server/testers/pyta/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
python-ta==1.4.2;python_version<"3.8"
python-ta==2.7.0; python_version>="3.8"
isort<5;python_version<"3.8"
5 changes: 5 additions & 0 deletions server/autotest_server/testers/pyta/settings_schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@
"pip_requirements": {
"title": "Package requirements",
"type": "string"
},
"pyta_version": {
"title": "PyTA version",
"type": "string",
"default": null
}
}
},
Expand Down
12 changes: 10 additions & 2 deletions server/autotest_server/testers/pyta/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,21 @@
import json
import subprocess

PYTA_VERSION_PREFIX = "python-ta=="
PYTA_VERSION = "2.7.0"


def create_environment(settings_, env_dir, _default_env_dir):
env_data = settings_.get("env_data", {})
python_version = env_data.get("python_version", "3")
pip_requirements = ["wheel"] + env_data.get("pip_requirements", "").split()
env_properties = ["wheel"] + env_data.get("pip_requirements", "").split()
pyta_version = env_data.get("pyta_version", PYTA_VERSION)
pyta_version = PYTA_VERSION_PREFIX + pyta_version
env_properties.append(pyta_version)
requirements = os.path.join(os.path.dirname(os.path.realpath(__file__)), "requirements.txt")
pip = os.path.join(env_dir, "bin", "pip")
subprocess.run([f"python{python_version}", "-m", "venv", "--clear", env_dir], check=True)
subprocess.run([pip, "install", "-r", requirements, *pip_requirements], check=True)
subprocess.run([pip, "install", "-r", requirements, *env_properties], check=True)
return {"PYTHON": os.path.join(env_dir, "bin", "python3")}


Expand All @@ -22,6 +28,8 @@ def settings():
python_versions = settings_["properties"]["env_data"]["properties"]["python_version"]
python_versions["enum"] = py_versions
python_versions["default"] = py_versions[-1]
pyta_version = settings_["properties"]["env_data"]["properties"]["pyta_version"]
pyta_version["default"] = PYTA_VERSION
return settings_


Expand Down
7 changes: 5 additions & 2 deletions server/autotest_server/testers/r/lib/r_tester_setup.R
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,13 @@ install_dep <- function(row) {
} else {
remote_type <- NA_character_
}
if (!('stringi' %in% rownames(installed.packages))) {
install.packages(name, configure.args="--disable-pkg-config")
}

# Check if package is already installed
# TODO: make this work for remote packages (with '/' in the name)
if (name %in% installed.packages() &&
if (name %in% rownames(installed.packages()) &&
(is.na(version) || version_satisfies_criterion(name, compare, version))) {
print(paste("Skipping '", name, "': package already installed", sep=""))
return()
Expand All @@ -61,7 +64,7 @@ install_dep <- function(row) {
}
}

if (!(name %in% installed.packages())) {
if (!(name %in% rownames(installed.packages()))) {
stop("ERROR: Could not install package ", name)
}
}
Expand Down
5 changes: 4 additions & 1 deletion server/autotest_server/testers/r/r_tester.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,10 @@ def run(self):
successes = 0
error = False
for result in self.result:
messages.append(result["message"])
# Only add message if not a success, as testthat reports failure messages only
if result["type"] != "expectation_success":
messages.append(result["message"])

if result["type"] == "expectation_success":
self.points_total += 1
successes += 1
Expand Down
8 changes: 7 additions & 1 deletion server/autotest_server/testers/r/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,13 @@ def create_environment(settings_, env_dir, default_env_dir):
env = {"R_LIBS_SITE": env_dir, "R_LIBS_USER": env_dir}

r_tester_setup = os.path.join(os.path.dirname(os.path.realpath(__file__)), "lib", "r_tester_setup.R")
subprocess.run(["Rscript", r_tester_setup, req_string], env={**os.environ, **env}, check=True)
subprocess.run(
["Rscript", r_tester_setup, req_string],
env={**os.environ, **env},
check=True,
text=True,
capture_output=True,
)

return {**env, "PYTHON": os.path.join(default_env_dir, "bin", "python3")}

Expand Down
9 changes: 5 additions & 4 deletions server/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
rq==1.15.1
rq==1.16.2
click==8.1.7
redis==5.0.1
redis==5.0.4
pyyaml==6.0.1
jsonschema==4.17.3;python_version<"3.8"
jsonschema==4.20.0;python_version>="3.8"
requests==2.31.0
jsonschema==4.22.0;python_version>="3.8"
requests==2.31.0;python_version<"3.8"
requests==2.32.3;python_version>="3.8"
psycopg2-binary==2.9.9
supervisor==4.2.5
Loading