Skip to content

Remove private repository references from source and fixtures - #37

Merged
sakanni merged 8 commits into
developfrom
chore/remove-private-references
Oct 19, 2026
Merged

sakanni merged 8 commits into
developfrom
chore/remove-private-references

Conversation

@sakanni

@sakanni sakanni commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Issues addressed by this PR

No linked issue.

Comments, test fixtures and two warning annotations named private repositories or cited issue numbers from the repository this one replaced, and several comments cited a file and line inside another repository's source. Both are against our conventions for a public repo.

Test files

None.

Changelog

Two versioning warning annotations no longer end with a reference the reader cannot open. These render on the pull request of whichever repository ran the check, so the text was reaching contributors.

Compliance checks now write the Test_Toolkit commit that supplied the rules to the job log as well as the run summary, so the rules version behind a verdict can be read back.

Additional comments

Two behaviour changes, both small and both in the Changelog above.

The versioning check emitted two warnings whose text ended in a reference to a repository the reader cannot see. The warnings still fire on the same condition and say the same thing; only the dangling reference is gone.

The Test_Toolkit commit line was written only to the job summary, and GitHub exposes no API for those, so the version that produced a verdict could never be read back. It is now built once and emitted to both, with a test asserting it sits outside the summary guard.

Everything else is comments and fixture strings. Substituted names are arbitrary to what is asserted, so no expected result, pathspec, predicate or exit code changes.

On the branch head: 392 .NET tests pass across four projects, 83 pathspec assertions pass, and the PowerShell suite gains the two cases covering the new log line.

Ten sites named a private tracking repository: three in VersioningRunner, two
in each beta template, two in the changed-file pattern fixtures and one in the
versioning action. One of them was not a comment. It sat inside the string of a
versioning warning annotation, so the text rendered on the pull request of
whichever repository ran the check and sent the reader to a 404.

Where a reference carried meaning it has been replaced by what it meant, rather
than deleted. Everywhere else the surrounding comment already said it.

The git history keeps the originals and is not being rewritten for this.
…ummary

The line naming which engine produced a compliance verdict was written only to
the job summary. GitHub exposes no API for job summaries, so it could never be
read back, and the argument that the rules version is recorded rested on
something nobody could check.

Built once and emitted twice, to the log and to the summary, from one string so
the two cannot drift. The log line drops the backticks, which are summary
markdown.

The new test asserts position rather than presence: moving the emission back
inside the summary guard would still match a plain text search and would
silently undo the only thing that makes this observable.
Three more private repository names were in the tree. The fixtures carried one
in four places, including a comment asserting that repository's production
state; the same name was in two unit-test cases. Both installer comments named
the private one alongside the public one.

Five comments cited a file and line inside another repository's source. Those
fail the in-source comment rule on their own, independently of visibility, so
they now say what that system did rather than where it did it. The bare name
stays: it posts checks on public pull requests and contributors invoke it by
name, so it is not a dangling reference.

Also corrects .editorconfig, which pointed contributors at this repository's
pre-transfer path.

No pathspec, predicate, assertion or exit code changes. The fixtures assert a
path shape and the repository name in them is arbitrary.
The previous two passes were done by reading, and reading missed six sites. This
one checks the tree against the names themselves rather than against memory.

Two classes of name, and the second is what reading misses. A repository named
outright, and a repository identified by an assembly it ships: a type-level
collision comment and two sets of deserialisation fixtures named engine
assemblies belonging to private repositories.

The fixtures keep their meaning. Each substituted assembly name is arbitrary to
what is being asserted: the closure test needs an assembly absent from the
closure, and the parser tests need an assembly-qualified name to split. The
upgrade-map cases now use one placeholder throughout rather than two.

Two tokens that look like hits are not: both name a project that ships in a
public repository and merely collides with a directory name in a private one.
The previous pass still left four private repositories identifiable. A name was
matched whole, so a shortened form of it was not, and a namespace contained no
form of the name at all.

What that missed. One measurement table, written out twice in two files, naming
three private tools with per-repository type counts and a private UI namespace
underneath. The dated figures go with it: a measurement belongs in the record
rather than in a comment. One source comment naming the namespace and method the
tests had just been cleaned of. And an adapter namespace in three test cases.

Separately, names of the bot's own source files and classes are now gone, where
the bare name stays. Verified rather than assumed: FullMessage and GroupErrors
are public Test_Toolkit API and are kept; the rest are its own and are not.

Test meanings are unchanged. Each substituted namespace keeps its segment count
and its position relative to the subject, which is what the assertions turn on.
@sakanni
sakanni marked this pull request as ready for review October 19, 2026 09:12
Fourteen comments cited issue numbers from the repository this one replaced. They
404 today, and they are worse than dangling: live numbering restarted at 1 and is
climbing, so each will eventually resolve to an unrelated issue with no sign that
it is the wrong one. One of them was not a comment. It was inside a versioning
warning annotation, so it rendered on the pull request of whichever repository ran
the check, which is the second time that has happened on this branch.

Where the citation carried meaning it is replaced by the meaning. Numbers that
refer to this repository's own issues, and to pull requests in other public
repositories, are untouched.

Also removes four names of the bot's own executables, classes and source files.
Its bare name stays, as before. Our own identifiers that merely contain one of
those names, and our own comparison helpers named after its rules, are not
affected.

One over-long comment line re-wrapped.
Comment punctuation only, no rule, severity or setting changed.

This file is centrally distributed, so a cosmetic edit was previously left out
to avoid triggering a redistribution for nothing. That reason no longer holds:
the file is already changed in this branch, which repointed its header at the
current repository path, so the redistribution happens either way and the
marginal cost here is zero.
Pair of the one nine lines above, missed on the previous pass. Names the rule it
matches rather than the bot's class and method.
@sakanni
sakanni merged commit 87535b1 into develop Oct 19, 2026
5 checks passed
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.

1 participant