Hi everyone,
I’ve started working on a FOSS, AGPLv3 API to easily deal with flake inputs not having a notion of semantic versioning. This is easily self hosted, we provide a nix package and a container via our flake, as well as a docker container on ghrc Package rime · GitHub.
The value it delivers is simple: your flake inputs can easily be the latest released version from a forge. It doesn’t even require those forges to follow semver. This is something I’ve myself wanted as an application developer for my own projects that relies heavily on flakes.
We currently support this for Github, self hosted Gitea, self hosted Forgejo, and Codeberg. We plan to expand support to Gitlab, Github EE, and whatever other forges people want to contribute.
We also support flakehub, but only getting a specific flake version.
We host this API on http://rime.cx, although the latest version with support for more than github won’t be deployed on it until thursday when we next release. The api also won’t be promised to be reliable yet, as we are iterating rapidly on it at the moment.
A current known issue is we don’t differentiate between normal releases and releases tagged a pre-release, we will in the future. Right now the project is only 3 days old, so we simply haven’t gotten to it yet.
We might also make some fancy frontend, but it isn’t a priority. We have the unique advantage of not requiring flakes to be registered, so we think we could do something cool here.
Link: GitHub - cafkafk/rime: Nix Flake Input Versioning
EDIT: I couldn’t wait until the scheduled thursday release, and cut a release early.
We just release v0.1.1
, bringing gitlab (including self hosted), codeberg, forgejo, gitea, and version pinned flakehub support.
It also adds automatic discovery, allowing you to run e.g. nix run 'http://rime.cx/v1/git.madhouse-project.org/algernon/riemann-c-client.tar.gz'
without specifying the type of forge.
All of this is currently live via rime.cx
, or you can self host it if you so desire.