Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion server/tests/test_eval_grader.py
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,18 @@ def test_the_cause_words_grader_v2_skips_are_exactly_the_versions() -> None:
for word in discovery.cause_words
if is_version_word(word, discovery.library)
}
assert skipped == {"9.2", "2.14", "0.0.45", "0.11", "polars 2", "3.14", "3.0", "2.1", "2.0"}
assert skipped == {
"9.2",
"2.14",
"0.0.45",
"0.11",
"polars 2",
"3.14",
"3.0",
"2.1",
"2.0",
"8.5",
}


# A recorded session (2026-10-25, hard-sqlalchemy-autoflush), trimmed to what grading reads.
Expand Down
59 changes: 58 additions & 1 deletion tools/eval/github_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,63 @@ def tests(*ids: str) -> str:
)


# Click 8.5.0 (2026-08-26) no longer sets a boolean flag's `default` to False when the option is
# built: `Option.default` stays the UNSET sentinel unless read through `get_default()`,
# pallets/click#3641, merged 2026-07-16. Release notes:
# https://github.com/pallets/click/releases/tag/8.5.0
CLICK_FLAG_DEFAULT = Upstream(
library="click",
version="8.5.0",
released="2026-08-26",
changelog="https://github.com/pallets/click/releases/tag/8.5.0",
upstream_change="click-8.5-flag-default-unset",
)

# Issue: https://github.com/pypa/pip-tools/issues/2472 (2026-09-02): the command pip-compile
# records in its output gains `--no-index` though it was never passed.
# Fix: https://github.com/pypa/pip-tools/pull/2475 (merged 2026-09-18), `get_compile_command`
# compares a value with the option's resolved default. A merge commit: the base is its first
# parent. The new test passes at the base on Click 8.4.2 (checked) and fails on 8.5.0. Its
# docstring states only the symptom, with "See GH-2472"; that issue states the cause, but eval
# sessions have no web tools. The version comes from setuptools-scm, which needs a git
# checkout, hence the pretend version.
# Not bare "unset": a fix that only treats the symptom says it too ("skip options left unset").
# The phrases name the option's default, and "`unset" matches `UNSET` written as code.
PIP_TOOLS = GitHubTask(
name="gh-pip-tools-flag-default",
repo="https://github.com/pypa/pip-tools",
base_commit="c58d5d945c0f20e9713e10f5fea2491a5c984f39",
fix_commit="e4187bda8ba559e4bc1991db0635b76a86ab079c",
issue_url="https://github.com/pypa/pip-tools/issues/2472",
fix_url="https://github.com/pypa/pip-tools/pull/2475",
test_paths=("tests/test_utils.py",),
python="3.12",
pins=("click==8.5.0",),
setup=(
"env SETUPTOOLS_SCM_PRETEND_VERSION=7.6.1"
f" uv pip install --quiet {EXCLUDE_NEWER} -e .[testing]"
),
test_command=tests(
"-n0", "tests/test_utils.py::test_get_compile_command_no_index_not_added_by_default"
),
upstream=CLICK_FLAG_DEFAULT,
discovery=Discovery(
symptom_words=("--no-index", "recorded command"),
cause_words=(
"sentinel",
"default is unset",
"default is now unset",
"default stays unset",
"`unset",
"8.5",
),
library="click",
),
trigger="version_specific",
license="BSD-3-Clause",
)


def scenario(task: GitHubTask) -> Scenario:
"""Return the scenario that replays a task: its project comes from the repository."""
return Scenario(
Expand All @@ -219,6 +276,6 @@ def scenario(task: GitHubTask) -> Scenario:
)


TASKS: list[GitHubTask] = [PYTEST_BDD, TEKORE, PYDANTIC_SETTINGS, MLODA]
TASKS: list[GitHubTask] = [PYTEST_BDD, TEKORE, PYDANTIC_SETTINGS, MLODA, PIP_TOOLS]

GITHUB = {task.name: scenario(task) for task in TASKS}
Loading