2022 Summary
Here's an incomplete summary of what I did in 2022 that I want to highlight. Notably absent are the various one-off contributions that are typically bugfixes and package maintenance in Alpine and Gentoo.
Pleroma
Start of the year was a mess, I left the project because of Alex Gleason's behavior, tried to do a fork that was quite a failure. But HJ regrouped most of us back to Pleroma with also having contacted lain (owner of the project), Alex Gleason got demoted so we went back to Pleroma. Later he got banned from the project's Gitlab for harassing a contributor.
This whole thing burned me out, I'm glad some people joined, specially tusooa who allowed me to lay back and heal while still guiding her and other contributors. Doing a new branch release took time, partially because we didn't want to simply revert Alex Gleason's controversial modification of granting a lot of power to moderators but instead to make it granular, which took time. But we got 2.5.0 released on December 23.
Would recommend checking out HJ's blog posts about Pleroma if you want more information.
Hare
Hare is a system programming language that got released to the public in early 2022. I would recommend trying it out, for me it ended up replacing Go and most of C (note: badwolf will stay in C, I strongly avoid bindings). I contributed some simple bits here and there to the standard library and tools:
- math: make absi* functions return an unsigned integer
- cmd/haredoc: Fix default HAREPATH
- strings: Fix dupall segfaulting on empty array
- cmd/hare: Do not set progress width to 0
- fs: Fix wrong bitmask for filetype test functions
- os/exec: Make setenv return errors::invalid instead of aborting
- os::exec: Add unsetenv function
- datetime: Fix parsing nanoseconds
- datetime: Add support for parsing timezone offset
- stdlib: Fix format::tar dependencies
- datetime: Add %F and %T to format
- strings/template: Give the missing parameter name in the error
- net/uri: Acknowledge the different allowed characters + net/uri: Fix decoding multi-byte percent-data + net/uri/+test: Use wanted/got wrapping for all str assertions
I switched go-deblob, a tool to remove binary executable files, to an hare version, which made it much more lightweight (Go binaries are huge) and probably much less bugged. Compared to the Go version which only detects ELF and IBM BIOS files, it got much more complete coverage of native executables, bytecode, and serialization formats that can lead to code execution (Perl Storage, Python pickle).
bsyslogd is a not-yet-working syslog daemon I started a bit after realizing that syslog implementations out there are either log4j-like kitchen sinks with thousands of integrated native modules while typically running as root, or are too limited in how they store logs. Sadly it stalled after some months but I still plan to resume it.
New website pages
- /projects/: Lists some important projects in one place
- /notes/bootstrapping: Similarly to /notes/pure-wayland. Here, I note the problems encountered and the current status of trying to have as much software build entirely from source.