如果需要对代码进行少量更改,如何将 3rd 方 Django 应用程序拉入我的 Djano 项目?我需要能够:
- 合并上游更改
- 提交新功能/模组的拉取请求
- 在多个项目中使用修改后的应用
- 能够使用我的 Django 项目部署修改后的应用程序
- 保持私密(可选)
现有的半解决方案
在这个话题上似乎有很多混乱。我似乎提出的方法是:
方法# 1 - pip/virtualenv - 将项目保存在单独的 repo 中并将其添加到 python 路径。优点:将代码干净地划分为单独的项目可能总体上更干净,不太复杂 缺点:在本地开发时需要更复杂的管理来更新依赖关系。
2 - git submodule - 使用 submodules 模块将代码拉入你的 Django 项目目录。优点:似乎确实有效,而子树不能很好地处理这个 Django 应用案例缺点:更复杂的部署
3 - git subtree - 使用 subtree 模块将代码拉入您的 Django 项目目录。我自己对此进行了更多探索,您可以在此处查看http://projects.madteckhead.com/django-superproject-3rd-party-git-repo-subdirectories-mapped-mapped-to-apps/ 优势:代码和历史记录保留Django 项目,易于部署,并降低了协作者的复杂性。缺点:似乎无法将子目录或存储库“挂载”到项目的子目录中,如果可以的话……我无法弄清楚如何合并上游更改。
4 - 将有问题的第 3 方应用程序复制到 django 项目应用程序目录中。优点:简单缺点:不能轻易合并更改,或提交请求请求
问题是 Python 包实际上在 repo 的子目录中有应用程序。例如thirdpartyapp/thirdpartyapp/setup.pythirdpartyapp/thirdpartyapp/[所有感兴趣的代码都在这里]
问题
任何人都可以阐明如何最好地将多个 3rd 方 django 应用程序合并到一个 django 项目中,对它们进行更改/合并上游更改。
我真的很感激一个干净的工作流程,它是我回馈我在 Django 中使用的应用程序的主要障碍之一。
非常感谢,