Ссылки на репозитории и локальные каталоги¶
Такие ссылки используются в поле developing_project, в списке dependencies, в odoo_git_link и в параметре --init.
Три способа указать источник кода¶
| Способ | Пример | Когда уместно |
|---|---|---|
| HTTPS | https://github.com/org/repo.git |
Публичные репозитории, машины без SSH-ключа |
| SSH | git@github.com:org/repo.git |
Повседневная работа, приватные репозитории |
| Локальный каталог | file:///home/user/my_addons |
Код только на диске, без удалённого git |
После адреса через пробел можно указать ветку и при необходимости коммит:
git@github.com:org/odoo.git 17.0
git@github.com:org/odoo.git 17.0 a1b2c3d4e5f6789abcdef0123456789abcdef012
Почему у file:// три слэша подряд¶
Адрес файла в нотации URL устроен так: схема, двоеточие, два слэша, затем путь.
file://— схема «файл на диске» (два слэша после двоеточия — норма для URL).- На Linux и macOS абсолютный путь начинается с
/. - В итоге получается
file://+/home/user/project=file:///home/user/project— три слэша подряд.
Это не опечатка. Запись file://home/user без третьего слэша для абсолютного пути на Unix неверна.
В подсистеме WSL на Windows для каталогов внутри Linux используйте тот же вид: file:///home/user/....
Как odpm обрабатывает ссылку¶
| Тип | Действие odpm |
|---|---|
| HTTPS, SSH, git@ | Клонирование в каталог ODOO_PROJECTS_DIR из .env, затем выбор ветки/коммита по правилам фиксации версий |
file:// |
Клонирования нет — используется каталог как есть по указанному пути |
Для file:// в файле фиксации версий записывается отпечаток содержимого каталога, а не хеш git — для общей сборки надёжнее удалённый репозиторий.
${VAR} в ссылках manifest¶
В odpm.json и в developing_project можно писать пути и хосты через переменные, чтобы один manifest в git подходил разным машинам:
"odoo_git_link": "file://${ODOO_PLATFORM_DIR}",
"dependencies": ["file://${OCA_WEB_PATH}"],
"developing_project": "file://${DEVELOPING_PROJECT_DIR}"
Значения задают в project .env или в окружении процесса (CI). После раскрытия odpm работает с обычной ссылкой file:// или git URL. Подробнее: odpm.json, переменные .env.
Где указывать в конфигурации¶
- Разрабатываемый проект:
--init <ссылка>илиdeveloping_projectвuser_settings.json. - Платформа Odoo:
odoo_git_linkвodpm.jsonили--odoo-git-linkпри инициализации. - Зависимости: массив
dependenciesвodpm.json.
Практические советы¶
- Для команды в общем git храните адреса удалённых репозиториев, а не
file://. file://— для локальной работы, монорепозитория или кода без публикации на сервер.- Для приватного GitHub/GitLab настройте SSH (
~/.ssh/config); переменнаяPATH_TO_SSH_KEYв.env— только если стандартный SSH недоступен (часто на машине сборки).