Commit Graph
72 Commits
Author SHA1 Message Date
Adrià c74aeb2f4c Merge pull request #6757 from LeandroLP23/ci/conventions-debt-entry-length
feat(tools): warn when a pull request adds a technical debt entry over 1000 characters
2026-10-19 12:17:54 +02:00
Adrià 8e3d8b9bd8 Merge pull request #6723 from Tripchipp/fix/debt-file-unlinked-entries
fix(tools): keep debt entries without a core link in the index
2026-10-19 12:09:51 +02:00
LeandroLP23andClaude Opus 5.5 fb1ad2fcf4 feat(tools): warn when a pull request adds a technical debt entry over 1000 characters
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 23:48:11 +02:00
David Fontanet BujaldónandClaude Opus 5.5 c494367836 Merge boykopovar/AnyPS5 main into fix/conventions-unknown-nid-collisions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 13:17:36 +02:00
011010 061101a3e8 fix(tools): report a row the pull request removes 2026-10-18 04:16:04 -06:00
011010 ea01ee8965 fix(tools): check the environment names a pull request adds 2026-10-18 02:36:16 -06:00
011010 bb109df676 fix(tools): read the helper and wide-string environment readers 2026-10-18 02:13:39 -06:00
husari.orozco abec10fe2d fix(tools): catch the EnvInt and GetEnvironmentVariableA readers and take the review rows 2026-10-18 01:14:35 -06:00
husari.orozco d49b0fecf5 docs(environment): add the APS5_* and ANYPS5_* reference and check it 2026-10-18 01:14:35 -06:00
Dean fdcc9f70e0 Merge pull request #5780 from MrMha/fix/conventions-duplicate-source-tokens
Merged while @adriadam10 is away; his requested change is in place.
2026-10-18 15:57:48 +13:00
Dean e14e281c82 Merge pull request #6624 from IshmamDC217/fix/conventions-multiline-string-comments
fix(tools): find Python and CMake comments across multi-line strings
2026-10-18 12:56:50 +13:00
MrMha 26c3a82e8d fix(conventions): ignore non-code duplicate export matches 2026-10-17 18:08:43 +04:00
Dean 661a1118cc Merge pull request #6626 from IshmamDC217/fix/conventions-ci-gate-indent
fix(tools): read workflow job keys at the indentation the file uses
2026-10-17 18:00:57 +13:00
Dean 10e0906273 Merge pull request #6407 from MarcZX100/codex/conventions-duplicate-export-quotepath-6388
fix(tools): keep duplicate export paths unquoted
2026-10-17 17:55:52 +13:00
Dean 4e15bde13d Merge pull request #6397 from MarcZX100/codex/conventions-crlf-fences-6387
fix(tools): recognize markdown fences with CRLF endings
2026-10-17 16:37:26 +13:00
AlxcBTW ad2b2b4c9c docs: add AGENTS.md with the rules coding agents break 2026-10-16 19:41:49 +02:00
Tripchipp bd9d0c3d7d fix(tools): keep debt entries without a core link in the index 2026-10-16 09:09:21 +02:00
Ishmam Ahmed 3ee7ab8ffb fix(tools): read workflow job keys at the indentation the file uses
The ci-gate check read a job's needs and if only two spaces deeper
than the job name. In a workflow indented by four spaces those keys
were never found, so a job gated with needs: eligibility and an if on
its outputs was reported as ungated. Read the keys at the indentation
of the job's first child instead.
2026-10-16 01:02:47 +01:00
Ishmam Ahmed 74f6a23bba fix(tools): find Python and CMake comments across multi-line strings
The comment check looked at each added .py, .cmake and CMakeLists.txt
line on its own and treated any # outside a string closed on that line
as a comment. A # inside a Python triple-quoted string or a CMake
quoted or bracket argument that spans lines was reported, so adding an
#include to the C++ held in PatchSpirvTools.cmake's [=[ ]=] arguments
failed the check. An escaped \# in CMake was reported too, while the
inner lines of a multi-line #[[ ]] bracket comment were not.

