面向所有人的设计文档工具

artifact-p的Python项目详细描述


工件py:工件的重新映射 < Buff行情>

注意:这是阿尔法。它可以工作,但可能有很多错误和丢失 功能。

这是在python中重新实现工件。它将成为 将其放入构建系统所必需的工件。没有功能丰富的cli,没有web ui。 只是解析和导出json/markdown/etc。

同时,这并不是一个严格的重写。这是一个重新构想和意志 可能会指导Artifact3.0的开发。

使用pip install artifact py安装。它应该在Python2.7+和3+中工作

工件的区别

主要区别是:

  • 用python而不是rust编写,以便更容易地包含在遗留构建中 系统。
  • 使用新的标记属性格式 特别是此项目不依赖于任何特定的 降价实施。
  • 删除.art/settings.toml,替换为 降价文件。
  • CMDLine工具的大规模简化。将来可能会改进cli。
  • 一些小的调整来简化工件的指定和链接方式。
    • 标记可以导出到的适当位置 更改。
    • 工件现在由头中的锚指定。按惯例 看起来像是我的规范(spc mine){spc mine}。这个 {spc mine}是用于创建 参考文献。(spc矿山)是按照惯例的,这样人类就可以看到 头指定了一个工件。
      • 注意:anchor_txt还支持html锚<;a id="spc mine"/>;, 这在github中是必需的
    • 工件属性由一个封闭的代码块指定。请参见spc设计 例如。
    • 删除[[req foo]引用。相反,您只需对代码使用[req foo][@req foo]。 当您运行art export--format md-i时,它们将去掉看起来像 art foo.bar并在文档底部插入正确的链接。 (即[@req foo]:url/to/code.py
    • 通过 [[req foo.subsystem]]。只需在属性中用partof指定它们, 并用[@req foo.subsystem]链接到设计文档中的代码
    • 对Graphviz没有特殊支持。
    • 没有将工件的关系导出到标记文件本身。 在作者看来,这通常只是增加了混乱,而不是 特别有用。

总的来说,这种设计与标准的降价更为紧密地结合在一起 规范。它让人感觉更干净,并允许从 "任意"设计文档到一个具有丰富的源代码链接和 其他设计。

仍需添加的功能:

  • 目前只支持一个标记文件。我也想重新想象一下 在添加更多文件之前,可以集成多个文件/etc。
  • linting—当前不存在linter
  • 工件json中的文本字段。它不需要任何实现细节 以后可能会添加。
  • 稳定的json输出格式。它仍在不断变化。

贡献

有关出资条件,请参见许可证

代码是用python编写的。使用以下方法进行测试:

# create the python virtualenv's locally
make init

# run tests against python3
make test3

# run all checks required to ship
make check
< H1> DESign(spc设计)
subparts:-artifact-settings-code-lint-tst-unittests

所有属性和设置都是用anchor_txt代码块指定的。

文档中的任何位置都会这样指定设置:

```yaml @
artifact:
  root_dir: ./
  code_paths:
    - src/
```

像这样的工件属性:

```yaml @
partof:
  - SPC-other

subparts:
  - function
  - tst-unit
```

设置(spc design.settings)

代码:@spc design.settings

工件从标记设计文档注入。所有 使用锚文本格式提供设置/属性。设置 通过将以下内容添加到 在文档中:

  • 根目录:创建路径时的根目录。这将影响 其他路径设置用作参考。
  • 代码路径:指向要查找代码的文件或目录的路径。 有关详细信息,请参见代码链接。
  • 排除代码路径:搜索工件时要排除的路径。

工件(spc design.artifact)

代码:@spc design.artifact

工件是可以链接到 文档和源代码。它具有以下属性:

  • 名称:定义如何链接它。名称定义在 锚头({req foo}
    • 有三种类型的工件:req(需求)、spc(规范)。 TST(测试)
  • 部分的:此项目所属的其他项目。
  • 子部分:可以在代码中链接的工件片段。
  • 完成:强制将工件视为指定和测试的工件

代码链接(spc design.code)

代码:@spc design.code

工件在代码中的链接方式是:

  • 定义工件名称或子部分
  • 在设置中指定代码路径
  • 在表单代码中的任意位置放置标记:
    • spc foo
    • spc foo.bar

工件将在代码路径和 如果工件在代码中链接,则会将其标记为指定的/已测试的。

lints(spc design.lint)

< Buff行情>

注意:这尚未实现

代码:[@spc design.lint]

lint命令将在设计文档中找到错误,以及错误的原因 反映在代码中:

  • 不存在的链接的一部分。
  • areqspcpartofatst
  • 额外的代码链接
  • 具有被指定为"完成"的工件,具有impl
  • 文本中的工件或类似子部分的链接(即[req不存在]) 不存在。
  • 未更新设计文档(运行artifact export--format md-我要修复。
  • 在代码中找到的链接,其前缀不是doc_url。 (即工件期望代码中的链接看起来像myurl.com/design\req foo

多项目设计(spc design.multi)

< Buff行情>

尚未实施,仅在设计阶段

代码:[@spc design.multi]

Artifact以前的设计没有支持多种不同的设计, 尤其是在规模上。此重写/重新维护将构建以下原则:

  • "module/package/submodule/etc"的设计包含在单个文件中。 此链接指向该设计的"少量"源代码,并指定 在该文件的工件属性中。
  • 可以通过设置中的"引用"对象链接到其他设计文件。 它们的指定类似于other_design:path/to/other/file
  • 然后将自动生成内联链接,以便您可以使用 [其他设计spc foo]链接到其他文档。
    • 指定和测试的比率不受这些链接的影响。

因为这些设计只是连接在一起(不依赖于 完成率),每个设计都可以独立计算, 元数据序列化,以便其他项目可以链接到它。

单元测试(spc design.tst unit tests)

代码:@spc design.tst unittests

单元测试提供了几乎完整的覆盖范围。几乎所有的功能 使用数据驱动的方法进行测试。有一个降价文件 同名的yaml文件。yml文件的预期值在 正在分析降价文件。

还测试了:

  • 导出项目将生成预期的降价文件

许可证

源代码是根据

由您选择。

除非您明确说明,否则任何有意提交的出资 对于您在apache-2.0许可证中定义的工作,应 按上述方式获得双重许可,无需附加任何条款或条件。

元数据

artifact:root_dir:'./'code_paths:-artifact_py/-tests/exclude_code_paths:-tests/artifacts_only/-tests/projects/-tests/test_code.pycode_url:"https://github.com/vitiral/artifact_py/blob/master/{file}#L{line}"

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
junit cucumber为什么会找到“runTest.java”来运行测试?   在Eclipse中找不到java KeyPairGenerator   java NotSerializableException即使在实现Serializable之后   noclassdeffounderror(java字符串连接)为什么会出现这种异常?   java Guice:将接口绑定到由动态代理创建的实例   使用Spring数据neo4j创建空间索引时发生java错误   java对于需要在50多个excel文件上运行并且每个文件平均包含25k行的项目,最佳的方法是什么   javaNIO中的java缓冲区写入/发送消息问题   如何在Java/eclipse中添加不调用super()的警告   JavaSpring:mvcUrl映射错误的id   java应该在getInstance或构造函数中使用Init方法吗?   安卓中的java空指针异常错误   java Jsoup不能完全获取原始html代码