Skip to content

Conversation

@niemela
Copy link
Member

@niemela niemela commented Nov 18, 2025

Continuation of #240.

Second half of #230

Closes #230.

@niemela niemela requested a review from deboer-tim November 27, 2025 17:33
Copy link
Member

@deboer-tim deboer-tim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking backward I am not happy that we went from hidden groups to hidden teams to a default scoreboard group 😞, and it seems slightly more annoying for CCSs and CDS to implement. e.g. 'is this team on the scoreboard' is indirect now. That said, I think this is simpler and more consistent with the rest of the spec. 👍🏼

@johnbrvc
Copy link
Collaborator

I was thinking about this. Right now, to take a team off the scoreboard (hide it), we simply set the "hidden" property on the team. We have done this while contests were in progress. Using the method proposed in this PR, several things have to be done to accomplish this (currently simple) task:

  1. By default, no "group" exists that has the teams that should be on the scoreboard, so, a group has to be created. For ICPC type contests, where does the "icpc_id" come from for this new group? Does someone have to go into the CMS and create such a group for consistency? I believe the current CCS's require the icpc_id for groups; can we just "make up" an ID?
  2. Once this new group is created, all teams but the one team we don't want to show has to be added to the group.
  3. The contest object has to be updated with the new "default_scoreboard_group" or "main_scoreboard_group", or whatever we're calling it.

So, for a contest with 100 teams, and we don't want to show 1 of those, we need to send 101 event feed notifications as opposed to 1. (add new group, 99 team updates to add the new group ID to those teams, new contest update, in that order - failure to add them in that order could cause incomplete scoreboards). (I suppose, we could make the 3 event feed notifications: new group, 1 teams update with 99 teams, 1 contest update).

Are we sure we want to put this burden on clients? Is there a way to make the process easier?

@deboer-tim
Copy link
Member

FWIW we don't need the group to exist in the CMS - e.g. the other CCSs have groups like 'admins' that don't exist in CMS.

But yes, this is the worst case scenario and what would be required to fix it live. I guess if you're worried this might happen you could create the group with all teams in advance and only need 1 update to remove the team from this group, but that implies you had some warning or now always have to create a group just in case.

The only way I can think to solve this right now is flipping it around so teams are on the scoreboard unless you add them to the not_on_scoreboard_group_id. Only 2 updates in this case, but ugly and basically back to hidden teams.

@niemela
Copy link
Member Author

niemela commented Dec 16, 2025

Are we sure we want to put this burden on clients? Is there a way to make the process easier?

Is needing to hide a team during a contest a common task? Why would that happen?

@johnbrvc
Copy link
Collaborator

Are we sure we want to put this burden on clients? Is there a way to make the process easier?

Is needing to hide a team during a contest a common task? Why would that happen?

This happens almost every year at our regional, and I have seen it happen first hand at ACPC back in '22 as well when I was in Sharm (I think you were there too) - they had several "last minute" teams that were in the back room that were either sponsors or --- something else --- and we didn't want to show them on the scoreboard. Inevitably what happens is, some team shows up short-handed and picks up a straggler to fill out the team, but they are not eligible to advance to NAC, so, we remove them from the scoreboard on-the-fly. We have also had last-minute teams comprised of either high school student(s) or graduate students that "just want to participate", so we hide them as well.

While it is true that we generally know before the contest starts about these (usually, but not always), it's always very short notice (like an hour before the contest starts) and things are generally quite hectic at that point.

My original comment was not to say "let's not do this", it was more to make us aware of the ramifications of actually doing it.

@nickygerritsen
Copy link
Collaborator

Hiding a team happened a few times this weekend at SEERC: teams didn't show up and people wanted them to not show on the scoreboard, after we already loaded teams.

Now, we could delete those teams fully, but personally I think hiding them is a good alternative.

@deboer-tim
Copy link
Member

Using groups vs a hidden property is 'cleaner' from an API standpoint, but is there another way to do this?

Or between contests where there is a set of sponsors / other teams who wouldn't show on the scoreboard and contests where you get late-removals like this, is it easier to deal with the set of teams that aren't on the scoreboard vs those that are? i.e. would it be easier if it was scoreboard_excluded_group_id?

@niemela
Copy link
Member Author

niemela commented Dec 17, 2025

Ok, this "sudden removal need" seems very strange to me, but I'll definitely buy that it can and does happen.

That said, I don't think the process is that bad, it should be handled by the system anyway. Getting a 100 extra messages en the event feed doesn't feel too terrible (and again, this is only because you didn't get the config right to begin with, due to "sudden removal need").

@nickygerritsen
Copy link
Collaborator

Ok, this "sudden removal need" seems very strange to me, but I'll definitely buy that it can and does happen.

That said, I don't think the process is that bad, it should be handled by the system anyway. Getting a 100 extra messages en the event feed doesn't feel too terrible (and again, this is only because you didn't get the config right to begin with, due to "sudden removal need").

I fully agree. Most submissions have more events than that for a single one and it will indeed be automated.

Copy link
Member

@deboer-tim deboer-tim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the changes, approved. 👍🏼

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

Successfully merging this pull request may close these issues.

Secret vs hidden teams

5 participants