代码之家  ›  专栏  ›  技术社区  ›  Stefano Borini

依赖于库的程序版本控制

  •  1
  • Stefano Borini  · 技术社区  · 16 年前

    我有一套程序,每个都有自己的版本。所有这些程序都依赖于一个库,同样有自己的版本。例如

    Foo-1.0.3
    Bar-2.1.5
    Baz-1.3.4
    

    他们依赖于 libfrobniz-1.4.5 . 碰巧我要对库进行一次大的修改(涉及到很多重构)。这意味着它会破坏一切(foo、bar和baz)。当然,由于这是一个主要的和向后不兼容的重做,库将被提升到 libfrobniz-2.0.0 .

    我的问题是关于foo bar和baz的版本。我会升级他们使用libfrobniz-2.0.0,但我不会改变他们的功能。这三个程序的新版本可以与旧的程序完全一样使用,因此它们完全兼容。但是,它们将依赖于完全不同版本的 libfrobniz . 你建议增加他们的版本号,还是只增加补丁级别?

    5 回复  |  直到 16 年前
        1
  •  1
  •   Draemon    16 年前

    请记住,更改依赖项的主要编号是对最终用户的主要更改。这绝对不是补丁级别,我会说,坚持少校,除非你有一个很好的理由不去。

        2
  •  1
  •   zpesk    16 年前

    我会保持foo、bar和baz的版本号不变。由于您没有在这些面向用户的产品中引入新功能或错误修复,因此无需增加版本号。此外,如果您决定增加版本号,可能会导致用户混淆。您的用户可能想知道为什么您的产品有一个新的版本号,而没有任何新的文档功能或错误修复。

    在三个面向用户的应用程序中,您可以有一个窗格/窗口,指出该产品依赖libfrobniz,并且已经升级。

        3
  •  0
  •   twk    16 年前

    您的版本控制方案取决于您的业务和技术需求。

    一些公司每年都会发布“重大”升级以引起关注,并获得一些升级收入。 他们中的一些人仍然发布betas,直到对软件质量满意为止。

    准备好你自己的计划并让你的客户知道。 通常,第一个字母是主要版本号,用于主要更改,然后用于改进,然后用于生成和修补程序。

        4
  •  0
  •   shimpossible    16 年前

    这难道不等于构建一个32位版本与64位版本的库吗?32位依赖于32位libs,而64位依赖于64位libs。

    你要遵守这样的规则

        5
  •  0
  •   Erwin Smout    16 年前

    “当然,因为这是一个主要的和向后不兼容的重做,”

    我记得当时的客户有能力使他们的软件供应商接近破产,如果软件供应商有勇气打破向后兼容性,拒绝花任何钱,直到向后兼容性恢复。

    软件供应商总是让步。

    今天,他们似乎可以做任何他们想做的事,每个顾客都会不假思索地跟着他们,有点像“1984”中最下层的人。

    但也许我过于悲观了。

    编辑

    有人指出只有我一个顾客的情况。在这种情况下,我不希望有任何需要“版本控制”。这样的客户只对一件事感兴趣:软件可以工作,并且只对一个版本感兴趣:这个版本应该与他最近的规范相对应。