Hello, Codeforces!
I, ChurakovaAlexandra, and medvezhonokok are students of ITMO, and since this August, we started our internship at Codeforces. We are delighted that now we have the opportunity not only to write academic code but to do something that competitive programming enthusiasts from all over the world use.
Currently, we are working on minor improvements to Polygon — a system for preparing problems. Later, as we gain more experience and delve into the technologies, we will also start working on Codeforces.
A big thank you to our mentors geranazavr555 and MikeMirzayanov, who are always there to help and support.
Here's a list of the main improvements to Polygon that we've made (sometimes with significant help from our mentors) over these two months.
1. Automatic translation of solutions from one programming language to another.
On the 'Solutions' page, a 'Translate' button has been added next to each of the solutions.
When you click on it, you can choose a programming language and translate your solution into that language. Clicking the 'Get Translation' button opens an editor with the ability to edit and save the translated solution.
2. Multiple compiler change
Added the ability to change the language for all source files in bulk. This can be done in the 'sources' table on the 'Files' page, as well as in the 'solutions' table on the 'Solution Files' page (by selecting sources you need and clicking the 'Lang' button in 'Actions').
You can also change the language for this kind of files right on the 'Editor' page.
3. Preview for one or several tests
If you want to create a preview for a few tests, you can go to the 'Tests' page, select the tests you need for this purpose, and click the 'Preview' button.
4. New features on the Search page
If you need to find problem by its URL, Сopy it, go to the 'Search' page, and find the desired problem if you have the necessary permissions.
Also, when searching for problems or contests, you can sort the results by relevance or modification time
5. Contest's problems editing.
We supported the option to change TL/ML and problem name in the problem statements in different languages for all available problems in the contest. To use this, click 'Change names and TLs/MLs' link in sidebar on Contest Problems page.
6. Testset and Group in Stress
Added the capability to include testset and group when editing a stress. If a test is found for a stress and testset and group are specified, clicking 'add to test' link will set testset and group automatically without the need to specify them through a pop-up.
7. Solution tags autoset after invocation
After invocation is completed, you can click on 'Set solutions tags' link to automatically assign solution tags based on the invocation results.
8. Contest problem switcher update
In the problem switcher for the contest, highlighting has been added to tasks that have uncommitted changes and/or open bug issues.
9. Mass operations with Checker tests.
Support for mass editing, adding, and the ability to make changes during mass copying has been added for Checker tests. You can also save the result by using 'Ctrl+Enter'.
10. Problem statement save button in Edit-And-Preview mode
Now it is possible to save your changes in problem's statement using preview mode.
11. User settings update
In user settings, an option has been added to disable email notifications for task commits.
12. Improved issue handling
Now you can close and reopen issues with one click.
13. Multiple deletion/addition of dependencies to test groups.
Supported opportunity to add or remove dependence for multiple test groups.
14. Material editing improvements
Now, when creating a package and editing materials, there is an option for 'Test answers' to select only those tests that you have chosen as inputs.
Polygon API improvements:
- problem.commitChanges — commits problem changes.
- problem.validatorTests — returns a list of validator tests for the problem.
- problem.saveValidatorTest — add or edit validator test.
- problem.checkerTest — returns a list of checker tests for the problem.
- problem.saveCheckerTest — adds or edits checker test.
- problem.buildPackage — starts to build a new Package.
You can find the full description of Polygon API here.
Other updates
- Now you can see invocation progress when it's running.
- When editing materials, the option to select all tests has been added to highlight all tests.
- Added the display of the number of example tests in the 'Example' column on Tests page.
- Red highlighting has been added to issues count assigned to the user if at least one of them is open and not outdated.
- On the Contest page, the user does not see the 'Start/Continue' links for a task if they do not have permissions for it.
- Added new warning for situation when there is a solution that has the same name as a file on the 'Files' page.
- Added warnings for built packages.
- Now you can see TL/ML of the problem in column 'Info' in any table with problems.
- In all forms, autofocus has been added, either on input or on errors, if they exist.
- Added autofocus on 'Time Limit' field on 'General Info' page and on 'Testset name' field while creating new testset.
- If you have only read access for the problem, in all problem lists it will be displayed with a star icon next to the its name and will have title with the text "read access only".
- The 'Main correct solution' tag no longer gets removed when adding a valid solution via the API.
- An 'Edit' link has been added while viewing the file.
- Updated generator examples on the Files page.