Hey everyone,
it's been a while since the last update. I'm sending this e-mail to
both the announcements and community list to a) break the ice on the
community list and b) make it easier/ more approachable for people to
reply to the announcement on the community list.
So far the community list hasn't really gotten used, since we mostly
communicate on Matrix. In the future I suspect the community list
would be the easiest place to report issues, and contribute code
changes, since our GitLab requires account verification, which can be
annoying.
In the meantime, let's get into todays announcements:
Irdest has received two new NLnet grants this year! One for myself,
and one for Aman, who has been part of the Irdest community for many
years, and I'm very excited to get to work with him finally :)
My NLnet grant
--------------
The Irdest project has been in a strange state for this past year (and
a bit). Since we forked off from qaul.net, there was a kind of
pressure to change things on a technical and social level, to work
towards a new vision for the project. And I think, mostly, we have
succeeded at that.
At the same time, the result of this "exploration" has been technical
debt at many levels, inconsistencies that have slowly accumulated, and
more and more bugs that are the result of them.
This is going to be the focus of my grant work: to bring Irdest into a
more unified state, to integrate features that were written as part of
the last NLnet grant but haven't been able to properly land in a
release. And to make the codebase easier to understand, work on, and
maintain in the future. The core of the Irdest project (Ratman) used
to be just one component of a larger tower, but now it _is_, at least
in many ways, the tower. This needs to be reflected in the way the
project and repository is structured.
New release
-----------
Today I am tagging release/0.5.0!
It brings a lot of simplification to the codebase. All of the ratman
utility crates (-netmod, -client, -types) have been consolidated into
"libratman", which also replaces the "ratman" crate name, since there
is little point to having a crate on crates.io that purely represents
an executable target (the daemon). The daemon is now called
"ratmand". The ratman tools are now no longer special parts of the
ratman tree, and have instead been moved to the clients directory,
with the rest of the applications that interact with ratmand over its
client API.
Additionally I changed the configuration format from JSON to KDL [1].
I've been deliberating about this change for a long time now, and
while the code for parsing the configuration is now a lot more
complex, it also allows us to upgrade configurations in-place in the
future, can handle comments more easily, in-place edits, nested
structures without getting unwieldy to edit, etc. The syntax will
most likely be new to people, but I feel it's straight forward enough
(especially in the way that we use it) that it should be easy enough
to get used to.
There are some other smaller things that you can read about in the
release announcement! [2]
Aman's grant
------------
And finally, I want to briefly talk about Aman's NLnet project: part
of the shift in "vision" for Irdest has been to move away from the
idea of building another meshing "app", and instead focus on the idea
that technical infrastructure requires work and maintenance, and to
democratise this work and maintenance.
Making it easy to take existing router hardware, and augment it with
easy to use and configure meshing capabilities, in our opinion, is
fundamental to getting a project like Irdest not only to succeed, but
to stick around any one hype wave. I have installed and forgotten
about too many "apps" that were too single minded in their approach to
communication. So, with this in mind: Aman's grant focuses on
building ratmand and any other necessary tools for OpenWRT and
building images/ packages that people can install via the existing
OpenWRT package infrastructure. Additionally, he will be working on a
netmod driver for embedded bluetooth boards. Potentially this could
re-use some of the serial driver infrastructure we already have in
place for the LoRa modems, but we'll see.
In conclusion
-------------
Anyway, I am very excited about the future of this project. There are
still many many things to do, and I hope to be able to provide updates
on how things are going more frequently. In the meantime I will start
using the announcement mailing list for actual release announcements,
plus probably I will start posting RFCs (requests for comment) on the
community list regarding our upcoming specification and similar!
Thank you for reading my somewhat rambly thoughts on the future of
development. If you have any questions, feel free to reply to this
e-mail, or start a new thread (on the community list).
Read you all soon,
- Kookie
---
[1]: https://kdl.dev
[2]: https://git.irde.st/we/irdest/-/tags/release%2F0.5.0