We're modernizing our App Database
Posted on Sep 11, 2019 by uniqxWe keep a database containing structured information about all apps we’re shipping. Architecture-wise, this is a set of plain text files in a version control system. It’s the heart of our data-driven app building- and distribution- systems. Maybe you’ve heard someone mentioning F-Droid Data already. Occasionally we also refer to this as app metadata.
We started out with a custom domain specific language (DSL) for storing our
metadata files using GIT for version control. Not very surprisingly our
custom DSL looks a lot like the popular markup language YAML. That’s why we
started supporting to store app metadata in .yml
file format a year ago.
We’re finally deprecating .txt
metadata support altogether. Our amazing
packaging team is almost done moving our entire database to .yml
.
To keep things easy, we will continue to ship a handy sub-command so
everyone can conveniently convert now deprecated .txt
metadata files to
.yml
:
$ fdroid rewritemeta --to yml
In the long run, removing .txt
metadata support will allow us to get rid
of a substantial amount of source-code. This will make maintenance a lot
simpler for us and also lower the learning curve for new contributors. It
will also make adding new features faster and simplify creating tooling, CI,
auditing, metrics, etc.
Additionally, this will make our database more accessible to everyone. We hope to see developers, enthusiasts and scientists to come up with interesting third party tools, use-cases or studies.
Our thanks goes to: Izzy and Bubu for migrating our database and Hans and me (uniqx) for implementing YAML metadata support.