-
Notifications
You must be signed in to change notification settings - Fork 30
2022 Поддержка AndroidStandard
Margarita Volodina edited this page May 31, 2022
·
3 revisions
Ветка main
содержит новую упрощенную билдсистему. Старая осталась в ветке dev/G-0.5.0
.
- version-plugin используется для удобного версионирования: подключая плагин, указав его глобальную версию, можно затем с помощью него получить локальную версию каждого артефакта без указания вручную по отдельности, этот подход используется в шаблоне при настройке локального подключения
- CI переехал на github actions вместо Jenkins
- Упрощена, но не переписана полностью для сохранения обратной совместимости и минимального вмешательства в проектные снепшоты
- components.json описывает все компоненты в json-формате, затем файл парсится, и компоненты подключаются с помощью отдельных утилит, описанных в buildSrc, таким образом вся информация о компонентах AS доступна через kotlin-классы
- Для простоты и минимизации времени сборки из нее исключены примеры (samples к модулям) и deprecated-модули (таким образом также уменьшается связность, упрощается внесение изменений в AS). При необходимости можно любой компонент включить/исключить из билда (свойство
"disabled": true
вcomponents.json
), для samples"enabled_samples": false
, пример (сборку можно настраивать гибко при необходимости, например, включить нужный sample локально)- чтобы изменения были доступны в snapshot-ветках, необходим merge с веткой main
- Упрощена логика версионирования
- Убедиться, что проектная ветка
project-snapshot/PROJECT-TAG
имеет файлы workflows, если их нет, то следует их сначала добавить (можно взять актуальные из ветки main и запушить в ветку снепшота, это необходимо, чтобы github actions заработали) - Миграция версионирования: после деплоя на новой билдсистеме версия изменится, например: старая версия
0.5.0-alpha.202-BET.34
, новая версия0.5.0-BET.35
(последнее число всегда инкрементится, при этом из версии снепшота удалены лишние элементы). Актуальную версию снепшота можно получить из логов деплоя на этапеDeploy version plugin
:
> Task :android-standard-version-plugin:publishMavenPublicationToExternalRepository
Publishing ru.surfstudio.android:version-plugin:0.5.0-BET.35 to https://artifactory.surfstudio.ru/artifactory/libs-release-local
- permission lib Разделение библиотек (permission, permission-deprecated) возникло из-за разных подходов к навигации (permission-deprecated использует старую навигацию на основе core-navigation, в то время как permission мигрировал на новую навигацию. Таким образом, если ваш проект основан на старой навигации, и миграция не планируется, то permission-deprecated лучше подходит, несмотря на свое название (аналогично для библиотек, использующих permission: location-deprecated, picture-provider-deprecated)