Skip to content
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

Potentially upstreaming some site changes to DMOJ #381

Open
Xyene opened this issue Feb 9, 2024 · 3 comments
Open

Potentially upstreaming some site changes to DMOJ #381

Xyene opened this issue Feb 9, 2024 · 3 comments

Comments

@Xyene
Copy link
Contributor

Xyene commented Feb 9, 2024

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; dc4c112
  • Option for auto-activating users, this is one of the most frequent support requests we get; 2242a35
  • Faster judge problem updates; a860684
  • Bugfix for minimum time limit; 17550f3
  • Frozen scoreboards

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

  • Avoid leaking submission feedback when leaving contest; 7beb7f3
  • Fix submit button when using back button (what were the symptoms here?); 57a8be1
  • Make organization slug unique; a34e284
  • Fix IOI contest format; c2cc300
  • Fix event server leaking data; 1ce5bb9

As well as anything else you think I missed here.

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

@leduythuccs
Copy link
Contributor

leduythuccs commented Mar 28, 2024

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
Copy link
Contributor

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: #212

I can share how i implement it and you can re-implement it on your end

@leduythuccs
Copy link
Contributor

leduythuccs commented Mar 28, 2024

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

  • Contest search; dc4c112
  • Option for auto-activating users: 2242a35
  • Faster judge problem updates; a860684

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

No branches or pull requests

2 participants