Skip to content

Latest commit

 

History

History
376 lines (376 loc) · 17 KB

CHANGELOG.md

File metadata and controls

376 lines (376 loc) · 17 KB
  • v0.25.0:
    • 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;
        • zstd compression 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).
  • v0.24.0:
    • !!! 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 GenContext in code and .Ctx in templates.
  • v0.23.0:
    • !! 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:
    • 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:
    • 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
      • /problems UI will follow soon enough
    • Add button to make problem list from contest problems;
    • Performance improvements by materialization.
  • v0.20.2:
    • 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:
    • Visible problem tests toggle;
    • Advanced problem archive generator;
    • Allow updating single tests from files;
    • Fix subtask editor bug.
  • v0.20.0:
    • !!! 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:
    • !! 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:
    • !! 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.txt to checker environment, to verify contestant source code;
    • Add statement caching for increased load speeds;
    • Performance improvements.
  • v0.17.0:
    • !! Problem tags;
    • Problem statistics;
    • UI changes;
    • Raise submission size limit to 30kb;
    • Internal changes (like starting to minimize sqlx usage);
    • Audit log pagination;
    • More preloading web stuff on the backend;
    • Big performance boosts for front page;
    • grader.properties improvements;
    • SSR for KaTeX math expressions;
    • Nicer confirmation dialogs;
    • Internal, for now: last updated date for attachments and by whom.
  • v0.16.1:
    • Contest descriptions;
    • Warnings for contest problems once contest ended;
    • Various SQL improvements;
    • Bug fixes;
  • v0.16.0:
    • 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:
    • 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:
    • 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:
    • Added support for attachments inside test arhives;
    • Fix text casing.
  • v0.14.0:
    • 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:
    • Attachment improvements:
      • Editing/creating in UI;
      • Renaming attachments in UI;
      • Exec flag for attachments.
    • grader.properties improvements:
      • Allow more information regarding problem (limits, authors, test name).
  • v0.13.1:
    • 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:
    • Major: Grader rework to support high-memory problems;
    • Better UX for USACO contests.
  • v0.12.2:
    • USACO-style contests;
    • Add formatting for blockquotes in markdown;
    • Better submission hiding;
    • Bug fixes;
  • v0.12.1:
    • Generated account support;
    • Functioning contest leaderboard;
  • v0.12.0:
    • Most of the contest functionality is done;
    • Future contests on main page;
    • New CMS-style default checker while maintaining legacy checker support;
  • v0.11.2:
    • 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:
    • 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:
    • 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.
  • v0.9.4:
    • Better consistency in design;
    • Revamped submission page;
  • v0.9.3:
    • Added better line spacing for text;
    • Added copyright notice (CC BY-NC-SA 4.0);
    • SUPPORT FOR INTERACTIVE PROBLEMS;
  • v0.9.2:
    • Pretty stupid bug fixes
  • v0.9.1:
    • Moved checker to attachments
    • Changed internal structure of problem list and subtask integer lists
  • v0.9.0:
    • Barebones attachments
    • English version
    • Working password and email change forms (in settings)
    • Pretty big internal restructuring
  • v0.8.1:
    • Bug fixes
    • Small UI fixes
    • UI revamp for the problem editor
  • v0.8.0:
    • Bug fixes and many possible bug creations
    • Proposers can delete problems
    • Admins can delete submissions
    • Rework for the frontend architecture
    • Rework for the test interface
    • You can now use the program input for custom checkers
    • Grader rework
    • SubTasks
    • Problem lists
    • Recommended submissions
    • .kna
    • Added support for SQLite databases instead of postgresql
    • Delete RPC stuff
  • v0.7.0:
    • IT IS A VERY UNSTABLE RELEASE
    • A LOT IS BROKEN
    • AND A LOT DOESN'T WORK
    • BUT I WANT TO RELEASE IT ASAP
    • Added email verification stuff;
    • Renamed all paths to english versions (/problema/1 => /problems/1) because it's nicer;
    • Default points can be awarded for problems;
    • You can now delete individual tests (and also all tests) from a problem;
    • You can now upload arbitrary files to the platform, no longer needing to link to outside sources for images in problems.
    • Performance improvements
    • HUGE Internal Restructuring (most of the non-boilerplate code has been moved around and changed);
    • Removed "Top 100" meme page;
    • Other small details;
    • Other stuff I think I forgot to write down.
  • v0.6.1b:
    • Show links to submission filters
    • Fix bug with timezones
    • Move language definitions to the config file
    • Dark Theme
    • Update libraries
    • Internal changes. Run the migrator!
  • v0.6.0b:
    • Add default visibiliy for submissions
      • Users with 100p on a problem can see all submissions
      • Changeable in settings
    • Add test archive upload
    • Finish test editing
    • Get rid of fontawesome stuff, it didnt look well to be her
    • Re-compress tailwind (whoops, 4MB CSS was uploaded by mistake)
      • I cant wait to see all that git history size :(
    • Fleshed out roadmap
    • Added password change API endpoint
    • Internal stuff
    • Added submission filter system
    • Show submission result as popup on problem
    • Some more stuff
  • v0.5.5a:
    • Minor internal changes (move from own protocol to GRPC and prepare for a more service-oriented architecture)
  • v0.5.4a:
  • v0.5.3a:
    • Add proper error pages
  • v0.5.2a:
    • Add user gravatar and link on admin menu
    • Optimize a bit by only loading CodeMirror only where needed
    • Actually use the Open Sans font
  • v0.5.1a:
    • Align dropdown on navbar
    • Add a simple settings page (for now, you can only change bio)
    • Add a simple profile page (only bio for now, nothing big)
  • 0.5.0a:
    • Backend Reorganization
    • Migrate from GORM to sqlc
  • 0.4.0a:
    • Move back to bootstrap from materialize.css
    • Completely change terminology of "Tasks" to "Submissions"
  • 0.3.3:
    • Add OpenGraph tags
  • 0.3.2:
    • Add viewable changelog on website
  • 0.3.1:
    • Add (basic) input validation for signup and login
  • 0.3.0:
    • A more under-the-hood update:
      • Move KiloEval from a separate project into this one
  • 0.2.3:
    • Complete redesign:
      • Change from bootstrap to materialize.css
  • I didn't record any changes before 0.2.3, but the platform didn't have a lot of things so it isn't really worth it to document their changes.