-
Notifications
You must be signed in to change notification settings - Fork 30
Правила внесения изменений в компоненты
Margarita Volodina edited this page Mar 23, 2021
·
2 revisions
- Необходимо следовать правилам работы с ветками
- Все зависимости, которые нужны для библиотеки и примеров, должны быть описанны в components.json
- Необходимо поддерживать обратную совместимость. Для этого можно пользоваться
@Deprecated
аннотацией для старого кода с указанием версии, когда она была добавлена. Если это невозможно, то следует сказать ответственному за этот репозиторий, в этом случае ваши изменения пойдут в след версию с другим MAJOR или MINOR значением. При нарушении обратной совместимости следует в RELEASE_NOTES.md компонента описать, как она была нарушена, и добавить лейбл NO BACKWARD COMPATIBILITY к описанию этих изменений. - В каждом файле с исходным кодом должна быть лицензия
- Писать release notes, документацию и комментарии только на английском языке
- Актуализировать инструментальные и Unit тесты
- Актуализировать Sample модули
- Актуализировать Template модуль
- Актуализировать документацию
- Readme.md компонента, библиотеки,семпла
- Файлы из папки /docs компонента
- Связанные файлы из папки /docs AndroidStandard
- RELEASE_NOTES.md компонента
- В каждом компоненте должен быть Readme.md с описанием назначения компонента и основных классов. При необходимости Readme.md следует добавить для библиотек и семплов
- При большом количестве документации она должна располагаться в папке /docs компонента
- В каждом компоненте должен быть RELEASE_NOTES.md с описанием версионных изменений
- Release notes, документация и комментарии должны быть только на английском языке
- Для каждого компонента должна быть запись в списке всех компонентов в папке /docs AndroidStandard
- В каждом файле с исходным кодом должна быть лицензия
- Для каждой библиотеки должен быть модуль с именем -sample c примером использования.
- Для sample-модуля должны быть написаны инструментальные тесты с проверкой работоспособности всех интерактивных элементов
- Для правильной конфигурации проекта компонент должен быть записан в файле components.json
- Все зависимости, которые нужны для библиотеки и примеров, должны быть описанны в components.json
- При создании примеров к модулям необходимо использовать модуль sample-common, если примеру не требуется конфигурация Dagger, или модуль sample-dagger, если примеру требуется конфигурация Dagger (можно использовать конфигурацию, поставляемую данным модулем по умолчанию, либо добавить кастомные зависимости, как описано в README.md модуля).
- При конфигурации нового компонента следует определить, предназначен ли он для деплоя. В зависимости от этого необходимо в
build.gradle
нового компонента подключить подходящий скрипт для настройки модуля -apply from: "$rootDir/buildSrc/baseDeployBuild.gradle"
для модулей, которые требуется деплоить, иapply from: "$rootDir/buildSrc/baseBuild.gradle"
для модулей, для деплоя не предназначенных.
Release notes должны содержать информацию, влияющую на сам артефакт и не должны содержать инфраструктурных изменений.
Release notes не нужны при изменении:
- .gradle файлов
- .md файлов
- семплов (содержимое деректорий sample)
- тестов (содержимое деректорий test и androidTest)