Backend for auto-updating APK #83
No reviewers
Labels
No labels
bug
dependencies
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: organicmaps/meta#83
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "github-releases-updater"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Введём новый app id или переименуем web? Переименование поломает текущих пользователей.
@ -0,0 +3,4 @@
const GITHUB_RELEASES_URL: string = 'https://api.github.com/repos/organicmaps/organicmaps/releases';
// https://docs.github.com/en/rest/authentication/authenticating-to-the-rest-api?apiVersion=2022-11-28#authenticating-with-a-personal-access-token
const GITHUB_BEARER_TOKEN: string =
'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';
Может лучше его из секретов подтягивать? Мало ли опенсорснем потом? Тогда лучше перегенерить.
@ -16,3 +40,4 @@
// 2022.11.20 for iOS versions released before November 21 (without donate menu)
// 2022.11.24-4-ios for newer iOS versions (with donate menu)
// 2022.12.24-10-Google for Android
// 2022.12.24-10-Google-beta for Android
Is Web-beta supported?
@ -0,0 +31,4 @@
'2022.08.23-5-Google-debug',
'2022.08.23-1-fdroid-beta',
'2022.08.23-1-fdroid-debug',
'2022.08.23-1-web-beta',
Этот надо поддерживать.
Или ввести новый флейвор, придумать хорошее название и сделать другой app id, чтобы ставился рядом с уже имеющимися fdroid и web и google и мог их заменить легко. Может даже импортнуть метки автоматом.
@ -0,0 +3,4 @@
const GITHUB_RELEASES_URL: string = 'https://api.github.com/repos/organicmaps/organicmaps/releases';
// https://docs.github.com/en/rest/authentication/authenticating-to-the-rest-api?apiVersion=2022-11-28#authenticating-with-a-personal-access-token
const GITHUB_BEARER_TOKEN: string =
'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';
Я посмотрю как убрать в секреты. Вообще пока кажется, что работает даже без него.
@ -0,0 +31,4 @@
'2022.08.23-5-Google-debug',
'2022.08.23-1-fdroid-beta',
'2022.08.23-1-fdroid-debug',
'2022.08.23-1-web-beta',
Текущий PR добавляет проверку релизов на GitHub. На GitHub выкладывается "web-release". Ничего другого туда не выкладывается.
@ -16,3 +40,4 @@
// 2022.11.20 for iOS versions released before November 21 (without donate menu)
// 2022.11.24-4-ios for newer iOS versions (with donate menu)
// 2022.12.24-10-Google for Android
// 2022.12.24-10-Google-beta for Android
https://github.com/organicmaps/meta/pull/83#discussion_r1485054426
Это отдельная проблема, которая никак не затрагивается в этом PR.
Мы просто так тратим время, или решаем задачу, как дать людям замену версии в фдроиде? Удаление приложения (с удалением меток), чтобы установить его же версию из другого стора — не сработает, сам же понимаешь.
Я пришлю PR в основную репу. Давай здесь закончим хотя бы с автообновлением web. Потом посмотрим стоит ли эту APK совать юзерам в F-Droid напрямую или надо еще что-нибудь там сделать. Может быть какую-нибудь магическую кнопку, которая сама всё поставит и мигрирует. Посмотри плз формат json в api - это будет трудно менять. Я добавил то, что технически нужно.
@ -0,0 +3,4 @@
const GITHUB_RELEASES_URL: string = 'https://api.github.com/repos/organicmaps/organicmaps/releases';
// https://docs.github.com/en/rest/authentication/authenticating-to-the-rest-api?apiVersion=2022-11-28#authenticating-with-a-personal-access-token
const GITHUB_BEARER_TOKEN: string =
'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';
Тогда убрать, если не нужно. Релизы же публичные, ключ тоже тогда публичный может быть или вообще ненужен.
@ -0,0 +11,4 @@
flavor?: string;
type?: string;
apk: {
url: string;
Это урл на саму апк или на описание что нового в релизе на гитхабе? Линк на описание будет?
@ -0,0 +12,4 @@
type?: string;
apk: {
url: string;
name: string;
Что будет в имени?
@ -0,0 +16,4 @@
size: number;
};
// TODO: figure out how to define map properly.
news: {
Это для каких именно новостей? Как клиент должен интерпретировать эти значения?
Если генерик новости, как я хотел сделать раньше, то надо механизм их даты, чтобы не показывать то, что клиент уже посмотрел.
Если это воцнью текст релиза с гитхаба, то он же не локализуется, и надо так прямо и написать.
@ -0,0 +33,4 @@
published_at: Date;
draft: boolean;
prerelease: boolean;
body: string;
Это описание воцнью на гитхабе? В каком формате? Ссылка на него есть?
@ -0,0 +41,4 @@
const appVersion = parseAppVersion(request.headers.get('x-om-appversion'));
if (!appVersion) return new Response('Unknown app version', { status: 400 });
// The release version doesn't have `-release` suffix, thus type should be `undefined`.
Пояснишь, о каких версиях речь? У нас же много разных билдов и сборок, плюс не забывай, что все, кто нас форкает, будут тоже автоматом стучаться на мета сервер с их собственными версиями и названиями. Мы видели их уже в юзер агентах.
@ -21,0 +26,4 @@
'OrganicMaps-24020611- -.apk': null,
'OrganicMaps-2402061-web-release.apk': null,
garbage: null,
'': null,
В моём PR было больше тестов на не поддерживаемые кейзы https://github.com/organicmaps/meta/pull/65/files#diff-4a1ee83ef3a98a79eeaeb2506070a86479a12bad67c28ba34045f71159794373R35
@ -0,0 +16,4 @@
size: number;
};
// TODO: figure out how to define map properly.
news: {
На текущий момент это release notes из релиза на гитхабе. В перспективе можно вытягивать локализованные версии из репозитория, но я не посчитал это важным на текущий момент. Даже не уверен, что в первой версии авто-апдейтер будет эти новости показывать
@ -0,0 +12,4 @@
type?: string;
apk: {
url: string;
name: string;
Название файла. Пока не уверен что прям остро необходимо, может не понадобится.
@ -0,0 +11,4 @@
flavor?: string;
type?: string;
apk: {
url: string;
url на apk который надо качать.
@ -0,0 +33,4 @@
published_at: Date;
draft: boolean;
prerelease: boolean;
body: string;
Это текст из релиза на гитхабе в формате markdown текста.
@ -0,0 +41,4 @@
const appVersion = parseAppVersion(request.headers.get('x-om-appversion'));
if (!appVersion) return new Response('Unknown app version', { status: 400 });
// The release version doesn't have `-release` suffix, thus type should be `undefined`.
Релизные версии не имеют суффикса "-Release" в версии, поэтому type == undefined => "release".
@ -21,0 +26,4 @@
'OrganicMaps-24020611- -.apk': null,
'OrganicMaps-2402061-web-release.apk': null,
garbage: null,
'': null,
Разве там был парсинг имени APK?
@ -0,0 +12,4 @@
type?: string;
apk: {
url: string;
name: string;
filename тогда?
Что там ещё есть полезного?
@ -0,0 +33,4 @@
published_at: Date;
draft: boolean;
prerelease: boolean;
body: string;
Херово что маркдаун, у нас же нет рендерера на девайсе, верно?
Если простого решения нет, то придётся присылать ссылку на гитхаб страницу с этим текстом.
@ -0,0 +41,4 @@
const appVersion = parseAppVersion(request.headers.get('x-om-appversion'));
if (!appVersion) return new Response('Unknown app version', { status: 400 });
// The release version doesn't have `-release` suffix, thus type should be `undefined`.
А если в type мусор от всяких форков? Лучше явно проверять на наши типы.
@ -21,0 +26,4 @@
'OrganicMaps-24020611- -.apk': null,
'OrganicMaps-2402061-web-release.apk': null,
garbage: null,
'': null,
Там тесты на кривые x-om-appversion.
@ -0,0 +31,4 @@
'2022.08.23-5-Google-debug',
'2022.08.23-1-fdroid-beta',
'2022.08.23-1-fdroid-debug',
'2022.08.23-1-web-beta',
Будет работать сейчас, после переименования?
@ -0,0 +33,4 @@
published_at: Date;
draft: boolean;
prerelease: boolean;
body: string;
Рендерить маркдаун пока не будем, верно?
@rtsisyk давай проверим, что работает с новой веб апк и замержим?
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.