Last week’s post about portable R reached more readers than I had braced for. I am not a drama person by default, and the last week of feed activity has been a lot. This is the wrap-up.
Some context before I get into it, because the scale of attention was genuinely surprising. Portable R is an eccentric problem to work on. Prior community attempts at solving it largely fizzled out around R 4.2 or earlier, with significant caveats and unmaintained branches. A current, workable solution did not exist when I started. The fact that a post about portable R binaries reached the corner of the internet that it did is not something I was prepared for, and not something I was angling for.
On Monday, Hadley Wickham reached out with an apology. On Tuesday, the three of us, Hadley plus the engineer who wrote the PR plus me, had a conversation. It was appreciated. The engineer is genuinely engaged with the problem space, and the conversation reflected that. I am not going to recap a private discussion. I will say that the resolution it produced was fair, was specific, and was arrived at quickly.
What changed
Two things came out of it. Attribution in the Posit-maintained repo was updated. And I am redirecting portable-r-macos and portable-r-windows to point at the maintained builds upstream.
That second piece needs context. Twelve R versions as GitHub release artifacts pushes hard against the 2 GB per-file limit, and serving downloads at any real scale runs into bandwidth costs that do not make sense for a solo maintainer. GitHub is also under sustained load these days for reasons broader than this project, and leaning on its release CDN for the long-term, recurring serve of multi-gigabyte binary artifacts is not the friendliest use of the platform. Posit has the CDN infrastructure to host the artifacts properly, with no per-file size ceiling worth worrying about. Redirecting users to a maintained pipeline with proper hosting is the better outcome for the end user, who is the only person any of this is actually for.
One more thing is in flight. I asked the engineer to extend the Windows portable build to ship with Rtools pre-configured, so users compiling packages from source do not need a separate Rtools install on the machine. That change moves the Windows artifact from .7z to .zip on the CDN, which is a small switch that meaningfully lowers the friction for anyone unpacking the build on a fresh Windows install where 7-Zip is not already present.
The redirect itself waits on two things. The macOS binaries need to be properly notarized, and the Windows build needs to ship with Rtools bundled. Both are tracked. Until then, my own builds remain the live downloads, because that is what end users actually need today.
The shape this lands in is, honestly, a good one. R gains maintained portable builds for macOS and Windows on a well-resourced pipeline. Another senior engineer in the ecosystem now has working knowledge of Mach-O relocation, codesigning, notarization, and the Windows installer-extraction side of all this, which is real institutional capacity the rstats community did not have a month ago.
And I get to stop maintaining infrastructure I built as a means to an end. The actual project behind portable R was a desktop Shiny application packaged on Electron, and the portable runtime was always the supporting layer, not the destination. With it maintained upstream now, I get my time back to focus on the original project and on the next set of problems behind it, which are weirder and more interesting. There may also be an R Journal paper somewhere in here on the Mach-O relocation and install.packages() wrapper architecture; the approach is unusual enough to be worth documenting properly for the community.
The other PR
One more thing worth saying, because the original post folded it into a single parenthetical. The Linux portable R work in the same repository, the PR that landed two weeks before the one I wrote about, is its own piece of excellent engineering. It was contributed by a different engineer, with clear LLM-use disclosure in the PR description, and the technical approach (manylinux/auditwheel-style RPATH rewriting against bundled shared libraries) is meaningfully different from my own R-in-AppImage experiments from September 2025. I would have happily pointed at it as the Linux solution from day one. I am genuinely glad I do not have to revisit my AppImage work to ship something comparable. Credit where it is due.
The bigger signal
There is a read worth naming. Portable, relocatable R is not a mainstream use case. The number of people who need it on a given day is small, and the engineering effort to do it correctly is not. Posit putting a senior engineer on it, hosting the artifacts on their CDN as a recurring serve rather than a one-time download, and now signing up to extend the Windows build with Rtools bundling is the kind of investment a company makes when it believes the ecosystem it serves is worth investing in.
There has been a steady undercurrent of worry in the rstats community about whether R is being deprioritized inside Posit. The experience of the last week is the opposite of that. R is not being left behind. Not by Posit, and certainly not by the engineering capacity the ecosystem just gained through this work.
On naming
You may have noticed that this post, and the previous one, both deliberately avoid naming the engineer at Posit, linking the PR directly, or pointing at the specific repository involved. References are by indirection: a screenshot, a description, a section heading. That is on purpose.
The R community is small, collaborative, and supportive in ways the broader software world often is not. The point of writing the first post was to name a pattern, raise a question about professional norms in an LLM-assisted open source landscape, and start a conversation with the people involved. The point was never to turn an individual engineer into a target for the internet, or to invite anyone to brigade a repository. Any post of mine that produced one would have failed on its own terms. Now that the situation is resolved, the names and links matter less than ever. If you are curious, the receipts are easy enough to find. I am not going to make them easier.
Fin
R is better off. The ecosystem is better off. I get my time back, my work credited, and the freedom to chase the next problem.
Fin.