mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 08:01:30 -07:00
kaios: Put version numbers in manifest files
This only happens if something edits manifest.pl to provide a version number, but Buildscr can do that. KaiOS manifests are documented as requiring dotted-decimal version numbers. In fact, the restrictions are much stricter than that, and unacceptable version numbers can break the KaiStore developer portal. YY.MM.DD version numbers seem to be acceptable.
This commit is contained in:
@ -9,6 +9,9 @@ use JSON::PP;
|
||||
die "usage: manifest.pl <name> <displayname> <description> <objective>";
|
||||
my ($name, $displayname, $description, $objective) = @ARGV;
|
||||
|
||||
# This can be overridden by the build script.
|
||||
my $version = "Unidentified build";
|
||||
|
||||
# Limits from
|
||||
# https://developer.kaiostech.com/docs/getting-started/main-concepts/manifest
|
||||
length($displayname) <= 20 or die "Name too long: $displayname";
|
||||
@ -17,6 +20,18 @@ $objective .= " Part of Simon Tatham's Portable Puzzle Collection.";
|
||||
# https://developer.kaiostech.com/docs/distribution/submission-guideline
|
||||
length($objective) <= 220 or die "Description too long: $objective";
|
||||
|
||||
my $decvers;
|
||||
if ($version =~ /^20(\d\d)(\d\d)(\d\d)\./) {
|
||||
# Fabricate a dotted-decimal version number as required by KaiOS.
|
||||
# The precise requirements are unclear and violating them leads to
|
||||
# messes in the KaiStore that can only be resolved by Developer
|
||||
# Support. Specifically, uploading a bad version number as the
|
||||
# first upload of an app can make it impossible to upload a new
|
||||
# version. I hope that three components of two digits each will
|
||||
# be acceptable.
|
||||
$decvers = join('.', $1+0, $2+0, $3+0);
|
||||
}
|
||||
|
||||
print encode_json({
|
||||
name => $displayname,
|
||||
subtitle => $description,
|
||||
@ -31,6 +46,9 @@ print encode_json({
|
||||
url => "https://bjh21.me.uk",
|
||||
},
|
||||
default_locale => "en-GB",
|
||||
locales => [ ],
|
||||
categories => ["games"],
|
||||
type => "web",
|
||||
cursor => JSON::PP::false,
|
||||
$decvers ? (version => $decvers) : (),
|
||||
})
|
||||
|
Reference in New Issue
Block a user