Skip to content

Commit f2012fd

Browse files
authored
Merge pull request #540 from pretendWhale/release_v2.5.0
Release v2.5.0
2 parents 13f2b63 + d2003e6 commit f2012fd

File tree

12 files changed

+56
-21
lines changed

12 files changed

+56
-21
lines changed

.pre-commit-config.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
repos:
22
- repo: https://github.com/psf/black
3-
rev: 23.12.1
3+
rev: 24.8.0
44
hooks:
55
- id: black
66
- repo: https://github.com/pycqa/flake8
7-
rev: 6.1.0
7+
rev: 7.1.1
88
hooks:
99
- id: flake8

Changelog.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
# CHANGELOG
22
All notable changes to this project will be documented here.
33

4+
## [v2.5.0]
5+
- Ensure R packages are correctly installed (#535)
6+
- Make PyTA version a setting (#536)
7+
- Add `libxml2-dev` to server `Dockerfile`, required by R `tidyverse` library (#539)
8+
- Display stderr contents if R packages fail to install (#539)
9+
- Do not display `testthat` failure messages when test case passes (#539)
10+
411
## [v2.4.4]
512
- Add tidyverse as a default R tester package (#512)
613
- For the Haskell tester, make stack resolver a test setting (#526)

client/requirements.txt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
flask==2.2.5;python_version<"3.8"
2-
flask==2.3.3;python_version>="3.8"
2+
flask==3.0.3;python_version>="3.8"
33
python-dotenv==0.21.1;python_version<"3.8"
4-
python-dotenv==1.0.0;python_version>="3.8"
5-
rq==1.15.1
6-
redis==5.0.1
4+
python-dotenv==1.0.1;python_version>="3.8"
5+
rq==1.16.2
6+
redis==5.0.4
77
jsonschema==4.17.3;python_version<"3.8"
8-
jsonschema==4.20.0;python_version>="3.8"
8+
jsonschema==4.22.0;python_version>="3.8"
99
Werkzeug==2.2.3;python_version<"3.8"
10-
Werkzeug==2.3.8;python_version>="3.8"
10+
Werkzeug==3.0.3;python_version>="3.8"

server/.dockerfiles/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ RUN apt-get update -y && \
3434
libjpeg-dev \
3535
libharfbuzz-dev \
3636
libfribidi-dev \
37+
libxml2-dev \
3738
r-base
3839

3940
RUN useradd -ms /bin/bash $LOGIN_USER && \

server/autotest_server/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,10 @@ def update_test_settings(user, settings_id, test_settings, file_url):
405405
try:
406406
tester_settings["_env"] = tester_install.create_environment(tester_settings, env_dir, default_env)
407407
except Exception as e:
408-
raise Exception(f"create tester environment failed:\n{e}") from e
408+
error_message = f"create tester environment failed:\n{e}"
409+
if e.stderr:
410+
error_message += f"\nDetails (captured stderr):\n{e.stderr}"
411+
raise Exception(error_message) from e
409412
test_settings["testers"][i] = tester_settings
410413
test_settings["_files"] = files_dir
411414
test_settings.pop("_error", None)
Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1 @@
1-
python-ta==1.4.2;python_version<"3.8"
2-
python-ta==2.7.0; python_version>="3.8"
31
isort<5;python_version<"3.8"

server/autotest_server/testers/pyta/settings_schema.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@
2525
"pip_requirements": {
2626
"title": "Package requirements",
2727
"type": "string"
28+
},
29+
"pyta_version": {
30+
"title": "PyTA version",
31+
"type": "string",
32+
"default": null
2833
}
2934
}
3035
},

server/autotest_server/testers/pyta/setup.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,21 @@
33
import json
44
import subprocess
55

6+
PYTA_VERSION_PREFIX = "python-ta=="
7+
PYTA_VERSION = "2.7.0"
8+
69

710
def create_environment(settings_, env_dir, _default_env_dir):
811
env_data = settings_.get("env_data", {})
912
python_version = env_data.get("python_version", "3")
10-
pip_requirements = ["wheel"] + env_data.get("pip_requirements", "").split()
13+
env_properties = ["wheel"] + env_data.get("pip_requirements", "").split()
14+
pyta_version = env_data.get("pyta_version", PYTA_VERSION)
15+
pyta_version = PYTA_VERSION_PREFIX + pyta_version
16+
env_properties.append(pyta_version)
1117
requirements = os.path.join(os.path.dirname(os.path.realpath(__file__)), "requirements.txt")
1218
pip = os.path.join(env_dir, "bin", "pip")
1319
subprocess.run([f"python{python_version}", "-m", "venv", "--clear", env_dir], check=True)
14-
subprocess.run([pip, "install", "-r", requirements, *pip_requirements], check=True)
20+
subprocess.run([pip, "install", "-r", requirements, *env_properties], check=True)
1521
return {"PYTHON": os.path.join(env_dir, "bin", "python3")}
1622

1723

@@ -22,6 +28,8 @@ def settings():
2228
python_versions = settings_["properties"]["env_data"]["properties"]["python_version"]
2329
python_versions["enum"] = py_versions
2430
python_versions["default"] = py_versions[-1]
31+
pyta_version = settings_["properties"]["env_data"]["properties"]["pyta_version"]
32+
pyta_version["default"] = PYTA_VERSION
2533
return settings_
2634

2735

server/autotest_server/testers/r/lib/r_tester_setup.R

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,13 @@ install_dep <- function(row) {
3838
} else {
3939
remote_type <- NA_character_
4040
}
41+
if (!('stringi' %in% rownames(installed.packages))) {
42+
install.packages(name, configure.args="--disable-pkg-config")
43+
}
4144

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

64-
if (!(name %in% installed.packages())) {
67+
if (!(name %in% rownames(installed.packages()))) {
6568
stop("ERROR: Could not install package ", name)
6669
}
6770
}

server/autotest_server/testers/r/r_tester.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,10 @@ def run(self):
3434
successes = 0
3535
error = False
3636
for result in self.result:
37-
messages.append(result["message"])
37+
# Only add message if not a success, as testthat reports failure messages only
38+
if result["type"] != "expectation_success":
39+
messages.append(result["message"])
40+
3841
if result["type"] == "expectation_success":
3942
self.points_total += 1
4043
successes += 1

0 commit comments

Comments
 (0)