Given the long pause before this release, it's hard to summarize what changed. Here's Github's automatically-generated release notes, including all merged PRs:
What's Changed
- Make RWS' main page / instead of /Ranking.html by @stefano-maggiolo in #1035
- Allow deeplinking of users in RWS by @stefano-maggiolo in #1037
- Fix extraction of translation messages by Babel by @lw in #1047
- Remove excessive whitespace in CWS license notice by @andreyv in #1049
- Fix notifications in CWS being translated after being formatted by @lw in #1046
- Updated Spanish translations. by @elsantodel90 in #1050
- Update Latvian translation by @andreyv in #1051
- Update Vietnamese translations by @kuroni in #1052
- RWS: add -y switch to allow unattended data drop by @tuankiet65 in #1057
- Update Vietnamese translations by @kuroni in #1053
- Ensure compiled translation .mo files are picked up during build phase by @lw in #1059
- Updated Lithuanian translation. by @vytisb in #1058
- Fix whitespace in consecutive {% trans %} blocks by @andreyv in #1063
- HTML fixes by @andreyv in #1064
- Translate Yes/No messages in the Official column of the submissions row by @andreyv in #1080
- Fix custom PostgreSQL domains not being used in table definitions by @lw in #1073
- Fix grammar in delete_sandbox() warning by @andreyv in #1092
- Clearer unofficial submissions in CWS by @stefano-maggiolo in #1091
- Add timezone field in italy_yaml format by @lucach in #1098
- Pagination and more macros by @stefano-maggiolo in #1101
- Fix RWS with score mode MAX_SUBTASK by @lucach in #1111
- Regenerate cms.pot file by @lw in #1114
- Follow up to the fix to #1107 by @stefano-maggiolo in #1115
- Fix updaters 26 and 36 leaving dump inconsistent by @lw in #1118
- Update Travis environment to Ubuntu 18.04 by @andreyv in #1161
- Add C++14 programming language by @andreyv in #1132
- Bump version of gevent, this is needed for Python 3.7 by @wil93 in #1143
- Don't open title page input file in binary mode in PrintingService by @magula in #1150
- Make PrintingService translatable by @magula in #1152
- korean translation update by @melongist-zz in #1169
- Let PdfFileMerger open the files to be merged itself by @magula in #1151
- Korean translation update by @junukwon7 in #1171
- Fix cmsImportContest when multiple IPs are provided by @wil93 in #1147
- Add feedback_level to italy_yaml loader by @lucach in #1144
- Make clients revalidate files by @magula in #1149
- Set up Jinja whitespace control in Babel mapping by @andreyv in #1130
- testlib: backport fix for #1056 by @andreyv in #1127
- Replace most subprocess.call() invocations with check_call() by @andreyv in #1128
- Do not show ranking credentials in ProxyService logs by @andreyv in #1129
- Fix +4 phase computation and add more phase tests by @andreyv in #1133
- Update Latvian translation by @andreyv in #1140
- Show original IP address of requests in AWS logs by @andreyv in #1131
- Fix issue #1159 by @ranaldmiao in #1164
- Fix misc issues regarding user tests with graders by @ranaldmiao in #1172
- While starting to look at typing, I found some code we took from CPython 2.7 and was not updated. Briefly tested manually, it looks like it's working (but please check, this is my first time touching CMS in quite some time). by @stefano-maggiolo in #1174
- Migrate CI to GitHub Actions by @fushar in #1176
- Fix typo in the AddSubmission script by @MaGaroo in #1178
- fix #1179 by @ranaldmiao in #1180
- Fix DumpExporter if a user test didn't compile by @fagu in #1184
- Let all services share the file cache directory by @fagu in #1183
- Enable automatic precaching by @fagu in #1185
- Add Language.executable_extension property by @andreyv in #1139
- Update to jQuery 3.6.0 by @andreyv in #1188
- Better default Nginx configuration by @wil93 in #1126
- Added German translation by @LennartF22 in #1121
- Update Czech translation by @SvizelPritula in #1190
- Italian contest loader is able to load contests with no participants by @MarcoUCM in #1193
- BugFix: Italian contest exporter and communication tasks by @MarcoUCM in #1196
- Fix ProxyService team.code encoding for user by @PPakalns in #1117
- Add no-users option to DumpImporter and DumpExporter by @ranaldmiao in #1165
- Fix CI by @edomora97 in #1199
- Fix support for services connected via IPv6 by @edomora97 in #1141
- Ignore wrong contest submissions in ProxyService by @edomora97 in #1142
- Join contest with current account by @MaGaroo in #1191
- Complete polygon loader language list by @MaGaroo in #1197
- fix: pin MarkupSafe to 2.0.1 (#33) by @SvizelPritula in #1211
- Updated Romanian translations by @CodeRadu in #1203
- Use docker-compose to run tests by @wil93 in #1221
- Handle IntegrityError on file commit gracefully by @magula in #1223
- Added Ukrainian translation by @arsijo in #1225
- Add support for importing score_precision in italian_yaml by @edomora97 in #1229
- Update Simplified Chinese translations by @psz2007 in #1231
- Adding C++17 to the default list of allowed programming language by @davinci-tech in #1232
- Simplify testing with pytest by @wil93 in #1233
- Enhance Korean translation a bit. by @leejseo in #1237
- Extend and fix Russian translations by @maleksware in #1241
- Fix sidebar "Testing" link not being active when on testing page by @prandla in #1249
- Install a SIGTERM handler in addition to SIGINT by @prandla in #1246
- Update Estonian translation by @prandla in #1248
- Update instructions on usage of docker compose by @wil93 in #1256
- Upgrade gevent and greenlet by @wil93 in #1255
- Make oom-heap.c test work with newer GCC by @SvizelPritula in #1210
- Upgrade to isolate v2 by @wil93 in #1222
- Make the yaml importer load multiple languages. by @veluca93 in #1253
- Add docker-compose.dev.yml and dev/test scripts by @wil93 in #1262
- fix missing spaces between sentences in task_submissions.html by @prandla in #1250
- Upstream two more improvements to italy_yaml by @veluca93 in #1263
- Fix submissions_status RPC when UNION ALL doesn't keep the order by @edomora97 in #1201
- Fail in RunFunctionalTests if tests throw exceptions. by @veluca93 in #1273
- Fix CI not reporting error when unit tests fail but functional tests pass. by @wil93 in #1274
- Remove python2. by @veluca93 in #1272
- [italy_yaml] Load all contest parameters from contest.yaml by @Virv12 in #1276
- Compatibility with Python 3.12. by @veluca93 in #1271
- Use CODECOV_TOKEN to fix rate limit issue. by @wil93 in #1278
- Support for c++20 by @Virv12 in #1275
- Add missing templates for submission export by @Virv12 in #1279
- Support for pypy3 by @melongist in #1206
- Update bcrypt requirement from <3.2,>=3.1 to >=3.1,<4.3 by @dependabot in #1265
- Update coverage requirement from <4.6,>=4.5 to >=4.5,<7.7 by @dependabot in #1266
- Codecov: collect test analytics by @wil93 in #1281
- Update patool requirement from <1.13,>=1.12 to >=1.12,<3.1 by @dependabot in #1264
- Test more language variants in communication by @veluca93 in #1280
- Bump gevent from 23.9.0.post1 to 24.11.1 by @dependabot in #1284
- Bump psycopg2 from 2.9.7 to 2.9.10 by @dependabot in #1282
- Update netifaces requirement from <0.11,>=0.10 to >=0.10,<0.12 by @dependabot in #1285
- Increase PR limit for dependabot by @wil93 in #1288
- Update pypdf2 requirement from <1.27,>=1.26 to >=1.26,<3.1 by @dependabot in #1298
- Update pyxdg requirement from <0.27,>=0.26 to >=0.26,<0.29 by @dependabot in #1295
- Update patool requirement from <3.1,>=1.12 to >=1.12,<3.2 by @dependabot in #1294
- Update chardet requirement from <3.1,>=3.0 to >=3.0,<5.3 by @dependabot in #1293
- Listen on IPv4 only by default. by @veluca93 in #1299
- Bump pycryptodomex from 3.19.0 to 3.21.0 by @dependabot in #1292
- Update beautifulsoup4 requirement from <4.9,>=4.8 to >=4.8,<4.13 by @dependabot in #1287
- Update pyyaml requirement from <5.4,>=5.3 to >=5.3,<6.1 by @dependabot in #1286
- Update psutil requirement from <5.6,>=5.5 to >=5.5,<6.2 by @dependabot in #1283
- Customizable documentation by @Virv12 in #1300
- Mark installation through system packages as unsupported. by @veluca93 in #1301
- Prometheus Exporter by @eliasol in #1303
- Have ranking listen on localhost by default by @veluca93 in #1304
- Add a Telegram bot to send announcements and reply to questions. by @veluca93 in #1305
- Update prometheus-client requirement from <0.8,>=0.7 to >=0.7,<0.22 by @dependabot in #1306
- Update docs in preparation for release by @wil93 in #1307
- Update CI badge in README by @wil93 in #1308
- Pull new translations and add script to map files by @wil93 in #1309
- Remove non-installed instructions from docs by @wil93 in #1310
New Contributors
- @kuroni made their first contribution in #1052
- @magula made their first contribution in #1150
- @melongist-zz made their first contribution in #1169
- @junukwon7 made their first contribution in #1171
- @ranaldmiao made their first contribution in #1164
- @fushar made their first contribution in #1176
- @MaGaroo made their first contribution in #1178
- @LennartF22 made their first contribution in #1121
- @SvizelPritula made their first contribution in #1190
- @MarcoUCM made their first contribution in #1193
- @PPakalns made their first contribution in #1117
- @CodeRadu made their first contribution in #1203
- @arsijo made their first contribution in #1225
- @psz2007 made their first contribution in #1231
- @davinci-tech made their first contribution in #1232
- @leejseo made their first contribution in #1237
- @maleksware made their first contribution in #1241
- @prandla made their first contribution in #1249
- @Virv12 made their first contribution in #1276
- @melongist made their first contribution in #1206
- @eliasol made their first contribution in #1303
Full Changelog: v1.4.rc1...v1.5.0
We will try to release more often an give a better overview of the changes in the future.