I’ve got a work-in-progress
drat-ified CRAN-like repo for (eventually) all my packages over at
CINC (“CINC is not CRAN” and it also sounds like “sync”). This is in parallel with a co-location/migration of all my packages to SourceHut (just waiting for the sr.ht alpha API to be baked) and a self-hosted public Gitea instance. Everything will still be on that legacy social coding site y’all use but the ultimate goal is to have all installs be possible via the CINC repository (i.e.
install.packages()) or via a
remotes::install_git() install from this standalone or any social coding site.
I’ll eventually publish the workflow but the idea is to customize a
pkgdown YAML file in each package repo so the navbar has links back to CINC and other pages (this will take some time as I seem to have made alot of little packages over the years) and then to add a package to the CINC repo:
- clone it from local Gitea
- build the source package
- install it
- build the
pkgdownsite and have that go to
web/packagesdirectory (so https://cinc.rud.is/web/packages/hrbrthemes/ vs https://cran.r-project.org/web/packages/hrbrthemes/)
dratto add the package to the repository
- auto-update a useful index/packages overview page/directory
The above processes helped shine a light on some bad README practices I’ve had and also about how to make it a bit easier (in the future) to install C[++]-backed packages. Speaking of READMEs, I also need to get all the README’s updated to use either
install.packages() from CINC or a
remotes install from Gitea.
Another couple of goals are to possibly get binary package versions added (though that’s going to be interesting orchestration exercise) and see if I can’t get some
notary concepts implemented.
It’s actually been a fun mini-project since the
drat part is a simple as
drat::insertPackage('PKG', '/path/to/cinc') (#ty Dirk!) — though I need to think through some logic around maintaining Archive versions and also deleting packages which
drat doesn’t do yet but is also as simple as removing tarballs and running
As an aside, I also
drat-ified all our $WORK packages and made that repo work-internally-accessible via static S3 web hosting. At $0.023 USD per GB (per-month) for just hosting the objects and $0.0004 USD per 1,000
GET requests (plus minimal setup charges for SSL) it’s super cheap and also super-easy to maintain. Drop a note in the comments if you’re interested in more details of the S3
After a few more weeks’ baking period for the self-hosed Gitea and CINC sites will have all non-error web-logging disabled and error logs won’t save IP addresses or referrers (I welcome anyone who wants to third-party audit the
nginx configs) since another goal is also to help folks not be a product for tech startups or giant, soulless, global multi-national companies with a history of being horrendously evil.
Be on the lookout for a full writeup with code in the coming weeks.
For Safari-users on 10.14+ I’ve made some tweaks to the “batman mode” version of the site. If you do use Safari (but…why?!) and have any issues with readability in “dark mode” just drop a note in the comments and I’ll see what I can do.