Releases: icpctools/icpctools
Releases · icpctools/icpctools
v2.7.1332
Update version and changelog Update the version and changelog after the 2.6 release.
v2.6.1331
What's Changed
- 2.5 release updates by @deboer-tim in #993
- Change PENDING_COLOR to (66,114,245) by @FinnLidbetter in #992
- Initial floor generator for Astana by @deboer-tim in #995
- Implement new honors awards by @nickygerritsen in #997
- Bump actions/download-artifact from 3 to 4.1.7 in /.github/workflows by @dependabot[bot] in #998
- Bump upload-artifact to be in sync with download-artifact by @nickygerritsen in #999
- Floor map v8 by @deboer-tim in #1000
- Update foundation logo by @deboer-tim in #1001
- Group winners award logic by @nickygerritsen in #1003
- Update shebangs to more generic version by @maartenweyns in #1004
- Simplify presenter vs client by @deboer-tim in #1005
- Use better username for staff user by @nickygerritsen in #1006
- Fix before/numSolved for honors or other awards by @nickygerritsen in #1007
- Avoid divide by zero when <4 teams in org logo pres by @deboer-tim in #1008
- Countdown linting and svUID by @deboer-tim in #1011
- Re-enable team desktop image generation by @deboer-tim in #1009
- Improve person team validation by @deboer-tim in #1010
- Update VLC by @deboer-tim in #1012
- Tracing for team id by @deboer-tim in #1013
- Autocorrect presentation admin CDS root with path by @deboer-tim in #1014
- Update Resolver CDS docs by @deboer-tim in #1015
- Always draw recent background in helper function by @zalenski in #1016
- Change presenter done updating logic to warning by @nickygerritsen in #1017
- Rename analyst to staff by @deboer-tim in #1018
- Fix --singleStep without argument by @nickygerritsen in #1019
- Add toggle to show password for CDS login by @nickygerritsen in #1020
- Reload file references in CDS by @deboer-tim in #1021
- Adjust number of rows to avoid orphans by @zalenski in #1022
- Block setting countdown below 30s by @deboer-tim in #1023
- Balloon npe by @deboer-tim in #1024
- Update floor map generator for Astana by @deboer-tim in #1025
- Fix modified file ref handling by @deboer-tim in #1026
- Allow template for group citation by @nickygerritsen in #1027
- Use _ in nanosecond constants by @zalenski in #1029
- Fix duplicate logo file references by @deboer-tim in #1031
- Remove HLS cache cleaning output by @deboer-tim in #1030
- Update contest objects directly in the contest by @deboer-tim in #1036
- Do not highlight group winners photo list teams by @nickygerritsen in #1034
- Do not count teams double when they have multiple medals by @nickygerritsen in #1032
- Add special case to team list photo presentation: don't stretch 1 row, 2 columns vertically by @nickygerritsen in #1033
- Do not show scoreboard before showing group winners photo screen by @nickygerritsen in #1035
- Do not remove attaching local resources after reading feed by @nickygerritsen in #1037
- Add first solution for 2022 and 2023 by @nickygerritsen in #1038
- Fix ConcurrentModificationException in dropUntrustedListeners() by @deboer-tim in #1039
- Fix position of group winners title by @nickygerritsen in #1040
- Fix displaying header of team photo display by @nickygerritsen in #1043
- Add a rule for space to collation, so sorting works correctly by @nickygerritsen in #1044
- Reduce log messages on file change by @deboer-tim in #1045
- Team video property support by @deboer-tim in #1046
- Check if people are still logged in regularly by @nickygerritsen in #1048
- Update info about CCSes in readme by @nickygerritsen in #1049
- Fix check for existing reaction videos by @deboer-tim in #1051
- CDS support for team detail presentation by @deboer-tim in #1052
- Show team name on admin for team detail form by @nickygerritsen in #1053
- Team Detail presentation by @deboer-tim in #1054
- Allow to send empty team detail command by @nickygerritsen in #1055
- Take into account prefix when clearing team detail by @nickygerritsen in #1056
- Fix odd font/text in timeline presentation by @deboer-tim in #1057
- Promethius metrics by @deboer-tim in #1059
- Increase presentation memory by @deboer-tim in #1060
- Update Batik dependency by @deboer-tim in #1042
- Flush images in team detail by @deboer-tim in #1061
- Add back support for team photos to image generator by @deboer-tim in #1062
- Update by @deboer-tim in #1063
- Code cleanup by @deboer-tim in #1064
- Fix resolver speed documentation by @deboer-tim in #1067
- Pre-Jakarta cleanup by @deboer-tim in #1068
- Update to latest WLP, Jakarta specs by @deboer-tim in #1069
- Update CI checkout action by @deboer-tim in #1070
- Auto build Builder container on changes by @nickygerritsen in #1071
- Client-side support for draft spec REL_TIME changes by @deboer-tim in #1078
- Update Java version in readmes by @deboer-tim in #1079
- Add country subdivision support by @deboer-tim in #1081
- Drop CDS output support for 2020-03 spec by @deboer-tim in #1080
- Event feed support for REL_TIME penalty by @deboer-tim in #1083
- Support draft spec REL_TIME in scoreboard by @deboer-tim in #1084
- Fix WLP build by @deboer-tim in #1085
- Add missing regex to help by @deboer-tim in #1086
- Never pass through cursor sizes smaller than 1x1. by @meisterT in #1090
- Handle the case when an honors awards has an empty list by @nickygerritsen in #1093
- fix: update /api spec version to draft by @deboer-tim in #1095
- Add IntelliJ IML's by @nickygerritsen in #1096
- fix test data count in public feed by @deboer-tim in #1097
- Fix error when deleting configuration objects by @deboer-tim in #1098
- Explicit log wrong logo's to missing-data.tsv by @vmcj in #1099
- Remove unused code by @vmcj in #1101
- Implement (some) idea suggestions by @vmcj in #1100
- Move some duplication to its own functions by @vmcj in #1102
- Try all possible logo's by @vmcj in #1103
- Default to released spec and change how we handle draft spec by @deboer-tim in #1105
- Fix web scoreboard formatting by @deboer-tim in #1106
- Pass the correct image to the extracted function by @vmcj in #1107
- First pass to read SVG files by @vmcj in https:...
v2.6.1330
Improve light/dark lookup and related image generator This fixes three related problems I found while testing different scenarios with light/dark/untagged logos: 1. Improved matching for two scenarios: - If you have 3 filerefs (light, dark, no tag) and request without a tag, you should get the untagged one. - If you have 2 filerefs (light, no tag) and request the dark tag, you should get the one with no tag. These are edge cases that can sometimes work depending on what order files are loaded in, but the changes in ContestObject make sure it works predictably. Files are essentially in three groups: things that match exactly, things that don't match but don't have a conflicting/opposite tag, and everything else (i.e. conflicting tags). We look for files in the first non-empty of these sets. 2. The ImageGenerator produces a contest logo/banner preview and an org logo preview, each with images on a dark, grey, and white background. Prior to this it showed the dark logo on the first two backgrounds and light on the white background. Now it tries to find the best dark, no tag, and light logos respectively, which helps you understand if you have all three or any combination which are likely to be loaded. 3. If you point at a contest location with no contest.json or .yaml (as we do with the /shared folder for WFs), there is no 'contest', so we never try to load the contest logo or banner. As a result, images/contest-preview.png is empty. This changes the disk contest model to look for these resources when there is no contest.
v2.6.1329
Allow arbitrary tags while generating
v2.6.1326
Add compatibility section to main readme Adds a new section to the main readme showing Java/spec version compatibility to be a bit more explicit and clear. Also fix two old/broken links in the CDS readme.
v2.6.1325
Handle null values for toTeamIds When sending a broadcast (2023_06 spec), `to_team_id` is null, and the code creates `[null]` for `to_team_ids`, causing verification failure with: Clarification to unknown team null Clarification between teams This is introduced from 39ac2647772a52aee5e3cce886a45b66bd7fa977
v2.6.1324
URL account tokens for reaction videos
Adds account-specific token parameters to reaction video downloads. Any client using
the url as-is (without basic auth) can download the file as the given user.
This allows (e.g.) web-based clients to pass the url to players like video.js that
support https but not basic auth.
The token is a one-way hash based on the account user and password. It is only
implemented for reaction videos for now to get some use and feedback, but could be
used for other 'file downloads' as well. Since all traffic is via https it could
probably use a simpler algorithm, but this can easily be changed later.
I moved the existing static method used to determine which account is making any
request to HttpHelper since it is not contest-specific, and added the new token
helpers there.
Example of reaction video in /submissions or event-feed after this change:
{"href":"contests/baku-live/submissions/1/reaction.webcam?token=DSjPuOj7OL9HLxEtMe0a5Mrl1vGCz2N2cO1bidDA=","filename":"reaction.webcam.m2ts","mime":"video/m2ts","tags":["webcam"]}],"contest_time":"0:07:47.704","time":"2025-05-26T09:55:53.702-04:00"}
v2.6.1323
Reaction video tagging
We record webcam and desktop for reactions videos, but there is only one reaction
property, so we've been serving desktop as one file and webcam as another, i.e.:
{"id":"2",... "reaction":[{"href":"contests/baku-live/submissions/2/reaction-webcam","filename":"reaction-webcam.m2ts","mime":"video/m2ts"},{"href":"contests/baku-live/submissions/2/reaction-desktop","filename":"reaction-desktop.m2ts","mime":"video/m2ts"}]}
The only way you could tell these part was based on the filename or url - but now the spec
has tags, which are a much better way to differentiate them.
This PR makes two changes: renaming the files to use '.' instead of '-' to match the variant
format in the draft spec, and adding support for these tags. The new output looks like:
{"id":"2",... "reaction":[{"href":"contests/baku-live/submissions/2/reaction.webcam","filename":"reaction.webcam.ts","mime":"video/mp2t","tags":["webcam"]},{"href":"contests/baku-live/submissions/2/reaction.desktop","filename":"reaction.desktop.ts","mime":"video/mp2t","tags":["desktop"]}]}
(file extension and mimetype already changed via PR #1236)
v2.6.1322
Add problem attachment support Add attachments to problems as per https://github.com/icpc/ccs-specs/pull/226.
v2.6.1321
Improve mime type handling, especially for video Fixes three things: 1. Move the existing utility functions out of DiskContestSource to create a reusable mime type utility class, to avoid some of the duplication and differences in behaviour. 2. The mime type wasn't being set when downloading reaction videos - but using the new util fixes this. 3. When we started supporting MPEG-TS there was conflicting information about the correct file extension and mime type, and based on google AI and video.js we got it wrong: MPEG Transport Stream (MPEG 2 transport stream) <-- this is what we actually support File extension: .ts Mime type: video/mp2t 188-byte packets MPEG-2 Transport Stream <-- variant used by Blu-ray & AVCHD disks File extension: .m2ts Mime type: video/m2ts 192-byte packets (4 bytes added to help file seeking) This switches us to use the file extension and mime type of the first.