Skip to content

Add functionality for 'Included Files' from the Kattis 2023-07-draft package format. #3006

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
NathanJCrozier opened this issue May 29, 2025 · 2 comments

Comments

@NathanJCrozier
Copy link

Description of the enhancement request

In the newest version of the Kattis problem package format, there is a directory where 'included files' can be provided (i.e. problem/include/default or problem/include/language/). It would be great for this to be implemented in DOMjudge to allow problems with extra files which cannot be seen by contest participants without the need to manipulate compile scripts.

The goal you want to achieve

I would like to create a problem which involves providing contestants with some boilerplate code in the form of a class + functions that they will fill out/implement. I then want to run their code with a driver/main function that I provide which will test their implementation of the class/functions. The contestants should be unable to see the driver that I provide to prevent them from reading/using it to adjust their function implementations.

Expected behaviour

When building/adding a problem through the web interface, there would be an extra field under 'Contests' or 'Attachments' named 'Included Files'. Much like attachments, I would be able to browse my device for one or many file(s) and add them. These files would then be included with all submissions to this problem during compile time (just as if a contestant provided multiple files during submission) and could then be used later when judging the submission(s). For example, a driver file as mentioned earlier or a text file which is read from and manipulated by the contestant's code.

Any other information that you want to share?

Here is an example of how it might look.
Image

@meisterT
Copy link
Member

Sounds reasonable to me - do you want to contribute this functionality?

@NathanJCrozier
Copy link
Author

Sounds reasonable to me - do you want to contribute this functionality?

I'm not particularly familiar with the code side of DOMjudge, but I am certainly not opposed to giving it a try.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants