Git 和共享 python 库

Git and shared python library

这可能是一个新手问题,所以请原谅。 我们有一个小型 python 开发团队,我们的回购组织如下所示。我们有一个跨多个脚本(包装器)共享的自定义库,然后是特定于每个包装器的库。以下结构在 Git 下维护。到目前为止,这对开发很有效。现在我们想单独发布包装器。同样,我们需要针对不同的受众(不同的时间线和需求)发布 wrapper1,然后再发布 wrapper2。两者都需要包含 shared_library 并且只包含它们的特定库。做这个的最好方式是什么?

repo/:
    wrapper1.py
    wrapper2.py
    shared_library/:
        module1.py
        module2.py
    wrapper1_specific_lib/:
        wrapper1_module1.py
        wrapper1_module2.py
    wrapper2_specific_lib/:
        wrapper2_module1.py
        wrapper2_module2.py

我们考虑了以下解决方案:

  1. 重组为三个独立的仓库:wrapper1、wrapper2 和 shared_library 并单独发布。

  2. wrapper1 和 wrapper2 有两个独立的 repos,并定期同步共享库 (!!?!!)

  3. 保持这样,但探索是否可以使用 Git 以某种方式释放选定的文件,每个包装器特定的文件夹。

寻求您在 python 代码组织方面的帮助,以便使用 Git 更好地进行发布管理。提前致谢!!

您有 3 个产品,每个产品都有自己的发布时间表。 Wrapper1 用户对查看 wrapper2 代码不感兴趣,反之亦然。分成 3 个回购协议是最简单的方法。

请注意将自动化单元测试打包到 shared_library 存储库中。两个依赖的应用程序都应该能够成功 运行 他们自己的测试加上共享测试。这将变得很重要,因为已发布的应用程序会提交新功能请求并尝试将 shared_library 拉向不同的方向。