VNOI-Admin / OJ

A modern open-source online judge and contest platform system.
https://oj.vnoi.info
GNU Affero General Public License v3.0
153 stars 67 forks source link

Potentially upstreaming some site changes to DMOJ #381

Open Xyene opened 7 months ago

Xyene commented 7 months ago

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:

And some that sound relevant, but I wasn't sure applied to upstream:

As well as anything else you think I missed here.

Let me know what you think, I'm happy to chat more.

leduythuccs commented 5 months ago

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?

leduythuccs commented 5 months ago

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

leduythuccs commented 5 months ago

I will try to push these three to DMOJ, they seem quite easy to merge