Backend for auto-updating APK #83

Open
rtsisyk wants to merge 1 commit from github-releases-updater into master
Owner
curl -vv -H 'x-om-appversion: 2022.08.01-1-Web' http://localhost:59830/releases
{
	"published_at": "2024-02-06T15:08:00Z",
	"code": 24020611,
	"news": {
		"en-US": "<TEXT>"
	},
	"apk": {
		"name": "OrganicMaps-24020611-web-release.apk",
		"size": 62334329,
		"url": "https://github.com/organicmaps/organicmaps/releases/download/2024.02.06-11-android/OrganicMaps-24020611-web-release.apk"
	}
}
```bash curl -vv -H 'x-om-appversion: 2022.08.01-1-Web' http://localhost:59830/releases ``` ```json { "published_at": "2024-02-06T15:08:00Z", "code": 24020611, "news": { "en-US": "<TEXT>" }, "apk": { "name": "OrganicMaps-24020611-web-release.apk", "size": 62334329, "url": "https://github.com/organicmaps/organicmaps/releases/download/2024.02.06-11-android/OrganicMaps-24020611-web-release.apk" } } ```
biodranik (Migrated from github.com) reviewed 2024-02-09 22:32:28 +00:00
biodranik (Migrated from github.com) left a comment

Введём новый app id или переименуем web? Переименование поломает текущих пользователей.

Введём новый 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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';
biodranik (Migrated from github.com) commented 2024-02-09 22:21:03 +00:00

Может лучше его из секретов подтягивать? Мало ли опенсорснем потом? Тогда лучше перегенерить.

Может лучше его из секретов подтягивать? Мало ли опенсорснем потом? Тогда лучше перегенерить.
@ -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
biodranik (Migrated from github.com) commented 2024-02-09 22:29:23 +00:00

Is Web-beta supported?

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',
biodranik (Migrated from github.com) commented 2024-02-09 22:31:24 +00:00

Этот надо поддерживать.

Или ввести новый флейвор, придумать хорошее название и сделать другой app id, чтобы ставился рядом с уже имеющимися fdroid и web и google и мог их заменить легко. Может даже импортнуть метки автоматом.

Этот надо поддерживать. Или ввести новый флейвор, придумать хорошее название и сделать другой app id, чтобы ставился рядом с уже имеющимися fdroid и web и google и мог их заменить легко. Может даже импортнуть метки автоматом.
rtsisyk reviewed 2024-02-10 10:46:38 +00:00
@ -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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';
Author
Owner

Я посмотрю как убрать в секреты. Вообще пока кажется, что работает даже без него.

Я посмотрю как убрать в секреты. Вообще пока кажется, что работает даже без него.
rtsisyk reviewed 2024-02-10 10:47:45 +00:00
@ -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',
Author
Owner

Текущий PR добавляет проверку релизов на GitHub. На GitHub выкладывается "web-release". Ничего другого туда не выкладывается.

Текущий PR добавляет проверку релизов на GitHub. На GitHub выкладывается "web-release". Ничего другого туда не выкладывается.
rtsisyk reviewed 2024-02-10 10:48:04 +00:00
@ -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
Author
Owner
https://github.com/organicmaps/meta/pull/83#discussion_r1485054426
Author
Owner

Введём новый app id или переименуем web? Переименование поломает текущих пользователей.

Это отдельная проблема, которая никак не затрагивается в этом PR.

> Введём новый app id или переименуем web? Переименование поломает текущих пользователей. Это отдельная проблема, которая никак не затрагивается в этом PR.
biodranik commented 2024-02-10 12:16:18 +00:00 (Migrated from github.com)

Это отдельная проблема, которая никак не затрагивается в этом PR.

Мы просто так тратим время, или решаем задачу, как дать людям замену версии в фдроиде? Удаление приложения (с удалением меток), чтобы установить его же версию из другого стора — не сработает, сам же понимаешь.

> Это отдельная проблема, которая никак не затрагивается в этом PR. Мы просто так тратим время, или решаем задачу, как дать людям замену версии в фдроиде? Удаление приложения (с удалением меток), чтобы установить его же версию из другого стора — не сработает, сам же понимаешь.
Author
Owner

Это отдельная проблема, которая никак не затрагивается в этом PR.

Мы просто так тратим время, или решаем задачу, как дать людям замену версии в фдроиде? Удаление приложения (с удалением меток), чтобы установить его же версию из другого стора — не сработает, сам же понимаешь.

Я пришлю PR в основную репу. Давай здесь закончим хотя бы с автообновлением web. Потом посмотрим стоит ли эту APK совать юзерам в F-Droid напрямую или надо еще что-нибудь там сделать. Может быть какую-нибудь магическую кнопку, которая сама всё поставит и мигрирует. Посмотри плз формат json в api - это будет трудно менять. Я добавил то, что технически нужно.

