Этот документ поможет вам ознакомиться с нашим процессом разработки.
При внесении изменений в исходный код, пожалуйста, следуйте следующим правилам:
- Каждое изменение должно быть логически завершенным и, по возможности, минимальным. Это позволит нам быстрее проверить и принять его.
- Старайтесь придерживаться единообразного стиля оформления кода.
- Детально опишите, что и зачем ваш код исправляет.
- Если ваше исправление требует обновления документации (справки, Энциклопедии и т.п.), не забудьте и ее обновить.
- Исправления желательно отправлять в виде пулл реквестов в репозиторий или в виде diff-файлов на наш багтрекер или форум.
- Если вы планируете вносить большие исправления или просто желаете находиться в курсе последних событий в разработке Far'а, подпишитесь на нашу рассылку для разработчиков ([email protected]).
- Если вы будете присылать нам исправления часто и хорошего качества, вам будет предоставлен полный доступ к репозиторию, на наше усмотрение.
-
Для сборки в Visual Studio можно использовать проект для IDE или makefile.
Пример для msbuild & vcxproj:
msbuild /property:Configuration=Release;platform=x64 far.vcxproj
Пример для nmake & makefile:
nmake /f makefile_vc
-
Для сборки в GCC можно использовать makefile.
Пример для MinGW & makefile:
mingw32-make -f makefile_gcc
Также см. комментарии в makefile_* для дополнительных параметров сборки.
- Все комментарии по внесенным изменениям пишутся в файл
changelog
. В исходном коде имеет смысл оставлять комментарии только если участок может быть непонятен для "будущих поколений". - Изменения добавляются в начало файла.
- Каждая запись начинается с шапки вида:
warp 05.12.2006 01:39:38 +0300 - build 2149
- Изменениям может не присваиваться билд, например, была косметика или изменения не в коде.
- Пример макроса для создания шапки:
Macro {
area="Editor"; key="Ctrl`"; action = function()
Keys("CtrlHome End CtrlLeft")
build=mf.int(mf.substr(Editor.Value,Editor.RealPos-1))+1;
Keys("CtrlHome")
print(mf.date("name %d.%m0.%Y %H:%M:%S %z - build ")) print(build)
for RCounter=4,1,-1 do Keys("Enter") end
Keys("Up Up 1 . Space")
end;
}
- Этот файл содержит информацию для генерирования версии Far:
SPECIAL_VERSION
, строка, которая, если задана, помечает сборку как специальную.- Предназначено для выпуска версий Far, код которых ещё не вошел в репозиторий, чтоб не путать пользователей и нас.
- Если не задана, тип сборки будет определён переменной окружения FARMANAGER_BUILD_TYPE. Если переменная не задана, тип сборки будет приватным. Поддерживаемые типы сборок см. в перечислении VERSION_STAGE в plugin.hpp.
VERSION_MAJOR
- мажорная версия Far (например, 3).VERSION_MINOR
- минорная версия Far (например, 0).VERSION_REVISION
- ревизия версии Far (например, 0).VERSION_BUILD
- задаётся в файлеvbuild.m4
.
- Если в файле
vbuild.m4
был изменен номер билда, то после коммита изменений в репозиторий необходимо запуститьtag_build.bat
.
- Lng-файлы ренерируются автоматически.
Добавлять изменения надо вfarlang.templ.m4
.
Если вы не знаете, как перевести новые строки на какой-либо язык, используйте английский вариант с префиксомupd:
.
-
DWORD_PTR, LONG_PTR, etc. применяется вместо DWORD/long/etc. в следующих случаях:
- нужны там где раньше были int/long/dword/или_любой_не_поинтер_тип_даных и в него пихали поинтер
- ...
- ...
Напоминаниям, TODO, примечаниям и т. п. место на багтрекере.