Skip to content

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

EvilBeaver edited this page Dec 5, 2014 · 15 revisions

#Оглавление

[TOC]

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

Fork

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

Feature Branch

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

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

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

Test Driven Development

  • при изменении поведения языка, вначале пишите приемочные тесты в формате xUnit
  • примеры тестов находятся в каталоге .\tests репозитория и в Wiki
  • для версии 2.0 Enterprise также используйте стандартный фрэймворк MSTest - примеры можно просмотреть в отдельной ветке нашего репозитория

Pull Request's

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