Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@deboer-tim
Copy link
Collaborator

Adds support for the draft Contest API ability to send clarifications to multiple teams and/or groups.

This updates the contest model and all client-side support to support multiple teams and groups. The CDS, presentations, and all other tools will work when pointing to a 2023-06 or draft spec server.

By default the CDS will continue to serve the 2023-06 contest API though; if you want the new event feed you need to set the ICPC_CONTEST_API=draft system property as with all other draft spec changes.

CDS web pages will need to be updated as well, that will be a separate PR.

Adds support for the draft Contest API ability to send clarifications to multiple
teams and/or groups.

This updates the contest model and all client-side support to support multiple
teams and groups. The CDS, presentations, and all other tools will work when
pointing to a 2023-06 _or_ draft spec server.

By default the CDS will continue to serve the 2023-06 contest API though; if you
want the new event feed you need to set the ICPC_CONTEST_API=draft system property
as with all other draft spec changes.

CDS web pages will need to be updated as well, that will be a separate PR.
Copy link
Collaborator

@vmcj vmcj left a comment

Choose a reason for hiding this comment

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

LGTM but feel free to wait for a review from someone more experienced with the code.

teamId = clar.getToTeamId();

// For now, assume that clarifications to hidden teams are only
// sent to hidden teams. (i.e. no complex groups or hidden+non-hidden teams)
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think this should also become part of the spec, so it's easier for someone to implement the spec and not have this edge case.

Copy link
Collaborator

Choose a reason for hiding this comment

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

See also my remark above

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Agreed, I've added a topic to the CLICS call.

team = contest.getTeamById(clar.getToTeamId());
if (contest.isTeamHidden(team))
return null;
if (clar.getToTeamIds() != null) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

I wonder if it would be better to only hide the clarification if all teams and groups in it are hidden and if not, only hide the team / group IDs of hidden ones? It does complicate stuff though.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yeah, I started having questions like 'if a clarification is sent to a (visible) group or teams + a hidden team, should the visible teams see a clarification that doesn't include the hidden team and the hidden team see a different clarification with full data?' Most of these cases are so unlikely in practice we could skip implementing and take the chance nobody cares, or make a minor restriction in the spec to avoid it.

I've added an item to the CLICS agenda. Are you ok merging to get the API change and core support though, and revisiting once the spec closes to figure out which edge cases to support better?

Copy link
Collaborator

Choose a reason for hiding this comment

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

Yes I'm fine with that

teamId = clar.getToTeamId();

// For now, assume that clarifications to hidden teams are only
// sent to hidden teams. (i.e. no complex groups or hidden+non-hidden teams)
Copy link
Collaborator

Choose a reason for hiding this comment

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

See also my remark above

@deboer-tim deboer-tim merged commit 39ac264 into icpctools:main Aug 19, 2025
4 checks passed
@deboer-tim deboer-tim deleted the clars-teams-groups branch August 19, 2025 17:10
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.

3 participants