You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
cp_psl runs under a Python 3.7+ interpreter and converts the Public Suffix List atomically, so failures can no longer ship an emptied pymongo/public_suffix_list.dat.
Failed syncs are now logged to the task log, and PR bodies are written as plain text (fixes malformed bodies).
PR creation improvements: same-day reruns are idempotent: force-push the date-stamped branch, refresh the existing PR instead of duplicating it, attribute commits to the PR bot, and retry the push on transient 403s.
Test Plan
Pre-commit hooks and bash -n pass; cp_psl verified against the real specs-repo list (10248 lines in/out, 459 Punycode conversions; failure cases leave the destination untouched).
Force-pushing the date-stamped remote branch does not make reruns from the same checkout idempotent: the earlier git checkout -b $branch "origin/main" leaves that local branch in place, so a second invocation fails with branch ... already exists before reaching this retry loop. Reuse/reset the local branch (or use a clean worktree) before pushing.
Fail or retry PR lookup on HTTP errors
.evergreen/scripts/create-spec-pr.sh:82
The PR lookup does not fail on HTTP errors. A transient 403/5xx produces an error object, but because this curl lacks --fail and the pipeline has no pipefail, jq yields an empty URL and the script proceeds as though no PR exists; the subsequent POST can fail with an already-existing PR instead of refreshing it. Make this lookup fail (or retry) on HTTP/API errors before deciding to create a PR.
Capture task-log stderr as readable text
.evergreen/scripts/resync-all-specs.py:65
The newly added task-log message formats exc.stderr as a Python bytes object because this subprocess.run call does not set text=True; patch failures therefore appear as b'...\\n' with escaped newlines instead of readable stderr. Request text output here as is already done for the spec-sync subprocess.
The force-push does not make reruns idempotent when the Evergreen checkout is reused: git checkout -b $branch above fails if the date-stamped branch already exists locally, so execution never reaches this retry/force-push block or the existing-PR refresh. Reset or reuse the branch (for example with git checkout -B "$branch" "origin/main") before committing.
Capture subprocess stderr as text
.evergreen/scripts/resync-all-specs.py:65
apply_patches captures stderr without text=True, so exc.stderr is bytes here. The new task-log message (and the PR summary built from the same value) will therefore contain the escaped b'...' representation instead of the actual diagnostic text. Capture text output in the subprocess call so both consumers receive a normal string.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PYTHON-6132
Changes in this PR
cp_pslruns under a Python 3.7+ interpreter and converts the Public Suffix List atomically, so failures can no longer ship an emptiedpymongo/public_suffix_list.dat.Test Plan
bash -npass;cp_pslverified against the real specs-repo list (10248 lines in/out, 459 Punycode conversions; failure cases leave the destination untouched).Checklist
Checklist for Author
Checklist for Reviewer