Noth напрямую интегрируется с узлами службы Oxen, которые представляют собой распределённые, децентрализованные b pfobo`yyst epksузлы. Узлы службы действуют как серверы, хранящие сообщения в офлайн-режиме, а также как сеть узлов, обеспечивающих маршрутизацию через сеть Onion сеть, скрывая IP-адреса пользователей. Полное описание работы можно найти в документе Session Whitepaper.
Для локальной сборки приложения Noth Android требуются:
- JDK 17 - Java Development Kit (требуется версия 17)
- Git - для клонирования репозитория и управления субмодулями
- C++ Toolchain - включая cmake и ninja для сборки нативных компонентов
- Android SDK Build Tools (cmdline tools version: 9123335)
- SDK Platform для всех используемых API уровней (минимум API 26, целевой API 34)
- Субмодули Git - после клонирования репозитория выполните:
git submodule update --init --recursive
Все остальные зависимости будут загружены и установлен автоматически.
Для приложения Noth Android развёрнута автоматическая система тестирования и сборки на базе GitHub Actions Для выпуска новой версии необходимо
- Создать
branch
илиfork
и запрограмировать в нём, всё, что хочется запрограммировать - Cоздать
Pull Request (PR)
. Для PR будет отрабатыватьworkflow
, которое включает в себя Unit Test'ы и сборку отладочной и релизной версии. Указанные версии можно тестировать вручную или автоматически. - По готовности версии необходимо:
- сделать
merge
вmain
- в файле
build.gradle
изменить значенияcanonicalVersionCode
иcanonicalVersionName
.canonicalVersionCode
рекомендуется увеличивать на 1.canonocalVersionName
можно менять, как нравится, но она должна соотвествовать схемеsemantic versioning
- XX.YY.ZZ, например 2.13.7 - поставить метку, соответствующую canonicalVersionCode.
Например, для 2.13.7 нужно вызывать
git tag v2.13.7 git push --tags
- После установки метки автоматически запустятся релизные процедуры. На базе метки будет создан релиз, дял релиза будет собран файл apk и выложен в качестве
release asset
.