Find comments over the whole file instead: Python COMMENT tokens from
tokenize, and a CMake scan that skips quoted and bracket arguments and
escapes and covers every line of a bracket comment. A Python file that
does not tokenize keeps the previous per-line check.
2026-10-16 01:02:44 +01:00
MarcZX100 ad64fa844b fix(tools): keep duplicate export paths unquoted 2026-10-15 14:13:26 +00:00
MarcZX100 345fca11db fix(tools): recognize markdown fences with CRLF endings 2026-10-15 13:59:17 +00:00
Adrià FranchandClaude 1b94074869 fix(conventions): also check comments in .glsl shaders
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-15 14:39:47 +02:00
GalaxyGamingFRandClaude Opus 5.5 939b3d8a9f fix(conventions): check comments in GLSL shaders
The comment rule only scanned C++, Python and CMake files, so a
comment added to a .comp, .frag or .vert shader passed the check.
TextureDetile.comp and ColorTransfer.comp carry such comments today.
Shaders are now masked with the same C-style lexer and report
comment on changed lines, with the same #endif allowance and the
same technical-debt exemption as C++.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012zyXkUzTZGh3nBwNMtrLaW
2026-10-15 14:39:25 +02:00
Adrià b08db6a093 Merge pull request #5765 from GalaxyGamingFR/fix/conventions-depends-on-list
fix(conventions): accept Depends on answered as a list
2026-10-15 14:39:14 +02:00
David Fontanet BujaldónandClaude Opus 5.5 02b376a1d4 feat(tools): flag Unknown exports whose NID is already a symbol in the tree
An APS5_EXPORT whose name says the NID is unknown can carry the NID of a
symbol nid_patcher already produces from core/libs/prx: a _nid_postfix
helper, an APS5_VABI export or an assembly function. The NID is then not
unknown, and the stub can take the place of that symbol. #5608 exported
YNw9Xk5iNWo from libSceVideoOut as a throwing stub; it is the NID of
MouseIsOpen_nid_postfix, which libSceVideoOut imports from libSceMouse,
so presentation failed with "YNw9Xk5iNWo not implemented" (#5738, #6245).

The unknown-nid rule reports an added Unknown export with the NID of a
symbol in core/libs/prx, and an added symbol with the NID of an Unknown
export. Named aliases, such as the libc and libSceAmpr exports that share
NIDs on purpose, are not checked.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:29:03 +02:00
Adrià f0634088bc Merge pull request #6013 from TaymKal/fix/conventions-renames
fix(conventions): check only changed lines in renamed files
2026-10-14 22:20:34 +02:00
Adrià 101c23a813 Merge pull request #5378 from MiniRML/fix/conventions-bom-shebang
fix(conventions): accept first-line BOM shebangs
2026-10-14 21:25:39 +02:00
TaymKal 1f11d60fee fix(conventions): check only changed lines in renamed files 2026-10-14 21:18:21 +02:00
Adrià 2b0d680903 Merge pull request #5360 from thuanquang/fix/conventions-type-change
fix(conventions): pair each type change with both of its patch headers
2026-10-14 20:58:06 +02:00
Adrià 6fe6764b9b Merge pull request #5354 from pushkarreddyy/fix/conventions-modern-agent-files
fix(conventions): reject modern agent instruction files
2026-10-14 20:57:48 +02:00
Adrià 3864da5959 Merge pull request #3909 from GalaxyGamingFR/fix/conventions-doc-link-code-blocks
fix(conventions): ignore code blocks when checking doc links
2026-10-14 19:13:06 +02:00
GalaxyGamingFRandClaude Opus 5.5 efde691a45 fix(conventions): accept Depends on answered as a list
The pr-template check only accepted "Depends on: #N" or "none" on the same
line, so a checklist answering it as a bulleted list failed CI although
pr_overlap reads exactly that form (test_pr_overlap_dependencies covers
"Depends on:
- #2
- #3"). Allow one list marker before the first answer;
an empty answer is still reported.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012zyXkUzTZGh3nBwNMtrLaW
2026-10-14 02:32:58 -07:00
Alexej Szpevák 739fcd7862 perf(tools): read checker file contents through one git cat-file process
Check read every technical debt file and every changed file with its
own git show, so each run started one process per file: 99 git
processes for a typical pull request, 311 for a 118-file range, and the
count grew with docs/dev/debt. Process start-up dominates on Windows.

Read the blobs the checks use in one git cat-file --batch process,
keyed by the object ids ls-tree already returns, and batch the files
duplicates() inspects the same way. Paths that are not cached still go
through git show, so failures are unchanged.
2026-10-14 11:11:38 +02:00
GalaxyGamingFRandClaude Opus 5.5 e052811006 fix(conventions): ignore code blocks when checking doc links
The doc-link check matched C++ lambdas such as `[](int a)` inside fenced
code blocks and inline code, reporting bogus missing targets. Links now
require non-empty link text, and links() strips fenced blocks and inline
code spans first. docs() also skips added lines that sit inside a fence
of the full file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 00:49:22 -07:00
Dean 39bf2b9e9d Merge pull request #4986 from Ondra97/codex/fix-conventions-raw-literals
fix(conventions): ignore C++ raw literal contents
2026-10-14 15:54:04 +13:00
Dean 622fb542d2 Merge pull request #4764 from nikowolf123/fix/conventions-test-fixtures
fix(conventions): skip library test fixtures in the export checks
2026-10-14 15:37:56 +13:00
Dean 5a81f6085b Merge pull request #4765 from nikowolf123/fix/conventions-template-subsections
fix(conventions): keep #### subsections inside the pull request template sections
2026-10-14 14:41:00 +13:00
MiniRML ef1f2b8c77 fix(conventions): accept first-line BOM shebangs 2026-10-13 11:19:59 -07:00
pushkarreddyy bf1aadea66 fix(conventions): reject modern agent instruction files
Expand AGENT_FILES in tools/check_conventions.py to include instruction and configuration files for modern AI coding assistants (.windsurfrules, windsurf.md, chatgpt.md, .chatgptrules, .aider.conf.yml). Add test coverage in tools/tests/test_check_conventions_agent_files.py.
2026-10-13 23:39:04 +05:30
thuanquangandClaude Opus 5.5 ae28529f35 fix(conventions): pair each type change with both of its patch headers
git diff prints a file whose type changes (a file replaced by a link or
a submodule) as a deletion and a creation, two diff --git headers for
one --name-status entry, so the checker ran out of paths and stopped
with StopIteration instead of checking the pull request.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 00:56:08 +07:00
NikoandClaude Opus 5.5 0f7cd5b7ac fix(conventions): skip library test fixtures in the export checks
The duplicate-export and silent-stub rules treated every APS5_VABI
definition under core/libs/prx/ as a library export, including mocks
and callbacks in a library's tests/ directory. Those files are built
only into separate test executables, never into the library, so they
are not exports. PR #3533 failed CI because a sceKernelGetProcessTime
mock in libSceAudioOut/tests was reported as a duplicate of libkernel's
export. An sce* fixture with a stub-shaped body was also reported as a
silent stub, and a real export that shares a name with a fixture in
another library's tests/ was reported as a duplicate.

Skip files under a tests directory on both sides of the check, with the
same test code() already uses for title-specific and progress.py uses
for its function counts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 17:39:20 +02:00
Adrià a56c905df6 Merge pull request #4589 from MiniRML/fix/tools-cut-helper-accounting
fix(tools): exclude cut helpers from NID accounting
2026-10-13 17:24:55 +02:00
GalaxyGamingFRandClaude Fable 5.1 b12d6f5394 fix(conventions): match agent instruction files case-insensitively
The repository check compared the file name to a lower-case set, so a
file added as CLAUDE.md, Agents.md or GEMINI.md passed the check while
claude.md was rejected. Compare the lower-cased name so every spelling
of an agent instruction file is reported.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V9UU71SP1UKGR51Sowbgmq
2026-10-13 14:48:43 +02:00
GalaxyGamingFRandClaude Fable 5.1 d15cc41299 fix(conventions): read the PR body file with utf-8-sig
A pull request body saved with a UTF-8 byte order mark starts with
U+FEFF before "### What", so the first heading is not recognised and the
checker reports the What section as missing. Decode the body file with
utf-8-sig so the mark is dropped and the sections are found.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V9UU71SP1UKGR51Sowbgmq
2026-10-13 11:48:36 +02:00
Ondra97 6706e44d95 fix(conventions): ignore C++ raw literal contents 2026-10-13 09:15:31 +02:00
NikoandClaude Opus 5.5 7f39ac991b fix(conventions): keep #### subsections inside the pull request template sections
SECTION matched every heading that starts with ###, so a #### line opened
a new section named "# ...". A Tested section written as #### Linux and
#### Windows subsections was reported as missing or empty, and an
unchecked item after a #### line in Checklist was not reported.

A level-4 heading belongs to the level-3 section above it (CommonMark
4.2), and silent_stub_debt() already keeps deeper headings inside their
section. SECTION now matches only headings with exactly three #.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 23:14:49 +02:00
Adrià FranchandClaude 555099ae23 feat(tools): keep technical debt in one file per library
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-12 20:38:17 +02:00
Dean 59a2167a93 Merge pull request #4368 from SandstromPL/fix/conventions-run-from-subdirectory
fix(conventions): check the whole repository when run from a subdirectory
2026-10-13 07:21:13 +13:00
MiniRML 53d10eac9a fix(tools): exclude cut helpers from NID accounting 2026-10-12 09:24:13 -07:00
Adrià FranchandClaude d9d00f0e34 ci(build): run pull request jobs only when their files change
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-12 11:35:11 +02:00