ufo源文件linter
ufolint的Python项目详细描述
ufolint是用于Unified Font Object(ufo)源代码中字体开发的源文件linter。它是为持续集成测试不明飞行物对字体项目的贡献而设计的。
应用程序针对UFO v2 and v3 specifications对源文本文件执行特定于ufo版本的静态分析,以解决以下问题:
- 支持的UFO版本
- 必需的文件和目录
- 强制文件路径命名约定
- 跨源文件的源定义文件路径和目录路径一致性
- 有效的XML文件格式
- *.plist文件属性列表值检查
- *.plist文件属性列表值类型检查
- fontinfo.plist opentype属性命名约定
- fontinfo.plist opentype属性数据验证
- *.glif文件格式版本测试
- *.glif文件大纲、属性、锚定、指南、图像、注释验证
- 图像遵循ufo v3+png规范
- 使用ufolib public方法将源文件导入到ufolib库
这些测试通过fontTools.ufoLib library中的公共方法和在ufolint应用程序中实现的附加测试的组合来执行。ufolit捕获所有*.plist文件类型和对*.glif文件执行的所有ufolib验证的ufolib公共读取方法中引发的异常。这些信息返回给用户,信息错误消息指示关心的文件路径和退出状态代码1。
安装并升级
ufolint可以在本地运行,也可以与远程ci测试服务一起运行。
本地安装和升级
使用命令:
$ pip install ufolint
使用以下命令升级到应用程序的新版本:
$ pip install --upgrade ufolint
本地使用
这个过程是完全自动化的。只需将ufolint指向一个或多个ufo源目录,它就会处理其余的内容。如果任何测试失败,UFLITENT退出状态代码0,如果所有测试通过并退出状态代码1。
$ ufolint [UFO source path] ([UFO path 2] [UFO path3]...)
示例
$ ufolint Awesome-Regular.ufo Awesome-Bold.ufo
对于阻止进一步测试完成的关键故障,UFLITEN立即退出,其他测试中止。在所有其他情况下,在整个分析过程中收集故障,并在所有测试完成时显示故障。
ufolint提供了详细、有用的错误消息,其中包括所关注的文件、错误类型以及在许多情况下文件中有问题的行。
Travis CI设置
要在提交到github存储库的每次提交推送或拉取请求时在Travis上连续测试ufo源更改,请使用Travis Getting Started Guide:
- 步骤1:Sign in to Travis使用您的github帐户
- step 2:转到您的Travis Profile page并为要启用ufolint测试的字体存储库启用travis
然后在github存储库中,
- step 3:在github存储库根目录中的路径
.travis.yml
上添加包含以下文本的文件:
.travis.yml
sudo:falselanguage:pythonenv:-VARIANT=src/Test-Regular.ufo-VARIANT=src/Test-Bold.ufo-VARIANT=src/Test-Italic.ufo-VARIANT=src/Test-BoldItalic.ufobefore_script:pip install ufolintscript:"ufolint$VARIANT"notifications:email:false
- 第4步:在
.travis.yml
字符后,用指向ufo源文件的实际路径替换VARIANT=src/Test-*.ufo
行。每个变量使用一行,并根据需要添加或减去行,以测试存储库中所需的源ufo目录。这些应该是来自git存储库根目录的相对路径。
这个travis设置结构对travis设置文件的env
字段下指定的每个变量并行执行变量测试。每个变体都将在Travis测试页面上标记如下:
step 5:每次新提交都推送到github存储库(或任何由其他人提交的新拉动请求)Travis会自动收到通知,并对修改后的(或提议的拉动请求修改)UFO源执行UFolint测试。您可以在存储库的travis帐户页上查看测试结果。
可选:要向存储库自述页添加travis测试结果标记,请在自述页中插入以下标记,并使用travis帐户和存储库详细信息修改
[ACCOUNT]
和[REPOSITORY]
:
[![Build Status](https://travis-ci.org/[ACCOUNT]/[REPOSITORY].svg?branch=master)](https://travis-ci.org/[ACCOUNT]/[REPOSITORY])
致谢
它是用奇妙的fontTools ufoLib library建造的,在那里大部分的ufo验证工作都已经完成了!