1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2017年7月17日

#2020开发工具

MIT 许可证

160KB
3K SLoC

Subcomponent

Build Status

Subcomponent是一个组件编排器。您可以将组件定义为不透明的项目,可以使用各种方法(git、svn、下载等)检索它们。组件可以表达彼此之间的依赖关系。这允许以特定的顺序运行用户定义的命令。

这用subcomponent描述语言表达

subcomponents {
    my-lib-component {
        path: "where/the/lib/will/be/downloaded";
        name: "My Lib";

        fetch {
            git {
                url: "git://example.com/repo.git",
                     "https://example.com/repo.git",
                     "https://example-backup.com/repo.git";
                branch: "dev";
                shallow: true;
            }
        }
    }

    xen {
       name: "Xen";
       path: "xen-4.8.0";

       fetch {
          artifact {
             url: "https://downloads.xenproject.org/release/xen/4.8.0/xen-4.8.0.tar.gz";
             compression: "tar", "gz";
             pgp-signature: "https://downloads.xenproject.org/release/xen/4.8.0/xen-4.8.0.tar.gz.sig";
             pgp-pubkey: "83FE14C957E82BD9";
          }
       }
    }
}

待办事项列表

  • 组件之间的依赖关系
  • 状态命令
  • 命令钩子的定义
  • gzip 解包器
  • xz 解包器
  • 布尔值应由词法分析器处理,而不是由解析器处理

文档

Sphinx用于生成文档,因此您首先需要安装它

pip install sphinx

然后,要生成HTML文档,您可以运行以下命令

make -C doc html man

HTML文档将可在docs/_build/html/中找到。subcomponent的手册页将在docs/_build/man中。

测试

Subcomponent更倾向于开发系统测试而不是单元测试。您可以通过cargo运行单元测试

cargo test

系统测试依赖于robotframework,因此您首先需要确保此Python模块已安装

pip install robotframework

以下命令可用

make -C tests unit-tests        # Run unit tests in release
make -C tests system-tests      # Run system tests in release
make -C tests                   # Run all the tests in release

请报告失败的测试!

持续集成

我们使用travis来检查上游代码是否通过实现的测试。

许可证

Subcomponent是MIT许可。有关更多详细信息,请参阅LICENSE文件。

依赖关系

~4.5MB
~59K SLoC