Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git和共享python库_Python_Git_Shared Libraries_Release_Code Structure - Fatal编程技术网

Git和共享python库

Git和共享python库,python,git,shared-libraries,release,code-structure,Python,Git,Shared Libraries,Release,Code Structure,这可能是个新手问题,请原谅。 我们有一个小型python开发团队,我们的回购组织如下所示。我们有一个自定义库,可以在多个脚本(包装器)之间共享,然后是特定于每个包装器的库。下面的结构在Git下维护。到目前为止,这对发展是有效的。现在我们想单独释放包装器。与中一样,我们需要针对不同的受众(不同的时间线和需求)发布wrapper1,稍后再发布wrapper2。两者都需要包含共享的_库,并且只包含它们的特定库。最好的方法是什么 repo/: wrapper1.py wrapper2.p

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

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
我们考虑了以下解决方案:

  • 重新组织为三个独立的repo:wrapper1、wrapper2和shared_库,并分别发布

  • 对wrapper1和wrapper2有两个单独的repo,并定期同步共享库(!!?!!)

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


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

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


    一定要注意将自动化单元测试打包到共享库repo中。两个相关应用程序都应该能够成功运行自己的测试和共享测试。随着发布的应用程序提交新的功能请求,并尝试从不同方向拉取共享库,这一点将变得非常重要。

    您现在发布的应用程序怎么样?你会让他们从GITHUB中提取库吗?如果你的组织可以托管PyPI镜像,你可以把每个包装器打包成一个包,允许最终用户通过<代码> PIP安装。另一种方法你可以考虑通过分支来管理。每个库/模块都可以有自己的
    dev
    /
    staging
    /
    release
    分支,当该特定分支准备好广泛发布时,您可以将其切割为
    master
    ,如果您想从git部署,我建议使用单独的repo。一次拆开并不费劲,但在部署时合并总是比提取更容易。您可以将所有三个单独的repo设置为单独的repo,并将共享库作为一个库。谢谢大家。我觉得这对我的工作来说也是更好的选择。