UFOLINTは、Unified Fontオブジェクト(UFO)ソースコードの書体開発のソースファイルリナーです。書体プロジェクトへのUFOソースの貢献の継続的な統合テストのために設計されました。
アプリケーションは、以下を含む問題に対して、UFO V2およびV3仕様に対してソーステキストファイルのUFOバージョン固有の静的分析を実行します。
これらのテストは、fonttools.ufolibライブラリのパブリックメソッドの組み合わせと、ufolintアプリケーションで実装されている追加のテストを通じて実行されます。 ufolintは、すべての_.plistファイルタイプと_.glifファイルで実行されるすべてのufolib検証のUFOLIBパブリック読み取りメソッドで提起された例外をキャッチします。これらは、懸念のFilepathおよびExitステータスコード1を示す有益なエラーメッセージを持つユーザーに返されます。
UFOLINTは、ローカルまたはリモートCIテストサービスで実行できます。
コマンドを使用してください:
$ pip install ufolint
コマンドを使用して、アプリケーションの新しいバージョンにアップグレードします。
$ pip install --upgrade ufolint
プロセスは完全に自動化されています。 UFOLINTを1つ以上のUFOソースディレクトリに向けるだけで、残りを処理します。 UFOLINTはステータスコード0で終了します。すべてのテストが通過した場合、テストが失敗した場合はステータスコード1で終了します。
$ ufolint [UFO source path] ([UFO path 2] [UFO path3]...)
$ ufolint Awesome-Regular.ufo Awesome-Bold.ufo
さらなるテストの完了を妨げる重大な障害のために、UFOLINTはすぐに終了し、他のテストが中止されます。他のすべての状況で、分析全体にわたって障害が収集され、すべてのテストの完了時に表示されます。
ufolintは、懸念のファイル、エラータイプ、多くの場合、ファイルの問題のある行を含む、冗長で有用なエラーメッセージを提供します。
githubリポジトリに提出された各コミットまたはプルリクエストを使用して、travisでUFOソースの変更を継続的にテストするには、Travis Getgent Guideからこれらの最初の2つのステップを使用してください。
次に、githubリポジトリで、
.travis.yml次のテキストを含むGitHubリポジトリのルートに: sudo : false
language : python
env :
- VARIANT=src/Test-Regular.ufo
- VARIANT=src/Test-Bold.ufo
- VARIANT=src/Test-Italic.ufo
- VARIANT=src/Test-BoldItalic.ufo
before_script : pip install ufolint
script : " ufolint $VARIANT "
notifications :
email : falseVARIANT=src/Test-*.ufo .travis.ymlファイルのufo行を、 =文字後のUFOソースファイルへの実際のパスに置き換えます。バリアントごとに1つの行を使用し、必要に応じて行を追加または減算して、リポジトリ内の目的のソースUFOディレクトリをテストします。これらは、Gitリポジトリのルートからの相対パスである必要があります。このTravis設定構造は、Travis設定ファイルのenvフィールドで指定された各バリアントに対して、バリアントテストを並列に実行します。各バリアントには、次のようなTravisテストページにラベルが付けられます。
ステップ5 :GitHubリポジトリ(または他の人から提出された新しいプルリクエスト)に新しいコミットがプッシュされた場合、Travisは自動的に通知され、修正された(またはプルリクエストの提案された変更)UFOソースでUFOLINTテストを実行します。リポジトリのTravisアカウントページでテスト結果を表示できます。
オプション:Repository ReadMeページにTravisテスト結果バッジを追加するには、ReadMeページに次のマークダウンを挿入し、Travisアカウントとリポジトリの詳細で[ACCOUNT]と[REPOSITORY]を変更します。
[](https://travis-ci.org/[ACCOUNT]/[REPOSITORY])
UFO検証作業の大部分が実行されている素晴らしいFonttools Ufolibライブラリで構築されています!
MITライセンス