【问题标题】:What exactly is considered a breaking change to a PureScript library?究竟什么被认为是对 PureScript 库的重大更改?
【发布时间】:2017-07-26 18:18:31
【问题描述】:

Rust 社区有一个fairly detailed description,他们对语义版本控制的解释。

PureScript 社区有this,其中包括:

我们应该为初学者编写一个 semver 教程,特别是它在 PureScript 中的使用以及我们依赖 ~-versions 的方式。

奇怪的是,查看 65 个随机纯脚本库的分类,它们都使用 ^-versions 而不是 ~-versions,但是我找不到任何更新的文档,而且我们最近的构建由于预期不匹配。

PureScript 社区是否对 semver 有相当一致的解释,特别是关于什么是或不被视为重大更改?如果有,是什么?

【问题讨论】:

    标签: semantic-versioning purescript


    【解决方案1】:

    我们在任何地方都没有详尽的清单,没有。现在是入手的好时机!

    • 利用需要比当前版本发布时更新的编译器的功能。
    • 添加依赖项。
    • 删除依赖项。
    • 碰撞依赖项的主要版本。
    • 删除或重命名模块。
    • 从模块中删除一个成员(即任何东西 - 类型、值、类、种类、运算符)(通过隐藏导出或删除它)。
    • 以某种方式更改现有函数或值的类型签名,这意味着它不会与以前的版本统一(因此可以使类型更通用,但不能更少)。
    • 添加、删除或更改类型的类型变量。
    • 添加、删除或更改类型的数据构造函数(除非该类型不导出其构造函数)。
    • 添加或删除类型类声明的成员。
    • 更改类的预期类型参数。
    • 添加或更改类的功能依赖关系。
    • 改变阶级的法则。
    • 删除类的实例。

    除了向模块添加新成员(或重新导出)之外,几乎所有其他操作都被视为重大更改!

    有时我们会做出技术上破坏性的更改(由于类型签名更改),但这样做是为了修复一些在没有修复的情况下完全无法使用的东西。在这些情况下,它们会以补丁的形式出现,但这种情况非常罕见。它们往往只在涉及 FFI 时发生。

    回复:~^... 我认为在创建链接页面时没有在 Bower 中使用 ^ 的选项(或者至少它没有默认使用) . ^ 是现在用于库的首选/推荐范围。

    【讨论】:

      猜你喜欢
      • 2017-05-02
      • 2010-12-31
      • 1970-01-01
      • 1970-01-01
      • 2014-05-17
      • 1970-01-01
      • 2011-05-18
      • 2014-10-28
      • 2012-08-27
      相关资源
      最近更新 更多