Как я могу добавить сторонние приложения Django в мой проект Djano, если они требуют небольших изменений кода?Мне нужно, чтобы я мог:
- Объединить вышестоящие изменения
- Отправлять запросы на получение новых функций / модов
- Использовать измененное приложение в нескольких проектах
- Возможность развертывания измененного приложения с моим проектом Django
- Сохранение конфиденциальности (необязательно)
Существующие полу-решения
Кажется, в этой теме много путаницы.Методы, которые я, похоже, предложил:
Метод # 1 - pip / virtualenv - сохранить проект в отдельном репо и добавить его в путь к Python.Преимущество: правильное разделение кода на отдельные проекты, вероятно, в целом чище, менее сложно. Недостаток: требуется более сложное управление для обновления зависимости при локальной разработке.
2 - подмодуль git - перетащите код в каталог вашего проекта Django с помощью модуля подмодулей.Преимущество: кажется, что на самом деле работает, в то время как поддерево плохо обрабатывает этот случай приложения Django. Недостаток: более сложное развертывание
3 - поддерево git - перетащите код в каталог проекта Django с помощью модуля поддерева.Я сам изучил этот вопрос, который вы можете увидеть здесь http://projects.madteckhead.com/django-superproject-3rd-party-git-repo-subdirectories-mapped-mapped-to-apps/ Преимущество: код и история хранятся в проекте Django, просты в развертывании и снижают сложность для сотрудников.Недостаток: кажется, не удается «смонтировать» подкаталог или репозиторий в подкаталог проекта, и если вы можете ... Я не смог выяснить, как объединить вышестоящие изменения.
4 - скопировать соответствующее стороннее приложение в каталог приложений проекта django.Преимущество: простое Недостаток: не может легко объединять изменения или отправлять пул-рекветы
Проблема заключается в том, что пакеты Python фактически имеют приложение в подкаталоге репозитория.например thirdpartyapp / thirdpartyapp / setup.py thirdpartyapp / thirdpartyapp / [здесь представлен весь интересующий код]
Вопрос
Может ли кто-нибудь пролить свет на то, как лучше всего включить несколькоСторонние приложения django в проект django, вносите в них изменения / объединяйте вышестоящие изменения.
Я был бы очень признателен за чистый рабочий процесс. Это был один из главных барьеров для меня, который помог мне вернуться к приложениям, которые я использую в Django.
Большое спасибо,