使用共享库管理多个项目的函数版本控制

问题描述 投票:0回答:1

我面临着在共享公共库的多个项目之间保持一致性的挑战。这是场景:

  1. 我有一个带有函数 anonymize_ip(ip) 的助手库。
  2. 该函数在项目A中使用,具有特定的匿名化算法。
  3. 我将库复制到项目 B,重用了相同的功能。
  4. 后来,我为项目 B 更改了 anonymize_ip() 的算法和预期输出。

现在,帮助程序库在项目之间不同步。我想保持它轻松同步而不破坏现有代码。我想出的唯一解决方案是创建版本化函数:

def anonymize_ip_v1(ip):
    # Original implementation
    pass

def anonymize_ip_v2(ip):
    # New implementation
    pass

这是最好的方法吗?是否有更优雅的解决方案来使用共享库管理多个项目的函数版本控制?我愿意接受有关更好的代码组织、版本控制策略或包管理技术的建议,这些技术可以帮助解决这个问题。

python architecture versioning
1个回答
0
投票

如果我没理解错的话,你有 3 个不同的 GitHub 存储库:

  1. 助手库
  2. 项目A
  3. 项目B

如果正确,您可以使用 GitHub 中的标记功能,这样您就可以推送 anonymize_ip 的第一个版本,并在 GitHub 中为库项目设置标记,例如

1.0.0

此后,您可以在项目 A 和项目 B 中使用指定的库标签安装该库(以下诗歌示例):

library = { tag="1.0.0", git = "ssh://[email protected]/your-github/library.git" }

当您需要更改库中的某些逻辑时,您可以提交新逻辑,推送它并构建新标签,例如

1.1.0

此后,您可以通过在您的需求中切换版本来安装新版本的库:

library = { tag="1.1.0", git = "ssh://[email protected]/your-github/library.git" }
© www.soinside.com 2019 - 2024. All rights reserved.