-
Notifications
You must be signed in to change notification settings - Fork 25
Future Tasks
This page documents a number of tasks that have been previously identified as either "current bugs" or "desired enhancements", but which have never yet been entered in GitHub Issues. Many of these tasks are suitable for new developers to tackle, while others are quite complex and probably require extensive experience with PC2v9 system internals before attempting to work on them.
In any case, each separate task should be entered as a GitHub Issue (and should at the same time be removed from this page) before being worked on.
-
Add a way to submit CDP judge's submissions
- This issue is described in considerable detail in the old PC2 "Bugzilla" system, specifically at https://pc2.ecs.csus.edu/bugzilla/show_bug.cgi?id=1334.
- Considerable development work on this has already been done under the above Bugzilla bug, and (probably) already had code incorporated into the current (GitHub) system -- just not made visible to any user.
-
Implement the CLICS Contest API
- The CLICS Contest API is described at this CLICS page.
- This issue has already had considerable work done, as described at https://pc2.ecs.csus.edu/bugzilla/show_bug.cgi?id=1310. In fact, it is likely that most of the CLICS API is already implemented; what remains is to
- Verify the correct operation of the endpoints which have been implemented, and fix them if necessary;
- Identify what endpoints are missing, and implement them.
-
Add CLICS "Multi-contest" support
- In addition to supporting each individual API endpoint (as described by the preceding task), PC2 needs to support CLICS API "multi-contest awareness". This means that beyond just supporting each of the CLICS endpoints (e.g. /teams, /problems, etc.) the API needs to support
contests/<contestid>
as the starting point for each separate contest.
- In addition to supporting each individual API endpoint (as described by the preceding task), PC2 needs to support CLICS API "multi-contest awareness". This means that beyond just supporting each of the CLICS endpoints (e.g. /teams, /problems, etc.) the API needs to support
-
Provide support for server-side Test Run feature
- The ability to have team clients (whether the "fat client" installed on every team machine, or the "web client" which uses a browser to access PC2) execute a run on the server-side would be a significant benefit.
- For browser-based systems, it would provide a facility which currently doesn't exist in PC2.
- For fat-client installations, it would eliminate the need to install all the compiler tools on the team machines (although it is arguable that perhaps they would want to do this installation anyway).
- See bug 853 and bug 1091 additional information
- See branch b_1208_TestRun, specifically commit fa03548e180aff2a080dbbe154122cbdd940e7fa, in the PC2v9 ECS repo, on which a subtantial amount of work to support this task has already been done (but not ported to GitHub).
- The ability to have team clients (whether the "fat client" installed on every team machine, or the "web client" which uses a browser to access PC2) execute a run on the server-side would be a significant benefit.
-
Show team stderr to human judges
- A recent fix to PC2, described in bug 1657, appropriately removed the concatenation of a team's stderr output in the output forwarded to the validator (so that the validator only evaluates stdout, not also stderr). Unfortunately, this now means there is no place in the system where a human judge can see the stderr output of a team's execution.
- There should be a way for the human judge to see stderr, probably by adding another column to the Test Case output table/screen.
-
Shadow Controller needs a user-selectable control for whether to convert judgement acronym to CLICS "Big5"
- See bug 1642 for a detailed description of this task.
- This task should include both implementing a GUI-based setting and implementing a YAML setting.
-
Verify since-id parameter in Shadow Controller (GUI and YAML) works correctly
- Bug 1602 provided support for connecting to a Remote CCS in Shadow Mode, and this was tested during at least one major contest (NAC 2020) -- except that the since-id parameter support was not tested during that contest.
- Test that since-id works, both using the Shadow Controller GUI and the YAML shadow configurations.
- Note that in order to test this it requires having a CCS which correctly implements the since-id feature in its event feed. One solution is to use PC2 to test this -- but need to verify that the PC2 Event Feed does indeed correctly support it.
-
Add a tool to test judge's solutions
- The CLICS CCS specification (in general at this page, and specifically at this page) documents a structure for judges to provide sample solutions (both correct and incorrect). The data structure under which these solutions are held is commonly referred to as a Problem Package referenced by a Contest Data Package (CDP).
- PC2 should have a mechanism by which the Contest Administrator can run all of the judge's solutions found in a CDP (Problem Package) and verify/document that they produce the expected results.
- Substantial work on this task has already been done and can be found on the b_1600_cdp_test_submissions_tool branch in the PC2v9 ECS repository. This task is described and discussed further at this bug.
-
Integrate the new EWTeam web interface project into PC2v9
- Students at Eastern Washington University implemented a complete replacement for the old "EWTeam" interface. Whereas the old code was written in hodge-podge PHP, the new version uses modern web development tools including Angular, Bootstrap, and Swagger/OpenAPI. The students demonstrated a working version of this interface at the completion of their Senior Project in May 2019. What remains is to integrate this project into PC2v9 production code, replacing the old PHP EWTeam.
- The complete student project is contained in a Git repo at http://pc2.ecs.csus.edu/git/WebTeamClient.git.
-
Add support for generating account passwords
- Currently when PC2 accounts are generated they have "joe" passwords (the password for account "joe" is "joe"). Passwords can be changed, either manually via the Admin>Accounts interface or by loading password files. However, there should be a capability which allows for generation of different kinds of passwords (e.g. "set from a list", "generate randomly", "generate according to a specified pattern", etc.) at the time accounts are generated.
- Some proposals for what this feature should look like are documented in Bug 1509.
- The following bugs are related to this task and may contain useful information: bug 291, bug 577, bug 728, bug 854, bug 1458, bug 1522.
-
Clean up handling of Java "packages"
- There are currently problems with the way PC2 handles team submissions written in Java (and probably in Kotlin as well) if the submission uses the
package
statement. The infrastructure for supporting this needs to be cleaned up. - See in particular bug 1671 for details.
- There are currently problems with the way PC2 handles team submissions written in Java (and probably in Kotlin as well) if the submission uses the