为 Storyboard 贡献¶
如果您有兴趣为 Storyboard 项目贡献代码,以下内容将帮助您入门。
贡献者许可协议¶
为了能够为 Storyboard 项目贡献代码,您需要签署 OpenStack 的贡献者协议。
项目托管详情¶
- 缺陷追踪器
- https://storyboard.openstack.org
- 邮件列表(主题前缀使用
[storyboard]以获得更快的响应) - http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra
- Wiki
- https://wiki.openstack.org/wiki/StoryBoard
- 代码托管
- 代码审查
-
在提交您的第一个补丁进行审查之前,请阅读 GerritWorkflow。
对 StoryBoard 有疑问?¶
如果您遇到错误,认为某个新功能可以使 StoryBoard 更加出色,或者只是认为某些地方可以有所不同,请为此创建一个故事! 如果您不告诉我们,我们将不知道。
创建故事后(标题、描述、将默认任务设置为与 opendev/storyboard 项目关联等),您可以添加标签。 我们有一个定义的标签集,如下所示:
- blocking-storyboard-migration:这些故事被指出为阻止 OpenStack 项目从 Launchpad 迁移到 StoryBoard 的障碍。
- its-storyboard:这些故事与 gerrit 插件“its-storyboard” 相关,该插件从 gerrit 中提取信息供 StoryBoard 使用,例如更新任务状态、将 gerrit 补丁链接到故事等。
- storyboard-email:这些故事与电子邮件通知功能和帐户设置相关。
- storyboard-feature-request:带有此标签的故事涉及实现某个新功能,可能涉及 api 和 webclient 的更新。
- storyboard-notifications:带有此标签的故事与 StoryBoard 拥有的通知机制相关的工作相关。
- storyboard-releases:此标签表示该故事与 StoryBoard 在 pypi 上的发布相关,因为我们已经开始进行发布。
- storyboard-searching-enhancements:带有此标签的故事与 StoryBoard 中搜索功能相关的工作相关。 这可能意味着对 StoryBoard 拥有的跳转搜索或高级搜索的工作。
- storyboard-testing:此标签应用于专注于 StoryBoard 的测试套件(功能、集成等)的故事。
- storyboard-worklists:带有此标签的故事与 StoryBoard 的工作列表功能相关的工作相关。
您会注意到我们没有 storyboard-bug,这是因为任何通常不适合这些其他类别的内容很可能是一个错误,而且我们不需要标记所有内容。
我们还使用一些其他标签,这些标签更广泛地适用于其他使用 StoryBoard 的项目。 下面列出了它们并定义了我们如何使用它们:
- low-hanging-fruit:带有此标签的故事是新手入门的好地方,它们是较小的错误或新功能,不需要太多设计或讨论。
- dependency-upgrades:带有此标签的故事讨论 StoryBoard 使用的依赖项(例如库)需要升级。
- outreachy:带有此标签的故事正在由 outreachy 项目 的实习生进行或将要进行。
同样重要的是要注意,如果多个标签相关,可以向一个故事应用多个标签。
运行测试¶
Storyboard 使用 tox 来管理其单元和功能测试。 安装 tox 并下载 storyboard 源代码后,下一步是安装系统依赖项。 运行
$ tox -e bindep
然后获取列出的软件包,并使用您的系统软件包管理器安装它们。 例如
$ sudo apt-get install package list here
要在您的本地开发机器上快速运行测试,可以使用 sqlite 后端
$ tox -e sqlite
并且要运行风格检查器和静态分析工具
$ tox -e pep8
如果您想使用正确的数据库后端运行测试套件,还需要执行一个步骤。 请注意,使用 MySQL 和 PostgreSQL 数据库后端时,测试套件需要更长的时间才能运行。
首先确保 MySQL 和 PostgreSQL 正在运行(您可能需要启动这些服务)。 然后运行 test-setup.sh 辅助脚本
$ tools/test-setup.sh
此脚本需要使用具有 sudo 访问权限的用户来运行。 它将配置数据库以运行单元测试。 然后,您可以使用以下命令运行单元测试:
$ tox -e py3
在较慢的系统上,数据库迁移可能需要比默认超时时间 120 秒更长的时间。 要覆盖超时时间,请设置 OS_TEST_TIMEOUT 环境变量。 例如,要将超时时间设置为 3 分钟,请运行
$ OS_TEST_TIMEOUT=180 tox -e py3
进行更广泛的测试…¶
要设置您自己的本地 storyboard 以查看您的更改在 webclient 中的显示效果,请参阅 安装和运行以供开发人员使用。