Skip to content

Commit 85cb19c

Browse files
Merge pull request #109 from FSU-ACM/release
v1.5.0 updates
2 parents 29b6b28 + e4a7d24 commit 85cb19c

File tree

87 files changed

+1666
-1460
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+1666
-1460
lines changed

Dockerfile

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM python:3.9-slim
1+
FROM python:3.10-slim
22
LABEL maintainer="ACM at FSU <contact@fsu.acm.org>"
33

44
ENV PYTHONUNBUFFERED 1
@@ -11,6 +11,8 @@ RUN apt-get update \
1111
&& apt-get install -y --no-install-recommends build-essential \
1212
# Translations dependencies
1313
&& apt-get install -y gettext \
14+
# mysqlclient dependency
15+
&& apt-get install -y pkg-config \
1416
# MariaDB dependency
1517
&& apt-get install -y libmariadb-dev \
1618
# cleaning up unused files

Pipfile

+4-6
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ verify_ssl = true
44
name = "pypi"
55

66
[packages]
7-
Django = ">=4,<4.2"
8-
mysqlclient = "*"
9-
redis = ">=3"
7+
Django = ">=4.2,<4.3"
8+
mysqlclient = ">=1.4.3"
9+
redis = ">=3.4.0"
1010
hiredis = "*"
1111
django-import-export = "*"
1212
celery = "*"
@@ -20,8 +20,6 @@ channels = "*"
2020
flower = "*"
2121

2222
[dev-packages]
23-
pylint = "*"
24-
autopep8 = "*"
2523

2624
[requires]
27-
python_version = "3.9"
25+
python_version = "3.10"

Pipfile.lock

+489-692
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
File renamed without changes.

deploy/prod/bastion/docker-stack.yml

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ services:
1010
# Domain name
1111
LETSENCRYPT_HOST: bastion.cs.fsu.edu
1212
VIRTUAL_HOST: bastion.cs.fsu.edu
13+
SERVER_TOKENS: 'off'
1314

1415
# Time config
1516
CONTAINER_TIMEZONE: America/New_York

deploy/prod/contestsuite/config/nginx.conf

