Repoint the tree at Sendspin/sendspin-cpp-cli - #20
Merged
chrisuthe merged 1 commit intoAug 20, 2026
Merged
Conversation
The repository has moved out of a personal account and into the Sendspin org. GitHub redirects the old URLs, so nothing is broken today -- but a tree that names its old home is one that goes stale the day the redirect stops, and every link here is a link somebody is expected to paste into a terminal. Thirty-nine occurrences, mechanically: README's wiki link and clone line, every absolute link back into the repository from all nine wiki pages and the sidebar, the unit's Documentation= line, and get_started_linux.sh's REPO -- which is what the release download, the "no releases yet" refusal and the build-from-source pointer are all built from. The wiki pages reach repo content absolutely because a wiki page has no relative path to README.md; their sibling-page links are relative and stay that way. Nothing else needed touching. wiki.yml builds every URL from GITHUB_REPOSITORY and release.yml from github.repository, so no workflow names an owner. The Documentation= line is a configure_file input rather than a document, so the generated unit was checked rather than assumed. The one non-mechanical change is docs/ROADMAP.md's receipt bullet. The macOS pkg identifier io.github.chrisuthe.sendspin-cli deliberately does not move: it is the primary key of an installer receipt on every machine that has run the .pkg, and changing it mints a second receipt claiming the same paths rather than upgrading the first. That decision stands, but its stated reason no longer did. The bullet argued that io.sendspin.* was not this project's to take, which was true when the identifier was minted and is not now, and it framed the move as hypothetical. It now records what makes it worth reading: the cheaper option became available and was declined on purpose. build_macos_pkg.sh's own comment needed nothing, making no ownership claim -- only the orphaning point, which still holds. CMakeLists.txt's HOMEPAGE_URL is left for its own change. It is not a stale-owner URL: it already names the org and points at the sendspin-cpp library instead of this project, copied from the FetchContent declaration below it with .git stripped. Correcting which repository is this project's homepage is a semantic change and does not belong in a rename.
chrisuthe
marked this pull request as ready for review
August 20, 2026 12:01
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.
The repository moved from
chrisuthe/sendspin-cpp-clitoSendspin/sendspin-cpp-cli.The old URLs redirect, so nothing was broken — but a tree that names its old home is a
tree that goes stale the day the redirect stops. This repoints it.
What changed
39 occurrences of the old owner across 12 files, mechanically:
README.md— the wiki link and thegit cloneline.docs/wiki/— every absolute link back into the repository, across all 9 pages plus_Sidebar.md. These are absolute rather than relative because the wiki is a separategit repository; wiki-internal links are relative and are untouched.
packaging/sendspin-cli.service.in— theDocumentation=line. Verified throughconfigure_file: the generatedbuild/sendspin-cli.servicecarries the new URL.scripts/get_started_linux.sh—readonly REPO, which is what the release download,the "no releases yet" refusal and the build-from-source pointer are all built from.
Plus one prose correction, in
docs/ROADMAP.md's macOS receipt bullet — see below.What deliberately did not change
The pkg identifier
io.github.chrisuthe.sendspin-clistays, in all six places itappears — the declaration at
scripts/build_macos_pkg.sh:73, the independent one at.github/workflows/build.yml:661that exists so an edit to the script cannot go greenunnoticed, and four mentions in operator-facing text. It is the primary key of an installer
receipt on every machine that has run the
.pkg; changing it does not rename anything, itmints a second receipt claiming the same paths and orphans the first.
docs/ROADMAP.mdalready decided that on the record and named this exact move as the thing that would not
shift it. If it is ever to change it wants its own PR and a migration story — a
preinstallthat forgets the old receipt, or an explicit decision to accept the orphan.
What that bullet could not keep saying is that
io.sendspin.*was not this project's totake. When the identifier was minted that was true; now the project is in the Sendspin org
it is not, and the bullet framed the move as hypothetical besides. So it now records the
thing that actually makes it worth reading: the cheaper option became available and was
declined on purpose. The decision, the
sendspin-cli-not-sendspin-cpp-clireasoning andthe ArduinoJson cross-reference are unchanged.
scripts/build_macos_pkg.sh's own commentneeded nothing — it makes no ownership claim, only the orphaning point, which still holds.
CMakeLists.txt:6'sHOMEPAGE_URLis untouched because it is not a stale-owner URL.It already names the Sendspin org — it names the wrong repository, the
sendspin-cpplibrary rather than this project, having been copied from the
FetchContentdeclaration atline 78 with
.gitstripped. It predates the transfer, so fixing it here would smuggle asemantic change (which repository is this project's homepage) into a mechanical rename.
Nothing consumes it — no
include(CPack)anywhere in the tree, and the onlyconfigure_filesubstitutes just@SENDSPIN_CLI_INSTALLED_BINARY@— so it is inertmetadata today and a separate one-line correction.
Workflows needed nothing.
wiki.ymlbuilds every URL from$GITHUB_REPOSITORY, andrelease.ymlfrom${{ github.repository }}; no workflow hardcodes the owner. Confirmedby reading them rather than assumed.
Verification
chrisuthe/sendspin-cpp-cliremain in the tree. The only remainingchrisuthestring is the pkg identifier, deliberately..../releases/download/v$VERSIONinside a shell snippet — a placeholder, not a link.)scripts/get_started_linux.sh's no-releases path, run live against the new repo, which haspublished no releases: the refusal names
Sendspin/sendspin-cpp-cliand points athttps://github.com/Sendspin/sendspin-cpp-cli#build.shellcheck scripts/*.shclean — CI's own gate.ConfigMerge.AConfiguredControlSocketIsAbsolutizedUnderDaemonizefails when the builddirectory's absolute path is long enough to push the absolutized socket path past the
103-byte
sockaddr_unlimit (105 bytes here). The same binary passes 347/347 from a shortcwd. Nothing in this diff is C++ or CMake.
The wiki
The sync workflow ran on the current
main(a55a67a) and published successfully. Thatrun is timestamped before the transfer, so it pushed to the wiki under the old name — which
GitHub carried across with the repository. Wikis are enabled on the new repo and the wiki
repository exists, so no owner toggle is needed here: merging this re-syncs the pages with
the corrected links on the next push to
main.