OJ
OJ copied to clipboard
Potentially upstreaming some site changes to DMOJ
Hi!
I'm one of the authors of DMOJ, love what you've done with VNOJ!
Over the years, you've added many features and fixed many bugs on top of the DMOJ branch, great job on that. Some of them are features we have open tickets for upstream, and some are bugs we also have. (Whoops.)
What are your thoughts on upstreaming some of your changes?
Hopefully, that should also reduce your maintenance burden in the long run, with merge conflicts becoming less likely. We'd of course greatly appreciate this too--most of our effort nowadays goes into the administrative parts of running https://dmoj.ca and making sure the judge chugs along, and less on feature work.
Having skimmed through the changelog, I've listed some changes that stood out to me as "wow I wish we had this upstream" below:
- The (virtual competitor count) display on the contest list
- Contest search; https://github.com/VNOI-Admin/OJ/commit/dc4c1120428c03ca6c7c5e4544e0269f454833c2
- Option for auto-activating users, this is one of the most frequent support requests we get; https://github.com/VNOI-Admin/OJ/commit/2242a3596eb3a86e822cc0c36961b5e5506a5d89
- Faster judge problem updates; https://github.com/VNOI-Admin/OJ/commit/a860684d172d276e082784a4f391824b5c7b18bd
- Bugfix for minimum time limit; https://github.com/VNOI-Admin/OJ/commit/17550f3c64f582b5455b980e9b766778cd4dd3ab
- Frozen scoreboards
And some that sound relevant, but I wasn't sure applied to upstream:
- Avoid leaking submission feedback when leaving contest; https://github.com/VNOI-Admin/OJ/commit/7beb7f31b7fe7a89b7c0f273b0d1bdd367a27843
- Fix submit button when using back button (what were the symptoms here?); https://github.com/VNOI-Admin/OJ/commit/57a8be10bfa4db87b30f7359f13904d96b21ed70
- Make organization slug unique; https://github.com/VNOI-Admin/OJ/commit/a34e284e25f0bf1a4649a5996956d6f3a6eb68b6
- Fix IOI contest format; https://github.com/VNOI-Admin/OJ/commit/c2cc3006e454aa3080f3d7ce4be65aa6a208899f
- Fix event server leaking data; https://github.com/VNOI-Admin/OJ/commit/1ce5bb9ffc8d846ba0c9c44c9154adb4013e0888
As well as anything else you think I missed here.
Let me know what you think, I'm happy to chat more.
Hello there, sorry for the late reply, I haven't checked issues in a while,
A few years ago, we were interested in pushing our changes to DMOJ. However, the more we update our site, the more we diverge from DMOJ's, making it quite difficult to push changes upstream. Because we need to run the DMOJ codebase and test it. We couldn't use the same database because our database is different from DMOJ quite a bit.
Besides, some of the modifications we've made were implemented in a hacky way (such as the frozen scoreboard), merging that into DMOJ is not a good idea.
Moreover, some of the features listed were actually fixes for bugs specific to our system. For instance, the Fix submit button when using back button, this problem arose because we prevented the button from being clicked twice. Another example is the Avoid leaking submission feedback when leaving contest, we have a very complex logic on whether to show the feedback or not, and that requires 5+ PRs to finish overtime, even I couldn't remember what those PR are about.
On a final note, we are quite understaffed :kek:, you can see there aren't a lot of new features got added to our site recently. The effort to make PR to DMOJ would increase our workload quite a bit.
On the other hand, what is your thought on cherry-picking our commits yourself instead of us making the PR?
As much as i want to push the frozen ranking to DMOJ, i have no idea how to make its implementation match DMOJ. You can take a quick look here: https://github.com/VNOI-Admin/OJ/pull/212
I can share how i implement it and you can re-implement it on your end
I will try to push these three to DMOJ, they seem quite easy to merge
- Contest search; https://github.com/VNOI-Admin/OJ/commit/dc4c1120428c03ca6c7c5e4544e0269f454833c2
- Option for auto-activating users: https://github.com/VNOI-Admin/OJ/commit/2242a3596eb3a86e822cc0c36961b5e5506a5d89
- Faster judge problem updates; https://github.com/VNOI-Admin/OJ/commit/a860684d172d276e082784a4f391824b5c7b18bd