Skip to content

Руководство разрабочика

EvilBeaver edited this page Feb 4, 2015 · 15 revisions

#Оглавление

[TOC]

Процесс коллективной разработки

Fork

  • мы работаем через личные "форки", поэтому для разработки вам понадобится сделать FORK проекта
  • сделайте личный fork и добавьте в него отдельным внешним репозиторием главный репозиторий - для удобства назовите его "base" или "upstream"
  • все свои изменения помещайте вначале в личный fork

назначение веток:

  • master - стабильный код выпущенного релиза
  • develop - код будущего релиза, находящегося в активной разработке.
  • feature/* - код взятых в работу задач по созданию новой функциональности или рефакторингу существующей
  • hotfix/* - код исправлений стабильного релиза, в случае если в релизе выявляются ОЧЕНЬ критичные ошибки
  • 2.0 Enterprise - ветка планомерного и неблокирующего рефакторинга архитектуры проекта. Целью ветки является incorporate alien technology.

Feature Branch

  • мы работаем по процессу, который известен как git-flow. Неплохое описание этого процесса можно почитать по ссылкам:
  • для удобства используйте программу SourceTree и инициализируйте GitFlow в только что склонированный личный fork
  • при начале работы над новой функциональностью инициализируйте новую ветку по формату feature/ на базе текущей ветки develop (в git-flow программы SourceTree это выполняется автоматически)
  • не закрывайте ветку функциональности, пока Ваш pull-request не будет утвержден.

Test Driven Development

  • при изменении поведения языка сначала пишите приемочные тесты на языке 1C/OneScript в формате xUnitFor1C. Такая методика работы называется TDD (Test Driven Development)
  • Организация тестирования описана в Wiki организация тестирования
  • примеры тестов находятся в каталоге .\tests репозитория и на Wiki
  • для версии 2.0 Enterprise также используйте стандартный фрэймворк MSTest - примеры можно просмотреть в отдельной ветке нашего репозитория

Pull Request's

  • при подаче pull-request'а имя вашей ветки разработки должно соответствовать целевой в головном репозитории
    • если вы работает над веткой feature/some-feature - целевой веткой тоже должна являться feature/some-feature
    • использование целевой ветки develop запрещено. такой pull-request не будет приниматься.
  • каждый pull-request отрабатывает наш CI сервер на предмет стабильности по следующим шагам - Clean;Build;Tests;CreateInstall; и еще несколько специфичных шагов.
  • Ваш pull-request может быть просмотрен и прокомментирован, поэтому отслеживайте изменения вашего pull-request
  • Инициатор принятия вашего pull-request сливает (выполняет merge) из вашей ветки в ветку develop основного репозитария. После слияния ваш pull-request автоматически закрывается.

Необходимое окружение разработчика

Windows

если всё установлено правильно, то проект должен собираться за один шаг следующей командой:

#!shell
$git clone https://bitbucket.org/<UsernameFork>/1script/ ./My-Fork-Of-1Script
$cd My-Fork-Of-1Script
$%MSBUILD_PATH%\MSBuild.exe ./Build.csproj

успешным результатом является:

  • каталог ./dist
  • файл ./dist/OneScript--setup.exe

Отдельно существуют следующие команды:

генерация новой версии, при начале работы над новым релизом

#!shell
$%MSBUILD_PATH%\MSBuild.exe ./Build.csproj /t:VersionGenerate

создание архива библиотек и exe файлов

#!shell
$%MSBUILD_PATH%\MSBuild.exe ./BuildAll.csproj /t:CreateZipForUpdateDll

запуск приёмочных тестов в формате xUnit

#!shell
$%MSBUILD_PATH%\ MSBuild.exe ./BuildAll.csproj /t:xUnitTest

Linux

#!c#
//TODO

Руководство по разработке, внутреннее устройство проекта

#!c#
//TODO

Ждём Ваших pull request'ов, code review и issue request's

Clone this wiki locally