Для начала работы нужно склонировать репозиторий и перейти в созданную директорию
git clone https://github.com/VKCOM/vkid-android-sdk.git
cd vkid-android-sdkТак же можно сделать форк и склонировать его
Все команды запускаются из корня проекта
./gradlew build- полная сборка проекта./gradlew test- прогон unit тестов./gradlew lint- запуск android линта./gradlew detekt- запуск detekt для проверки качества кода./gradlew connectedAndroidTest- запуск автотестов
Ветки создаются от master.
Для названия веток используется специальный шаблон:
{task_type}/{issue_number}/{description}
Где:
- {task_type} - "fix", если это испарвление бага и "feature", если это полноценная доработка
- {issue_number} - VKIDSDK-XXX для разработчиков VK и ISSUE-XXX для внешних контрибьютеров
- {description} - Краткое описание проделанной работы
Пример:
git checkout master
git pull
git checkout -b feature/ISSUE-0000/some-featureСообщение в коммите должно соответствовать шаблону:
{issue_number}: {commit_description}
Где:
- {issue_number} - VKIDSDK-XXX для разработчиков VK и ISSUE-XXX для внешних контрибьютеров
- {commit_description} - Краткое описание коммита на английском языке
Пример:
git checkout master
git add -A
git commit -m "ISSUE-0000: some commit description"Перед пушем ветки нужно убедиться, что обновлено публичное апи модулей и залочены зависимости
./gradlew allDependencies --write-locks
git commit -m "ISSUE-XXX: Update dependency locks"
./gradlew apiDump
git commit -m "ISSUE-XXX: Update public api"
git pushОбратите внимание, что в коммитах нужно указать номер issue, в рамках которой будет сделан pull request
Также проверьте, что после выполнения ./gradlew apiDump в вайлах *.api нету изменений, ломающих обратную совместимость и
все изменения в публичном апи обоснованы.
Заголовок мра должен быть сделан по следующему шаблону:
{issue_number}: {commit_description}
Где:
- {issue_number} - VKIDSDK-XXX для разработчиков VK и ISSUE-XXX для внешних контрибьютеров
- {commit_description} - Краткое описание коммита на английском языке
Пример:
ISSUE-000: Some issue description