+31-7
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,31 @@ server {
99
listen 80;
1010
server_name contest.cs.fsu.edu;
1111

12+
server_tokens off;
13+
14+
location = /apple-touch-icon.png {
15+
access_log off;
16+
return 301 $scheme://$server_name/static/favicons$request_uri;
17+
}
18+
19+
location = /favicon.ico {
20+
access_log off;
21+
return 301 $scheme://$server_name/static/favicons$request_uri;
22+
}
23+
1224
location = /robots.txt {
13-
return 200 "User-agent: *\nDisallow: /flower/\n";
25+
access_log off;
26+
return 200 "User-agent: *\nDisallow: /announcements/\nDisallow: /flower/\nDisallow: /teams/\n";
27+
}
28+
29+
location = /sitemap.xml {
30+
access_log off;
31+
return 404;
1432
}
1533

1634
location / {
1735
add_header Cache-Control "no-cache, no-store";
36+
add_header X-XSS-Protection "1; mode=block";
1837

1938
proxy_pass http://gunicorn;
2039
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
@@ -23,17 +42,20 @@ server {
2342
}
2443

2544
location /static {
26-
expires 1M;
2745
add_header Cache-Control "public, no-transform";
46+
expires 6M;
47+
add_header X-XSS-Protection "1; mode=block";
2848

29-
alias /usr/share/nginx/html/static/django;
49+
alias /usr/share/nginx/html/static/django/;
3050
sendfile on;
31-
tcp_nopush on;
51+
tcp_nopush on;
52+
try_files $uri $uri/ =404;
3253
}
3354

3455
location /flower {
3556
add_header Cache-Control "no-cache, no-store";
3657
add_header X-Robots-Tag "noindex" always;
58+
add_header X-XSS-Protection "1; mode=block";
3759

3860
proxy_pass http://flower;
3961
proxy_set_header Host $host;
@@ -44,12 +66,14 @@ server {
4466
}
4567

4668
location /flower/static {
47-
expires 6M;
4869
add_header Cache-Control "public, no-transform";
70+
expires 6M;
4971
add_header X-Robots-Tag "noindex" always;
72+
add_header X-XSS-Protection "1; mode=block";
5073

51-
alias /usr/share/nginx/html/static/flower;
74+
alias /usr/share/nginx/html/static/flower/;
5275
sendfile on;
53-
tcp_nopush on;
76+
tcp_nopush on;
77+
try_files $uri $uri/ =404;
5478
}
5579
}

deploy/prod/contestsuite/docker-stack.yml

+6-6
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ services:
66
environment:
77
LETSENCRYPT_HOST: contest.cs.fsu.edu
88
VIRTUAL_HOST: contest.cs.fsu.edu
9-
9+
SERVER_TOKENS: 'off'
1010
TZ: America/New_York
1111
volumes:
1212
- ./config/nginx.conf:/etc/nginx/conf.d/nginx.conf:ro
@@ -67,7 +67,7 @@ services:
6767
# Analytics
6868
GTAG: /run/secrets/contestsuite_gtag # Google site tag
6969
volumes:
70-
- django_app:/app/media
70+
- django_media:/app/media
7171
- django_static:/app/static
7272
networks:
7373
- nginx-backend
@@ -150,7 +150,7 @@ services:
150150
ANNOUNCEMENT_WEBHOOK_URL: /run/secrets/contestsuite_announcement_channel_url # URL of announcement channel webhook
151151
BOT_CHANNEL_WEBHOOK_URL: /run/secrets/contestsuite_bot_channel_url # URL of bot control channel webhook
152152
volumes:
153-
- django_app:/app/media
153+
- django_media:/app/media
154154
- django_static:/app/static
155155
networks:
156156
- db-backend
@@ -217,7 +217,7 @@ services:
217217
FLOWER_COOKIE_KEY: /run/secrets/contestsuite_flower_cookie_key
218218
volumes:
219219
- django_static:/app/static
220-
- flower_static:/usr/local/lib/python3.9/site-packages/flower/static
220+
- flower_static:/usr/local/lib/python3.10/site-packages/flower/static
221221
networks:
222222
- nginx-backend
223223
- db-backend
@@ -261,7 +261,7 @@ services:
261261
failure_action: rollback
262262
redis:
263263
image: redis:5-buster
264-
command: redis-server --save 600 1 --loglevel warning
264+
command: redis-server --save 600 1
265265
environment:
266266
TZ: America/New_York
267267
volumes:
@@ -340,8 +340,8 @@ secrets:
340340
contestsuite_gtag:
341341
external: true
342342
volumes:
343-
django_app:
344343
django_db:
344+
django_media:
345345
django_static:
346346
flower_static:
347347
rabbitmq:

deploy/prod/domjudge/docker-stack.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ services:
1010
# Domain name
1111
LETSENCRYPT_HOST: domjudge.cs.fsu.edu
1212
VIRTUAL_HOST: domjudge.cs.fsu.edu
13-
13+
SERVER_TOKENS: 'off'
14+
1415
# Time config
1516
CONTAINER_TIMEZONE: America/New_York
1617

requirements-dev.txt

+49-60
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,61 @@
11
-i https://pypi.python.org/simple
2-
astroid==2.14.2 ; python_full_version >= '3.7.2'
3-
autopep8==2.0.1
4-
dill==0.3.6 ; python_version < '3.11'
5-
isort==5.12.0 ; python_full_version >= '3.8.0'
6-
lazy-object-proxy==1.9.0 ; python_version >= '3.7'
7-
mccabe==0.7.0 ; python_version >= '3.6'
8-
platformdirs==3.0.0 ; python_version >= '3.7'
9-
pycodestyle==2.10.0 ; python_version >= '3.6'
10-
pylint==2.16.2
11-
tomli==2.0.1 ; python_version < '3.11'
12-
tomlkit==0.11.6 ; python_version >= '3.6'
13-
typing-extensions==4.5.0 ; python_version >= '3.7'
14-
wrapt==1.14.1 ; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
15-
aiohttp==3.7.4.post0 ; python_version >= '3.6'
16-
amqp==5.1.1 ; python_version >= '3.6'
17-
asgiref==3.6.0 ; python_version >= '3.7'
18-
async-timeout==3.0.1 ; python_full_version >= '3.5.3'
19-
attrs==22.2.0 ; python_version >= '3.6'
20-
billiard==3.6.4.0
21-
celery==5.2.7
22-
certifi==2022.12.7 ; python_version >= '3.6'
2+
aiohttp==3.7.4.post0; python_version >= '3.6'
3+
amqp==5.1.1; python_version >= '3.6'
4+
asgiref==3.7.2; python_version >= '3.7'
5+
async-timeout==3.0.1; python_full_version >= '3.5.3'
6+
attrs==23.1.0; python_version >= '3.7'
7+
billiard==4.1.0; python_version >= '3.7'
8+
celery==5.3.1
9+
certifi==2023.7.22; python_version >= '3.6'
2310
channels==4.0.0
24-
chardet==4.0.0 ; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
25-
charset-normalizer==3.0.1 ; python_full_version >= '3.6.0'
26-
click==8.1.3 ; python_version >= '3.7'
27-
click-didyoumean==0.3.0 ; python_full_version >= '3.6.2' and python_full_version < '4.0.0'
11+
chardet==4.0.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
12+
charset-normalizer==3.2.0; python_full_version >= '3.7.0'
13+
click==8.1.7; python_version >= '3.7'
14+
click-didyoumean==0.3.0; python_full_version >= '3.6.2' and python_full_version < '4.0.0'
2815
click-plugins==1.1.1
29-
click-repl==0.2.0
30-
defusedxml==0.7.1 ; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
31-
deprecated==1.2.13 ; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
32-
diff-match-patch==20200713 ; python_version >= '2.7'
16+
click-repl==0.3.0; python_version >= '3.6'
17+
cron-descriptor==1.4.0
18+
defusedxml==0.7.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
19+
deprecated==1.2.14; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
20+
diff-match-patch==20230430; python_version >= '3.7'
3321
discord.py==1.7.3
34-
django==4.1.7
35-
django-celery-beat==2.4.0
22+
django==4.2.4
23+
django-celery-beat==2.5.0
3624
django-hashid-field==3.3.7
37-
django-import-export==3.0.2
38-
django-timezone-field==5.0 ; python_version >= '3.7' and python_version < '4.0'
39-
et-xmlfile==1.1.0 ; python_version >= '3.6'
40-
flower==1.2.0
41-
gunicorn==20.1.0
42-
hashids==1.3.1 ; python_version >= '2.7'
43-
hiredis==2.2.2
44-
humanize==4.6.0 ; python_version >= '3.7'
45-
idna==3.4 ; python_version >= '3.5'
46-
kombu==5.2.4 ; python_version >= '3.7'
25+
django-import-export==3.2.0
26+
django-timezone-field==6.0; python_version >= '3.8' and python_version < '4.0'
27+
et-xmlfile==1.1.0; python_version >= '3.6'
28+
flower==2.0.1
29+
gunicorn==21.2.0
30+
hashids==1.3.1; python_version >= '2.7'
31+
hiredis==2.2.3
32+
humanize==4.8.0; python_version >= '3.8'
33+
idna==3.4; python_version >= '3.5'
34+
kombu==5.3.1; python_version >= '3.8'
4735
markuppy==1.14
48-
multidict==6.0.4 ; python_version >= '3.7'
49-
mysqlclient==2.1.1
36+
multidict==6.0.4; python_version >= '3.7'
37+
mysqlclient==2.2.0
5038
odfpy==1.4.1
51-
openpyxl==3.1.1
52-
packaging==23.0 ; python_version >= '3.7'
53-
prometheus-client==0.16.0 ; python_version >= '3.6'
54-
prompt-toolkit==3.0.36 ; python_full_version >= '3.6.2'
55-
python-crontab==2.7.1
56-
python-dateutil==2.8.2 ; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
57-
pytz==2022.7.1
58-
pyyaml==6.0
39+
openpyxl==3.1.2
40+
packaging==23.1; python_version >= '3.7'
41+
prometheus-client==0.17.1; python_version >= '3.6'
42+
prompt-toolkit==3.0.39; python_full_version >= '3.7.0'
43+
python-crontab==3.0.0
44+
python-dateutil==2.8.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
45+
pytz==2023.3
46+
pyyaml==6.0.1
5947
redis==4.1.4
60-
requests==2.28.2
61-
setuptools==67.3.2 ; python_version >= '3.7'
48+
requests==2.31.0
6249
six==1.16.0
63-
sqlparse==0.4.3 ; python_version >= '3.5'
64-
tablib[html,ods,xls,xlsx,yaml]==3.3.0 ; python_version >= '3.7'
65-
tornado==6.2 ; python_version >= '3.7'
66-
tzdata==2022.7 ; python_version >= '2'
67-
urllib3==1.26.14 ; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
68-
vine==5.0.0 ; python_version >= '3.6'
50+
sqlparse==0.4.4; python_version >= '3.5'
51+
tablib[html,ods,xls,xlsx,yaml]==3.5.0; python_version >= '3.8'
52+
tornado==6.3.3; python_version >= '3.8'
53+
typing-extensions==4.7.1; python_version >= '3.7'
54+
tzdata==2023.3; python_version >= '2'
55+
urllib3==2.0.4; python_version >= '3.7'
56+
vine==5.0.0; python_version >= '3.6'
6957
wcwidth==0.2.6
58+
wrapt==1.15.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
7059
xlrd==2.0.1
7160
xlwt==1.3.0
72-
yarl==1.8.2 ; python_version >= '3.7'
61+
yarl==1.9.2; python_version >= '3.7'

0 commit comments

Comments
 (0)