Хранение исходного текста
- Исходный текст программы (Python), сценарии сборки (
build.bat,installer/ShkolnyZvonokPRO.spec,installer/ShkolnyZvonokPRO.iss) и история изменений хранятся в репозитории git в облачной инфраструктуре Cloud4Y (ООО «Клауд Фо Ю», дата-центр в г. Москве). Рабочая копия — на компьютере разработчика правообладателя в г. Самаре. - Резервные копии исходного текста — в том же репозитории Cloud4Y (полная история изменений git) и в рабочей копии разработчика.
- Удалённых репозиториев за пределами РФ нет.
- Доступ к коду есть только у сотрудников ООО «Регион-Интеграция».
Хранение объектного кода
- Результат сборки — папка программы (
ShkolnyZvonokPRO.exeи библиотеки в_internal\) и установщикShkolnyZvonokPRO-Setup-<версия>.exe. - Установщики всех выпущенных версий хранятся в репозитории правообладателя в инфраструктуре Cloud4Y (РФ).
- Распространяется только установщик: правообладатель отправляет его по электронной почте после заявки с сайта region-int.ru. Сайт размещён у хостинг-провайдера Jehost, сервер в РФ (дата-центр «Миран», г. Санкт-Петербург).
Компиляция (сборка)
- Сборка выполняется на виртуальной машине Windows 10 в виртуальной инфраструктуре на территории РФ, доступ к которой есть только у правообладателя.
- Инструменты:
- Python 3.8.10 (32 бит);
- PyInstaller 6.10.0 — сборка папкой (
--onedir), параметры вinstaller/ShkolnyZvonokPRO.spec; - Inno Setup 6.7 — установщик (
installer/ShkolnyZvonokPRO.iss).
- Порядок:
build.bat→dist\ShkolnyZvonokPRO\(ShkolnyZvonokPRO.exe+_internal\). Из сборки исключены варианты PortAudio с ASIO (Steinberg ASIO SDK — иная лицензия) и 64-бит/ARM64 (программе x86 не нужны). Сборка останавливается с ошибкой, если в папке нет отдельной DLL libsndfile или попала DLL с ASIO.ISCC installer\ShkolnyZvonokPRO.iss→dist-setup\ShkolnyZvonokPRO-Setup-<версия>.exe. В установщик входят папка программы, мелодии, голосовые оповещения тревог (Мелодии\Тревога), тексты лицензий (LICENSES\) и лицензионное соглашение (installer/license-ru.txt).
- Сборка папкой выбрана из-за LGPL: libsndfile лежит в папке установки отдельной DLL (
_internal\_soundfile_data\libsndfile_x86.dll) и может быть заменена пользователем. - Зависимости сборки (numpy, sounddevice, soundfile, sv-ttk, pycaw) хранятся локально (
release/numpy-*). Версии закреплены вrequirements.txt, состав и версии компонентов — вLICENSES/README.txt.