~sircmpwn/sr.ht-announce

Low-volume mailing list for announcements of new sr.ht services and major features

What's cooking on sr.ht

Details
Message ID
<20180915001933.GA7977@homura.localdomain>
Download raw message
Here's another update on the progress of the sr.ht alpha for you. Thanks
again to everyone for testing out the service, keep the feedback coming!

    general news

I'm still working on finalizing the infrastructure for sr.ht. I got some
more databases migrated and refined the Alpine packages a bit more,
which I need to finish so I can complete the migration to the stable
infrastructure. To this end I think meta.sr.ht is pretty much ready to
go, but I still need to spend more time on the other services before
they're ready to migrate. I still haven't finished instrumenting
everything, but I'll prioritize that once the new infrastructure is
completed.

I also spent some time optimizing the weight of all sr.ht pages. I
migrated us to Font Awesome 5, which uses SVG icons, and wrote some
custom server-side code to only include the fonts that are used on each
page instead of the big font bundle. I optimized some nginx settings and
slimmed down the CSS bundle as well, and optimized some images on the
marketing page that I had missed. This has brought down the page weight
of sr.ht to sub-100 KiB on most pages with a cold cache, and sub-10 KiB
with a warm cache. I'm pretty satisfied with this outcome, but there's
even more room to improve - if anyone is interested this would be a
great place to start working on your first patches.

I also unified the sr.ht config files so that you only have to write one
config file for your entire sr.ht network. This also allows me to
specify some config paramters which are consistent across the newtork,
such as SMTP settings, that I can use to extend the functionality of the
shared model, for example to email stack traces for later inspection.
This also makes it easier for third parties hosting their own sr.ht
instances, as difficult configuration was the #1 complaint I heard from
third-party sysadmins.

    builds.sr.ht

The most exciting work recently is probably on builds.sr.ht, after I
rewrote the build runner in Go over the past couple of weeks. The new
runner gives you more insight into what's going on in your build and the
various internal reasons they could fail, but most importantly it allows
me to build interruptable builds. There's now a big "cancel" button on
each job, and builds are capped to 45 minutes to prevent them from
running away forever. This was a blocker for the beta, so it's nice to
have it out of the way. I also added some nice quality-of-life features,
such as the ability to resubmit builds and improvements to the web build
manifest entry.

I like Go a lot and it was really well suited to this use-case. I expect
to be using it more throughout sr.ht in the future. I also merged some
patches from ~hummer12007 which extends the builds.sr.ht secrets feature
to support arbitrary files - not just text files. Check it out!

Unfortunately it seems that the Docker-based qemu isolation isn't
working out well. I've encountered spooky problems with it before[0],
but this one is the worst - and is causing most Alpine builds to fail.
Before the weekend is out I plan on removing Docker from the
builds.sr.ht stack. Until then, I apologise for the broken Alpine
builds.

[0] https://github.com/moby/moby/issues/37575

I also ordered a HiFive Unleased[1] recently, a Linux-capable RISC-V
board. This should arrive in November, and I intend to use it to make
RISC-V builds available to builds.sr.ht users, which I'll then utilize
to port Alpine Linux to RISC-V. Around this time I'll also be building
out support for some running builds for other architectures, like ARM.
Support for many architectures and operating systems is a huge advantage
of builds.sr.ht's design, and I really want to flesh this support out
and stress these strengths. RISC-V is a really exciting architecture,
too - this is the first usable CPU which has 100% open source software,
firmware, _and_ hardware. I'm terribly excited about it.

[1] https://www.sifive.com/products/hifive-unleashed/

    git.sr.ht

git.sr.ht has followed along with everyone else on the config overhaul
and page weight optimizations, but the most exciting new feature is in
the git.sr.ht -> builds.sr.ht submission feature, which now supports
submitting multiple build manifests on every push. If you create a
directory at the root called .builds, every .yml file therein will be
submitted to builds.sr.ht on each push. This is already being used to
good effect by mrsh[1] to run builds on Alpine and FreeBSD with every
push.

[2] https://git.sr.ht/~emersion/mrsh

This is also now being used to automatically build and publish packages
for core.sr.ht on both Alpine and Arch Linux, which was a pre-requisiste
to porting everything to Alpine for the Big Infrastructure Project.

    todo.sr.ht

I spent some time making todo.sr.ht fully responsive, replacing the
ticket table with a custom layout based on CSS grid. Bug trackers should
be usable on phones now! It also looks better on desktops, particularly
for threads with lots of comments or long titles.