Our dev environment
A setup post this week, because I’ve really no progress to report on.
Fossil
Fossil is a source code management system similar to git. Unlike git, it integrates project management features like bug tracking, wikis, and account access control. It’s very much like github, but you can manage it yourself.
Our web host comes with fossil preinstalled. Issue is that at the time I didn’t know it, so it took me a while to get there. But once I figured I could just use the preinstalled version, it went as simply as it could.
Once I got things setup, of course, the first thing I did was personalize the CSS. As you can see, I went ham.
In terms of source code version control, fossil doesn’t change much from git. It is opinionated toward trunk-based development, and automatically syncs before commit. Otherwise, the most important difference is the absence of a staging area. But for solo dev, it’s not that different.
In terms of project management. I didn’t have the opportunity to use the wiki and tickets. However, unlike gitlab, fossil is extremely efficient. And unlike gitea, it runs as a CGI script. Which means I can use it on my host provider. Fossil, furthermore, is fully open source: No gated functionalities, no artificial limitations. It has an expansively fine-grained user access control panel, and a way to sync them between repositories.
For game development, fossil is lacking large file support. I’m currently using the “untracked files” feature to publish (internally) the assets with the dev game executable.
Ideally, tracking of assets goes beyond source control, and is integrated into the game executable as much as source control.
Discord
devildahu exists mostly as a discord server where we coordinate our efforts. (note that we also have a public discord server).
The little programming I did this week involved creating a bot to post fossil timeline updates to our discord server.
The bot is just a rust program running once per hour on the web host that
calls the fossil executable like so: fossil rss
and posts to a
discord webhook a summary. Using a rss
parsing crate, I read the relevant metadatas and, with serde, converts them
into the POST payload for the line item.
This enable us to know what each other is working on. Because I’m terribly
obsessive and want to know everything my friends do it allows to build trust
by making our work and contribution to the team visible. Hopefully motivate
each other to contribute more, and know where to focus our contributions.