> > Это отдельная проблема, которая никак не затрагивается в этом PR. > > Мы просто так тратим время, или решаем задачу, как дать людям замену версии в фдроиде? Удаление приложения (с удалением меток), чтобы установить его же версию из другого стора — не сработает, сам же понимаешь. Я пришлю PR в основную репу. Давай здесь закончим хотя бы с автообновлением web. Потом посмотрим стоит ли эту APK совать юзерам в F-Droid напрямую или надо еще что-нибудь там сделать. Может быть какую-нибудь магическую кнопку, которая сама всё поставит и мигрирует. Посмотри плз формат json в api - это будет трудно менять. Я добавил то, что технически нужно.
biodranik (Migrated from github.com) reviewed 2024-02-11 18:35:31 +00:00
@ -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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';
biodranik (Migrated from github.com) commented 2024-02-11 16:26:02 +00:00

Тогда убрать, если не нужно. Релизы же публичные, ключ тоже тогда публичный может быть или вообще ненужен.

Тогда убрать, если не нужно. Релизы же публичные, ключ тоже тогда публичный может быть или вообще ненужен.
@ -0,0 +11,4 @@
flavor?: string;
type?: string;
apk: {
url: string;
biodranik (Migrated from github.com) commented 2024-02-11 17:57:57 +00:00

Это урл на саму апк или на описание что нового в релизе на гитхабе? Линк на описание будет?

Это урл на саму апк или на описание что нового в релизе на гитхабе? Линк на описание будет?
@ -0,0 +12,4 @@
type?: string;
apk: {
url: string;
name: string;
biodranik (Migrated from github.com) commented 2024-02-11 17:57:25 +00:00

Что будет в имени?

Что будет в имени?
@ -0,0 +16,4 @@
size: number;
};
// TODO: figure out how to define map properly.
news: {
biodranik (Migrated from github.com) commented 2024-02-11 17:54:57 +00:00

Это для каких именно новостей? Как клиент должен интерпретировать эти значения?

Если генерик новости, как я хотел сделать раньше, то надо механизм их даты, чтобы не показывать то, что клиент уже посмотрел.

Это для каких именно новостей? Как клиент должен интерпретировать эти значения? Если генерик новости, как я хотел сделать раньше, то надо механизм их даты, чтобы не показывать то, что клиент уже посмотрел.
biodranik (Migrated from github.com) commented 2024-02-11 18:32:53 +00:00

Если это воцнью текст релиза с гитхаба, то он же не локализуется, и надо так прямо и написать.

Если это воцнью текст релиза с гитхаба, то он же не локализуется, и надо так прямо и написать.
@ -0,0 +33,4 @@
published_at: Date;
draft: boolean;
prerelease: boolean;
body: string;
biodranik (Migrated from github.com) commented 2024-02-11 17:59:28 +00:00

Это описание воцнью на гитхабе? В каком формате? Ссылка на него есть?

Это описание воцнью на гитхабе? В каком формате? Ссылка на него есть?
@ -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`.
biodranik (Migrated from github.com) commented 2024-02-11 18:02:02 +00:00

Пояснишь, о каких версиях речь? У нас же много разных билдов и сборок, плюс не забывай, что все, кто нас форкает, будут тоже автоматом стучаться на мета сервер с их собственными версиями и названиями. Мы видели их уже в юзер агентах.

Пояснишь, о каких версиях речь? У нас же много разных билдов и сборок, плюс не забывай, что все, кто нас форкает, будут тоже автоматом стучаться на мета сервер с их собственными версиями и названиями. Мы видели их уже в юзер агентах.
@ -21,0 +26,4 @@
'OrganicMaps-24020611- -.apk': null,
'OrganicMaps-2402061-web-release.apk': null,
garbage: null,
'': null,
biodranik (Migrated from github.com) commented 2024-02-11 18:35:26 +00:00

В моём PR было больше тестов на не поддерживаемые кейзы https://github.com/organicmaps/meta/pull/65/files#diff-4a1ee83ef3a98a79eeaeb2506070a86479a12bad67c28ba34045f71159794373R35

В моём PR было больше тестов на не поддерживаемые кейзы https://github.com/organicmaps/meta/pull/65/files#diff-4a1ee83ef3a98a79eeaeb2506070a86479a12bad67c28ba34045f71159794373R35
rtsisyk reviewed 2024-02-11 18:52:27 +00:00
@ -0,0 +16,4 @@
size: number;
};
// TODO: figure out how to define map properly.
news: {
Author
Owner

На текущий момент это release notes из релиза на гитхабе. В перспективе можно вытягивать локализованные версии из репозитория, но я не посчитал это важным на текущий момент. Даже не уверен, что в первой версии авто-апдейтер будет эти новости показывать

На текущий момент это release notes из релиза на гитхабе. В перспективе можно вытягивать локализованные версии из репозитория, но я не посчитал это важным на текущий момент. Даже не уверен, что в первой версии авто-апдейтер будет эти новости показывать
rtsisyk reviewed 2024-02-11 18:53:02 +00:00
@ -0,0 +12,4 @@
type?: string;
apk: {
url: string;
name: string;
Author
Owner

Название файла. Пока не уверен что прям остро необходимо, может не понадобится.

Название файла. Пока не уверен что прям остро необходимо, может не понадобится.
rtsisyk reviewed 2024-02-11 18:53:12 +00:00
@ -0,0 +11,4 @@
flavor?: string;
type?: string;
apk: {
url: string;
Author
Owner

url на apk который надо качать.

url на apk который надо качать.
rtsisyk reviewed 2024-02-11 18:53:45 +00:00
@ -0,0 +33,4 @@
published_at: Date;
draft: boolean;
prerelease: boolean;
body: string;
Author
Owner

Это текст из релиза на гитхабе в формате markdown текста.

Это текст из релиза на гитхабе в формате markdown текста.
rtsisyk reviewed 2024-02-11 18:54:16 +00:00
@ -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`.
Author
Owner

Релизные версии не имеют суффикса "-Release" в версии, поэтому type == undefined => "release".

Релизные версии не имеют суффикса "-Release" в версии, поэтому type == undefined => "release".
rtsisyk reviewed 2024-02-11 18:54:38 +00:00
@ -21,0 +26,4 @@
'OrganicMaps-24020611- -.apk': null,
'OrganicMaps-2402061-web-release.apk': null,
garbage: null,
'': null,
Author
Owner

Разве там был парсинг имени APK?

Разве там был парсинг имени APK?
biodranik (Migrated from github.com) reviewed 2024-02-11 20:23:35 +00:00
@ -0,0 +12,4 @@
type?: string;
apk: {
url: string;
name: string;
biodranik (Migrated from github.com) commented 2024-02-11 20:23:35 +00:00

filename тогда?

Что там ещё есть полезного?

filename тогда? Что там ещё есть полезного?
biodranik (Migrated from github.com) reviewed 2024-02-11 20:24:36 +00:00
@ -0,0 +33,4 @@
published_at: Date;
draft: boolean;
prerelease: boolean;
body: string;
biodranik (Migrated from github.com) commented 2024-02-11 20:24:36 +00:00

Херово что маркдаун, у нас же нет рендерера на девайсе, верно?
Если простого решения нет, то придётся присылать ссылку на гитхаб страницу с этим текстом.

Херово что маркдаун, у нас же нет рендерера на девайсе, верно? Если простого решения нет, то придётся присылать ссылку на гитхаб страницу с этим текстом.
biodranik (Migrated from github.com) reviewed 2024-02-11 20:25:40 +00:00
@ -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`.
biodranik (Migrated from github.com) commented 2024-02-11 20:25:39 +00:00

А если в type мусор от всяких форков? Лучше явно проверять на наши типы.

А если в type мусор от всяких форков? Лучше явно проверять на _наши_ типы.
biodranik (Migrated from github.com) reviewed 2024-02-11 20:26:53 +00:00
@ -21,0 +26,4 @@
'OrganicMaps-24020611- -.apk': null,
'OrganicMaps-2402061-web-release.apk': null,
garbage: null,
'': null,
biodranik (Migrated from github.com) commented 2024-02-11 20:26:53 +00:00

Там тесты на кривые x-om-appversion.

Там тесты на кривые x-om-appversion.
biodranik (Migrated from github.com) reviewed 2024-03-05 22:41:18 +00:00
@ -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',
biodranik (Migrated from github.com) commented 2024-03-05 22:41:18 +00:00

Будет работать сейчас, после переименования?

Будет работать сейчас, после переименования?
biodranik (Migrated from github.com) reviewed 2024-03-05 22:43:07 +00:00
@ -0,0 +33,4 @@
published_at: Date;
draft: boolean;
prerelease: boolean;
body: string;
biodranik (Migrated from github.com) commented 2024-03-05 22:43:07 +00:00

Рендерить маркдаун пока не будем, верно?

Рендерить маркдаун пока не будем, верно?
biodranik commented 2024-03-05 22:44:02 +00:00 (Migrated from github.com)

@rtsisyk давай проверим, что работает с новой веб апк и замержим?

@rtsisyk давай проверим, что работает с новой веб апк и замержим?
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin github-releases-updater:github-releases-updater
git checkout github-releases-updater
Sign in to join this conversation.
No description provided.