Statically validating correctness of Fastlane metadata

Hey Guys,

I am the developer of Noice. The source repository of Noice contains all of the app’s descriptive assets in Fastlane Supply compliant directory structure. After maintaining Noice for a year, I noticed a problem where many people (F-Droid users mostly [thanks guys btw]) contributed translations to the application including the descriptive assets and there was no easy way to validate the correctness of these assets over a pull request. I could run Fastlane Supply with validate_only flag which uploads everything to Google Play but doesn’t publish anything (kind of like a dry run). Since running this requires a Google Play Service Account Key which can should not be exposed to build jobs on PRs, I could only run it locally by manually checking out a PR and stuff.

Of course, there’s nothing wrong in running one check locally before merging such Pull Requests but it misses the whole point of having a CI flow in-place that provides instant feedback to contributors.

To address the problem, I recently wrote a simple validation logic in Golang that validates Fastlane Supply metadata against constraints enforced by the Google Play Store listings. I also published it as a GitHub action and a Docker image ready to be consumed. There hasn’t been much activity since I integrated it into the Noice’s source repository but it did help in mitigating issues in one problematic Pull Request.

I noticed that many apps on F-Droid use Fastlane supply metadata format so I just wanted to let other developers know about this. I hope this proves to be useful to others as well.

1 Like

F-Droid and Guardian Project use Weblate to translate the Fastlane metadata, it automatically shows the translator the errors, like length limits and other checks. I highly recommend that translation workflow because it means you don’t have to pay attention to the translation until its ready.

3 Likes

I came across Weblate earlier and I agree that it’s a more complete solution addressing the general problem. But I far as I could tell, and I could be wrong about this, its hosted version isn’t free for open-source. While the self hosted setup should work out great for big probjects like F-Droid and Guardian, I have to say that it can be an unbearable technical debt for smaller projects.

1 Like

Hosted is for open-source…F-Droid uses that… https://hosted.weblate.org/projects/f-droid/ and many more FOSS apps for free

1 Like

Ohh! I missed that. I checked their pricing page and there it lists out all the paid plans.

1 Like

hosted weblate is free/gratis for free software, you just have to email
them to request an account.