Changelog
v0.25.2 (2025-05-10)
- More zap -> slog conversions
- Codebase-wide refactorings
- Don't rely on zip package anymore for archive/test
- Barebones external resources UI
- Migrate more components to htmx
- Autoformat LaTeX in Markdown editor
- New LaTeX Math parser in Markdown (can now do
$1$ $2$without issue) - Upgrade to tailwind v4
- Start migrating html templates to templ
- Add page for printing problem statements
v0.25.1 (2024-12-11)
- Latest problems view at the bottom of the page
- Start using htmx for some page parts
- Use slog context and move a lot of usages of zap over to slog
- Grader page for compilation commands
- Discord embeds for audit log
- Initial linking with Discord integration
- Slightly overhaul UI for adding tests
- Updated README.md
- User generation UI for admins
- Contrib tool for contest user generation
- Internal refactoring
- Add english translations for emails
- Add barebones support for PHP and Rust
- Support for TWIPLA Analytics
- Measure number of SQL queries for admins
- Problem list filter for submissions
- Form to view another user's progress checklist (exposes functionality already present)
- Tool to warmup markdown statement cache
- More semantic HTML + accessibility
v0.25.0 (2024-05-18)
- The number wasn't incremented, but many changes were made since January
- List of changes by month:
- May
- Improve polygon archive parsing;
- Save history in problem search so pressing back in the browser goes to previous page/state;
- UI for downloading individual tests in archive generator;
- Bucket statistics improvements;
- Kotlin language support and setup script;
- !!! Huge refactoring of task execution, paving the way for remote graders and, finally, an official v1.0 release of the platform.
- April
- Better language matching for .cpp files;
zstdcompression in bucket data store;- Custom statement types (for example
statement-ro-editorial.md); - Send submissions on Ctrl+Enter;
- Preference changes for default display for problem statements;
- Add eviction policies based on TTL and max file size for bucket files (in cache environments such as subtests);
- This deprecated and later removed a cron job that already tried to do this;
- Coalesce schema with existing migrations;
- !!! Automatic schema migrator.
- March
- Added variable number of max uses to contest invites;
- Created submission saver script, useful for on-prem post-contest requests;
- Changed the visibility requirements for problems to be added to virtual contests;
- For example, a problem from an official contest could, in the past, be added to a virtual contest and bypass the submission count limit.
- Significant submission visibility performance improvements;
- Better auto update for problem scores in problem sidebar;
- Display sandbox version on initialization;
- Huge performance improvements to calculating problem score by caching and recalculating on submission changes instead of storing in a view;
- Improve polygon archive importing;
- Require passwords for name change;
- !! Reorganize data storage (tests, subtests, etc) in an S3-like bucket system;
- Support for multiple submission languages to interactive problems;
- Experimental support for MOSS plagiarism checker.
- February
- API reorganization;
- Replace quickjs with pure go library goja for katex;
- Remove Code field in Submission struct;
- For non-default score scale, show percentage instead of points in multiple places (cosmetic change);
- More dynamic front page based on flags (for example, the subtitle can be changed);
- Problem IDs are now hidden in contest lists when user doesn't have edit rights;
- Show display name in leaderboard.csv;
- Remove misinterpretable characters from user account generation;
- Fix some polling issues that caused fail2ban triggers;
- Save session information such as user agent and ip, used mostly for official contests to protect against cheating.
- January
- Contest submission/question cooldown;
- Improved submissions page performance;
- Generated user account improvements like sending a mail with password;
- Score "scaling" feature (for example, you can have 1000 points show up in the contest leaderboard for a problem);
- Output only problem handling improvements;
- Variable max submission size;
- Default to file upload regardless of preference (avoids nasty lag when copy-pasting large text in codemirror).
- May
v0.24.0 (2024-01-13)
- !!! Virtual Contests and better contest discovery mechanism;
- !! Proper reevaluation queue;
- Contest invitations system;
- ICPC leaderboards go only after "finished"/"reevaling" submissions;
- Compilation durations are now saved;
- Better problem searching;
- Better problem interface for tag pages;
- Many bug fixes and performance improvements;
- Admins can now force add users from the Contest UI (before it was only an API endpoint);
- Can automatically create simulations of contests from problem lists;
- Better problem list showing on the right of the problem page;
- Per-minute submission limit (also reports fishy activity, that is, bypassing the limit, to webhook);
- Show cumulative amount for monthly donations;
- Misc:
- Initial, barebones user sessions page;
- Cgroups v2 support;
- Add og:image for better embeds of links;
- Convert more API endpoints to
webWrapper; - Can now resize image attachments using query parameters;
- Limit number of sessions per user;
- Mailer can now be disabled;
- Cache gravatars;
- Administration and backend changes:
- Debug metrics and actions page;
- Bulk update of test visibility in problem list children problems;
- All flags are now visible in the Admin Panel;
- Can now block python requests;
- Compress tests and subtests;
- Cache checker compilations;
- Environment variable override for flags.json, for future Docker containerization;
- Update some endpoints for fail2ban support;
- Internal refactoring:
- Refactor grader box/manager;
- Better task running;
- No more
GenContextin code and.Ctxin templates.
v0.23.0 (2023-10-28)
- !! Much improved ICPC handling;
- Add support for pascal and re-enable Go language support in grader;
- Display names;
- Problem import UI for proposers;
- Login modal on front page option;
- Glossary for frequently asked terms (for now, just stdin/stdout);
- Add "Contests" button in navbar, enabled optionally;
- "Problems" button in navbar is now also toggleable.
v0.22.0 (2023-09-27)
- ICPC leaderboards for contests;
- Also includes a bit of a rework to how scores are handled.
- New (for now hidden) query parameter for listing all problems inside a list;
- Fixed bugs that didn't show fractional scores in leaderboards and in the notification when sending a submission;
- Allow hiding problems from the trending tab.
v0.21.0 (2023-09-14)
- Rework front page;
- Donations page:
- Actual page;
- Webhook notification for buymeacoffee;
- Manualy added donors.
- Internal addition of sorting problems ascending/descending and by id, name and published time
/problemsUI will follow soon enough
- Add button to make problem list from contest problems;
- Performance improvements by materialization.
v0.20.2 (2023-09-05)
- You can now view a "checklist" summary for the progress inside a problem list;
- Contests can now be deleted;
- Add problem checklist API endpoint (not to be confused with list checklists);
- Bug fixes.
v0.20.1 (2023-08-21)
- Visible problem tests toggle;
- Advanced problem archive generator;
- Allow updating single tests from files;
- Fix subtask editor bug.
v0.20.0 (2023-08-04)
- !!! Decimal scores in submissions;
- !! Allow changing usernames and permit admins to lockout people;
- ! Allow problem editors to reevaluate/delete individual submissions;
- ! CMS-style score parameters support when uploading test archives;
- ! Polygon format;
- Change submission viewing permissions (anyone can view, if option is toggled);
- Move attachments and other files to
assets/webserver route; - Bulk visibility updating dialog for problem lists;
- Much improved configuration flag system;
- Show problem source in search;
- Huge database refactoring;
- Remove sqlx as a dependency;
- TODO: Refactor everything properly (tedious process).
- Allow exporting editors in archive file;
- Clean up
docs/;
v0.19.0 (2023-07-06)
- !! Basic blog post support;
- Proper tag filtering;
- New format for the image extension in markdown;
- Attachment upload improvements:
- Allow changing name before upload;
- Autocomplete flags for some file names.
- Zip archive improvements:
- Hidden option to allow adding all submissions to archive;
- Tag support;
- Reorganization;
- Log tag changes for better monitoring;
- Rewrite filter/update queries in db/ in almost all places;
- Adopt AGPL v3 license;
- Problem checklist;
- Various grader improvements and refactorings;
- New logos (thanks Secret-chest for favicon);
- Remove "orphaned" tests from database, since they are not needed anymore;
- Allow public leaderboards on contests.
v0.18.0 (2023-06-03)
- !! Much better problem search;
- ~~Proper tag filtering is still missing for now~~ Fixed in 0.19.0.
- Many improvements to KaTeX math server side rendering (SSR);
- Remove highlightjs from application bundle (code blocks are now rendered server-side);
- Markdown statements now require no browser javascript for proper rendering (CSS is required, though, for KaTeX expressions);
- Audit logs are also sent to a discord webhook (and have more relevant information in them);
- Add
contestant.txtto checker environment, to verify contestant source code; - Add statement caching for increased load speeds;
- Performance improvements.
v0.17.0 (2023-05-20)
- !! Problem tags;
- Problem statistics;
- UI changes;
- Raise submission size limit to 30kb;
- Internal changes (like starting to minimize
sqlxusage); - Audit log pagination;
- More preloading web stuff on the backend;
- Big performance boosts for front page;
grader.propertiesimprovements;- SSR for KaTeX math expressions;
- Nicer confirmation dialogs;
- Internal, for now: last updated date for attachments and by whom.
v0.16.1 (2023-04-25)
- Contest descriptions;
- Warnings for contest problems once contest ended;
- Various SQL improvements;
- Bug fixes;
v0.16.0 (2023-04-18)
- Big UI redesign;
- SEO optimizations;
- All parent lists for a list will be shown when there are multiple parents;
- Fix crash on go 1.21 nightly;
- Update JS libraries;
- Bug fixes;
- Some small refactoring for the grader.
v0.15.0 (2023-04-14)
- BIG: added another scoring type: maximum of subtasks accross submissions;
- Added new
<modal>design for pop ups that will be slowly used in more and more places;\ - Score breakdown for maximum subtasks scoring strategy;
- Added position in contest leaderboards (along with links to problems);
- Fixed annoying bug in statement page that reset content without warning.
v0.14.2 (2023-04-09)
- Show problem edit options on hover directly (on mobile, tap the "Edit Problem" link);
- Make C++17 default preference for submitting;
- Conditional automatic opening of editors list on problem statement page;
- Some more paddings and margins for images and tables;
- Add buttons for quick toggling problem visibility on problem lists (only shallow visibility toggle, it doesn't recurse).
v0.14.1 (2023-03-28)
- Added support for attachments inside test arhives;
- Fix text casing.
v0.14.0 (2023-03-28)
- Dark mode toggle (instead of relying on browser preference);
- Support for multiple languages in statements;
- Show subtask tests in a better way on submission page;
- Allow multiple parent problem lists to be showed on problem page (capped to 5);
- More customizable preferences in cookies;
- Fixed a few firefox autocomplete bugs;
- CSS fixes.
v0.13.2 (2023-03-25)
- Attachment improvements:
- Editing/creating in UI;
- Renaming attachments in UI;
Execflag for attachments.
grader.propertiesimprovements:- Allow more information regarding problem (limits, authors, test name).
v0.13.1 (2023-03-16)
- More USACO contest work;
- Proper tables in problem summaries;
- Show sibling problems (from same problem list) in sidebar.
- Allow styling CSS images.
v0.13.0 (2023-03-04)
- Major: Grader rework to support high-memory problems;
- Better UX for USACO contests.
v0.12.2 (2023-03-02)
- USACO-style contests;
- Add formatting for blockquotes in markdown;
- Better submission hiding;
- Bug fixes;
v0.12.1 (2023-02-04)
- Generated account support;
- Functioning contest leaderboard;
v0.11.1-v0.12.0 (2023-01-29)
- Most of the contest functionality is done;
- Future contests on main page;
- New CMS-style default checker while maintaining legacy checker support;
- Overhauled problem UI/UX;
- UI/UX overhaul for lists of problems (such as the new attempted problems list on a profile page);
- Better logging for grader;
- Other small things such as more granular feature enabling/disabling from config.
v0.11.0 (2022-11-29)
- Simply mark new version since so many changes were made with 0.10
- Start slowly working on support for proper contests, starting with the option to disable signup
v0.10.x (2022-10-22)
- Many frontend changes;
- Backend cleanups;
- Better problem access control;
- Better submission memory handling;
- Better profile page;
- Broader test archive support;
- Simply better in all ways;
- Submission Pastes;
- Forgot password forms;
- Nested problem lists (also used them on the main page);
- More restrictive usernames;
- Button for reevaluating all submissions;
- Simple barebones audit log;
- Removed stack limit;
- Removed sqlite db option;
- Removed .kna support.
Info
Changelog prior to v0.10 is available in the Git history.