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