2个不稳定版本

使用旧的Rust 2015

0.2.0 2018年11月1日
0.1.0 2018年8月20日

#1176 in 数据库接口

MIT 许可证

56KB
842

issue-states -- 管理问题状态

该仓库包含“问题状态”的规范以及一个提供关联数据模型和解决逻辑的库的参考实现。

问题状态是依赖于问题元数据的命名临时属性。例如,而不是由问题跟踪器的管理员或用户主动控制属性,它是由问题的元数据确定的属性。

问题状态是从一组问题状态中选择的,这些状态可能硬编码在应用程序中(不建议)或由某些配置指定。对于给定的问题,根据附加到状态的条件,每个状态可以是启用或禁用。此外,状态可能与集合中的其他问题相关或不相关。

对于给定的问题,解算器最多可以选择一个为问题启用的状态。

示例

以下示例说明了可能的一组问题状态。在这个特定示例中,每个状态都覆盖了前一个状态。然而,更复杂的配置也是可能的。状态“确认”、“分配”和“解决”每个都依赖于问题的一些元数据(或设置)。例如,具有分配者的问题处于“分配”状态,除非它已解决。

- new
- name: acknowledged
  conditions: acknowledged
  overrides: new
- name: assigned
  conditions: assignee
  overrides: acknowledged
- name: resolved
  conditions: resolution
  overrides: assigned

动机

在问题跟踪器和缺陷跟踪器中,问题通常被分配某种状态,例如“打开”或“关闭”。一些问题跟踪器还提供更丰富的状态集以及(有时可自定义)的工作流:由管理员或项目维护者指定的一组可能的状态和转换。

工作流本质上是一种特殊的状态机,并且存在用于实现工作流行为的库。然而,这些库通常针对特定的环境(例如,特定的CMS),并且通常不提供任何状态机的规范格式。相反,工作流是通过源代码(或多或少)程序化构建的。如果支持,持久化通常仅针对数据库 - 使用自定义数据库模式。

我们主要需要一个与问题相关的工作流的规范格式。由于似乎没有广泛使用的格式,我们设计了自己的格式。我们还将开发一个用于解析该格式和实现工作流行为的库。

依赖关系

~42KB