Skip to content

subtask dependency#680

Open
m4teuk wants to merge 5 commits intosio2project:masterfrom
m4teuk:feature/subtask-dependency
Open

subtask dependency#680
m4teuk wants to merge 5 commits intosio2project:masterfrom
m4teuk:feature/subtask-dependency

Conversation

@m4teuk
Copy link
Copy Markdown
Contributor

@m4teuk m4teuk commented Apr 8, 2026

  • Subtask dependency config option
  • Displaying a warning icon and an explanation when the score is lowered due to a failing prerequisite subtask

@m4teuk m4teuk self-assigned this Apr 8, 2026
@m4teuk m4teuk requested a review from MasloMaslane as a code owner April 8, 2026 09:04
@m4teuk m4teuk linked an issue Apr 8, 2026 that may be closed by this pull request
#: zeus/templates/zeus/program-report.html:21
msgid "Zeus id"
msgstr "ID Zeusa"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

please update translations via transifex

@sylwia-sapkowska sylwia-sapkowska self-requested a review April 8, 2026 14:05
@m4teuk m4teuk marked this pull request as draft April 8, 2026 14:23
@sylwia-sapkowska
Copy link
Copy Markdown
Contributor

sinol-make docs should be updated accordingly, to describe how to use it.

@MasloMaslane
Copy link
Copy Markdown
Member

Not only the docs, but also scoring and config validation should be updated. Would be great if someone would be willing to do this:)

@sonarqubecloud
Copy link
Copy Markdown

@m4teuk m4teuk marked this pull request as ready for review April 15, 2026 08:14
normalized_value = 0
else:
# Scale prereq score proportionally to the target max_score
normalized_value = round(prereq_score.value * target_max_value / prereq_max.value) if prereq_score else 0
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ensure there are no rounding issues here, as errors can accumulate across multiple tests. Instead of scaling by the maximum score within this group, consider rescaling using the least common multiple of all group maxima (though this may become very large), or use exact percentage values directly from TestReport to avoid loss of precision (for problems with partial scoring available)

visiting = set()
visited = set()

def dfs(node):
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks good!

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.

Add subtasks dependency

4 participants