Repository navigation
ci: treat the issue forms as documentation in the PR classifier - #144
Merged
Merged
Conversation
Co-Authored-By: Claude <noreply@anthropic.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Issue-form edits such as #140 currently run the full Mac, iPhone Duo and Android builds, because the classifier treats every
.github/file as code.Change (
scripts/ci/classify_pr_paths.py)ISSUE_FORMSallowlist of exactly six paths:.github/ISSUE_TEMPLATE/{bug_report,config,device_testing,documentation,feature_request,idea}.yml. When a PR changes only these, docs, press-kit or README images, it isdocs_media_only..github/is exempt: no other YAML file, new or nested form,.yamlvariant, workflow, ruleset,FUNDING.yml,release-config.jsonor PR template.Why these are safe: these six files are read only by GitHub's "New issue" page. No app target, Gradle build, fastlane lane or release script reads them. The one test that looks at them,
AppStoreTests.testUpstreamListingIDAppearsNowhereInTheRepository, scans.github/for the upstream listing ID. The classifier already sends any changed file containing that ID to full CI, and a new test pins this for forms.Fail-closed behavior kept
pr-title.ymlor the classifier or its tests) still runs full CI..gitignorechange, unknown paths and every push except the case ci: skip app builds when a docs-only merge lands on dev #141 adds.mac,android,release-tooling,conventional) are unchanged: skipped jobs still report.scripts/ci/, so it runs full CI itself, and the base branch's classifier still decides for every PR.tests.ymlis deliberately untouched, to avoid conflicting with ci: skip app builds when a docs-only merge lands on dev #141, which edits the same comment block.Tests: 30 classifier tests pass, 7 of them new:
pr-title.ymland classifier files..githuband YAML paths that must stay full CI..gitignorediff.Two mutants, the rule removed and the rule broadened to all of
.github/, fail 13 and 20 tests respectively.check-release-workflows.rbstill reports every workflow fail-closed. Run against #140's diff, the new classifier givesdocs_media_only=true;dev's current one givesfalse.Once merged, edits to the issue forms alone no longer run the app builds; reviewing the forms remains a manual step.
🤖 Generated with Claude Code