Для разработки платформы необходим компьютер с операционной системой Windows не ниже Windows XP и 8 или 16 Гб ОЗУ. Мы рекомендуем больше памяти при использовании виртуальной машины.
Существует два варианта подготовки инструментария для компиляции. Первый -- установить Delphi 5 и Firebird 2.5 непосредственно на компьютер следуя этой инструкции.
Второй вариант -- это обратиться к специалистам нашей компании за готовой виртуальной машиной с предустановленной системой Delphi и сервером баз данных.
Существует два режима работы Гедымина с сервером базы данных. В режим клиент-сервер необходима клиентская библиотека (fbclient.dll или gds32.dll -- обязательно разрядностью 32 бита!) и запущенный сервер (на этом же компьютере или доступный по сети).
В режиме встроенного сервера необходима библиотека fbembed.dll которая, собственно, представляет собой весь сервер Firebird выполняющийся в адресном пространстве gedemin.exe.
В настоящее время Гедымин поддерживает серверы Firebird 2.5, Firebird 3 и Firebird 4. Для двух последних необходимо дополнительно настроить файл конфигурации firebird.conf.
Некоторые базы данных могут использовать внешние функции из библиотеки GUDF.DLL. Ее следует скачать с нашего сайта и поместить в подкаталог UDF сервера.
Для запуска Гедымина в рабочем режиме потребуется файл базы данных. Это может быть т.н. эталон -- чистая база данных без загруженных прикладных решений. Свежий эталон всегда находится здесь. Либо, можно воспользоваться одной из установок прикладных решений и взять из нее файл базы данных уже с загруженными пространствами имен (так у нас называются файлы с исходным кодом прикладных решений).
Далее, переходим к получению исходного кода, который находится на github.com в приватном репозитории. Обратитесь к сотрудникам компании, чтобы они предоставили вам доступ к нему.
Мы работаем по такому алгоритму:
0. Настраиваем git. Прописываем свое имя пользователя и email командами:
git config --global user.name "FIRST_NAME LAST_NAME"
git config --global user.email "MY_NAME@example.com"
1. Создаем папку \Golden, переходим в нее и клонируем репозиторий себе на компьютер командой:
git clone https://github.com/GoldenSoftwareLtd/gedemin-private.git gedemin
Выполняем действия для подготовки исходников к компиляции, которые указаны в инструкции выше. Компилируем все библиотеки и сам Гедымин согласно инструкции.
2. Основная ветка -- master -- сразу идет в продакшн. В эту ветку мы не комитим изменения напрямую. Перед тем как делать какие-то изменения снимаем код с сервера и создаем новую ветку:
git pull
git checkout -b IssueXXXX
Команду выполняем в папке Gedemin. Имя ветки на ваш выбор.
3. Делаем изменения. Затем комитим их в свою ветку:
Важно! Перед комитом проверяем, что исходники компилируются в Delphi без ошибок.
git commit -a -m "Пишем комментарий"
Перед комитом можно просмотреть сделанные изменения командой:
git status -uno
Важно! Не следует включать в комит следующие файлы, даже если они были изменены:
- gedemin.res, и, вообще, все *.res файлы
- файлы экранных форм *.DFM, где только поменялись координаты экранных элементов при открытии формы в Delphi
Если такие файлы показывает git как измененные, следует вернуть их в исходное состояние. Например, в окне комита оболочки TortoiseGit выбрать такой файл в списке и из контекстного меню вызвать команду Revert.
4. Загружаем изменения в свою ветку в github:
Первый раз следует выполнить команду для загрузки на сервер вашей ветки:
git push --set-upstream origin <YOUR BRANCH NAME>
git push
5. Идем на сайт github.com и создаем Pull Request из вашей ветки в мастер. После того, как ведущий разработчик подтвердит ваши изменения, они попадут в мастер и пойдут в продакшн.
6. На своем компьютере переключаетесь на ветку мастер и снимаете последние изменения:
git checkout master
git pull
7. Подключив телеграм бот @gbuilderbot можно получать уведомления об автоматической компиляции проекта и сборке дистрибутивов.
С чего начать?
Мы планируем доработки и регистрируем ошибки и пожелания в списке Issues в этом репозитории.
Проконсультируйтесь в ведущим разработчиком и выберите себе для начала что-нибудь простое, чтобы познакомиться с организацией исходного кода и внутренней структурой платформы.
Например, доработки вроде этой вообще не требует написания кода, а только правки экранных форм.
По мере ознакомления и вникания в нюансы внутренней организации платформы можно переходить к более сложным заданиям.