The Ur Project

Documenting the craft of stacking things so they remain stacked. For a very long time.

Project Status Update - week 4

I've written before with what my release criteria look like, so let's take a look at where we are with that, first.

Today's project status

What changed?

First, I put a new item on the list, it's at the bottom. I'm adding this not because we can't fix bugs or change things, but because it's the only time I get to change things without breaking anyone else's systems in the process. Now is the last time I can trivially make completely breaking changes free of risk. That's worth a lot.

The biggest gain this week has been that the repo server is up and running. It's live, on the internet, and serving repos. Unfortunately for everyone else, you can't look into it, so there's nothing to peek into. I had to set it up that way because otherwise bots and AI agents would just swarm the repo servers and bring it down. That is an unfortunate reality of doing anything on the public internet these days. I already had to setup something anubis-like on code.foo-projects.org because our Forgejo install was getting scraped like nonsense already, and I'd rather it not.

But the great part is that I can now make installation images, do updates, run tests and all that good stuff without having to rely on an internal LAN mirror. This allowed me to setup several systems this week, including one at my employer's location that will serve as the basis for their own OS going forward.

Testing is looking really good. I hit a point where all my image tests are green and nothing is breaking, so naturally, I'm adding more tests. Once those are all green, we'll ... add more tests! I'm also setting up a scaffold for bare metal testing so that we can directly test actual day-to-day updates, smartly.

What's still needed?

The list is pretty short, but, the open items are pretty beefy things.

It's easy enough to make a system and debug it. But making someone else understand it is an insurmountable task. Even with excellent documentation, it's going to take people a lot of time to understand all of it. And there's so much of it. The code base is very, very large already. It's complex. There are gotchas and unfinished parts, there are bugs and unintended outcomes. It will be chaos when users start playing with all of the stuff that will come out at release, even with good documentation.

So aside from good manual pages, an online documentation portal, and possibly things like tutorial videos, we also need user guides and training videos that explain the basic concepts in a walk-through style with a particular goal. The obvious guides to write are going to be around the package manager and how to use it, and one around the build system and how to set it up and use that.

The big review

But the biggest task left is to take a comb through the desert like in that Spaceballs movie (is part two out yet?) and sift through that. That means dedicated time sifting through code and possibly write more tests, figure out what code isn't used anymore that just dead ends and should be removed, and where the ball was dropped and stupid things exist.

This is going to take time. I'm thinking 2-3 weeks. I'm going to have to make some real sort of schedule to try and tackle all components at least once, and then do some consistent testing on everything. While that progresses, I might have more view over when I can call that done. Ask me in a week, I guess I'll have a better idea of how fast that is going by then.

--sofar (aka Auke)