Dirk Eddelbuettel: #055: More Frequent r2u Updates
Welcome to post 55 in the R4 series.
r2u brings CRAN packages for R to Ubuntu. We mentioned it in the
R4 series within the
last year in posts #54
about faster CI, #48
about the r2u keynote
at U Mons, #47
reviewing r2u it at its
third birthday, #46
about adding arm64 support, and #44
about the r2u for mlops
talk.
Today brings news of an important (internal) update. Following both
the arm64 builds as well as the last bi-annual BioConductor package
update (and the extension of BioConductor coverage to arm64), more and
more of our build setup became automated at GitHub. This has now been
unified. We dispatch builds for amd64 packages for jammy (22.04) and
noble (24.04) (as well as for the arm64 binaries for noble ) from the
central build repository and enjoy the highly parallel build of the up
to fourty available GitHub Runners. In the process we also switched
fully to source builds.
In the past, we had relied on p3m.dev (formerly known as ppm and
rspm) using its binaries. These so-called naked binaries are what R
produces when called as R CMD INSTALL --build. They are
portable with the same build architecture and release, but do not carry
packaging information. Now, when a Debian or Ubuntu .deb binary is
built, the same step of R CMD INSTALL --build happens. So
our earlier insight was to skip the compilation step, use the p3m
binary, and then wrap the remainder of a complete package around it.
Which includes the all-important dependency information for both the R
package relations (from hard Depends / Imports / LinkingTo or soft
Suggests declarations) as well as the shared library dependency
resolution we can do when building for a Linux
distribution.
That served us well, and we remain really grateful for the p3m.dev
build service. But it also meant were dependending on the clock and
cadence of p3m.dev. Which was not really a problem when it ran
reliably daily, and early too, included weekends, and showed a timestamp
of last updates. By now it is a bit more erratic, frequently late, skips
weekends more regularly and long stopped showing when it was last
updated. Late afternoon releases reflecting the CRAN updates ending one
and half-days earlier is still good, it s just not all that
current. Plus there was always the very opaque occurrencem where maybe
one in 50 packages or so would not even be provided as a binary so we
had to build it anyway the fallback always existing, and was used for
both BioConductor (no binaries) and arm64 (no binaries at first, this
now changed). So now we just build packages the standard way, albeit as
GitHub Actions.
In doing so we can ignore p3m.dev, and rather follow the CRAN clock and cadence (as for
example CRANberries does),
and can update several times a day. For example early this morning
(Central time) we ran update for the then-new 28 source packages
resulting in 28 jammy and 36 noble binary packages; right now in
mid-afternoon we are running another build for 37 source packages
resuling in 37 jammy and 47 noble packages. (Packages without a
src/ directory and hence no compilation can be used across
amd64 and arm64; those that do have src/ are rebuilt for
arm64 hence the different sets of jammy and noble packages as only the
latter has arm64 now.) This gets us packages from this morning into r2u which p3m.dev should
have by tomorrow afternoon or so.
And with that r2u
remains Fast. Easy. Reliable. Pick all three! and also a little more
predictable and current in its delivery. What s not to like?
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. If you like this or other open-source work I do, you can now sponsor me at GitHub.
Last week, our university held a Mega Vaccination Center . Things cannot
be small or regular with my university, ever! According to the official
information, during last week 31,000 people were given a total of 74,000
vaccine dosis against influenza, COVID-19, pneumococcal disease and measles
(specific vaccines for each person selected according to an age profile).
I was a tiny blip in said numbers. One person, three shots. Took me three
hours, but am quite happy to have been among the huge crowd.


After cartridge pleating and honeycombing, I was still somewhat in the
mood for that kind of fabric manipulation, and directing my internet
searches in that vague direction, and I stumbled on this:
With the pieces being rectangles the width of the fabric, I was able to
have at least one side of selvedge on all seams, and took advantage of it
by finishing the seams by simply folding the allowances to one sides so
that the selvedge was on top, and hemstitching them down as I would have
done with a folded edge when felling.
Also, at first I wanted to make the smocking in white on white, but then
I thought about a few hanks of electric blue floss I had in my stash,
and decided to just go with it.
The initial seams were quickly made, then I started the smocking at the
neck, and at that time the project went on hold while I got ready to go
to DebConf. Then I came back and took some time to get back into a
sewing mood, but finally the smocking on the next was finished, and I
could go on with the main sewing, which, as I expected, went decently
fast for a handsewing project.
While doing the diagonal smocking on the collar I counted the stitches
to make each side the same length, which didn t completely work because
the gathers weren t that regular to start with, and started each line
from the two front opening going towards the center back, leaving a
triangle with a different size right in the middle. I think overall it
worked well enough.
Then there were a few more interruptions, but at last it was ready! just
as the weather turned cold-ish and puffy shirts were no longer in
season, but it will be there for me next spring.
I did manage to wear it a few times and I have to say that the neck
shaping is quite comfortable indeed: it doesn t pull in odd ways like
the classical historically accurate pirate shirt sometimes does, and the
heavy gathering at the neck makes it feel padded and soft.
I m not as happy with the cuffs: the way I did them with just
honeycombing means that they don t need a closure, and after washing and
a bit of steaming they lie nicely, but then they tend to relax in a
wider shape. The next time I think I ll leave a slit in the sleeves,
possibly make a different type of smocking (depending on whether I have
enough fabric) and then line them like the neck so that they are stable.
Because, yes, I think that there will be another time: I have a few more
project before that, and I want to spend maybe another year working from
my stash, but then I think I ll buy some soft linen and make at least
another one, maybe with white-on-white smocking so that it will be
easier to match with different garments.
I haven't been blogging as much as I used to. For a while, I've been hosting my
blog on a single-core DigitalOcean droplet, which cost me around $7 per month.
It also hosted my mail server. Most of the time, the droplet was idle, and I
wasn't actively using my personal email much. Since it was self-hosted, I didn't
have confidence that it would always be up, so I relied on Gmail as my personal
email for everything from banking to social media.
Now, I feel this cost is just a waste of money, even though it's not huge. So, I
decided to move my blog back to GitHub Pages, now published using GitHub
Workflows. I've stopped my mail server for the time being, and it won't be
reachable for a while. For any personal queries or comments, please reach me on
my 
When I started looking at 
If you read the above title, you might wonder how the switch to wayland (yes, the
[1]: If you try to run
About 95% of my Debian contributions this month were