You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ufolint is a source file linter for typeface development in [Unified Font Object](http://unifiedfontobject.org/) (UFO) source code. It was designed for continuous integration testing of UFO source contributions to typeface projects.
9
+
ufolint is a source file linter for typeface development in [Unified Font Object](http://unifiedfontobject.org/) (UFO) source code. It was designed for continuous integration testing of UFO source contributions to typeface projects.
The application performs a UFO version specific static analysis of the source text files against the [UFO v2 and v3 specifications](http://unifiedfontobject.org/) for issues that include:
21
20
22
-
- supported UFO version
23
-
- mandatory files and directories
24
-
- mandatory file path naming conventions
25
-
- source defined file path and directory path consistency across source files
- source files import into ufoLib library with ufoLib public methods
35
-
36
-
These tests are performed through a combination of public methods in the [fontTools.ufoLib library](https://github.com/fonttools/fonttools/tree/master/Lib/fontTools/ufoLib) and additional tests that are implemented in the ufolint application. ufolint catches exceptions raised in the ufoLib public read methods for all *.plist file types and all ufoLib validations performed on *.glif files. These are returned to users with informative error messages that indicate the filepath(s) of concern and exit status code 1.
37
-
21
+
- supported UFO version
22
+
- mandatory files and directories
23
+
- mandatory file path naming conventions
24
+
- source defined file path and directory path consistency across source files
- source files import into ufoLib library with ufoLib public methods
34
+
35
+
These tests are performed through a combination of public methods in the [fontTools.ufoLib library](https://github.com/fonttools/fonttools/tree/master/Lib/fontTools/ufoLib) and additional tests that are implemented in the ufolint application. ufolint catches exceptions raised in the ufoLib public read methods for all _.plist file types and all ufoLib validations performed on _.glif files. These are returned to users with informative error messages that indicate the filepath(s) of concern and exit status code 1.
38
36
39
37
# Install and Upgrade
40
38
41
39
ufolint can be run locally or with remote CI testing services.
42
40
43
-
44
41
## Local Install and Upgrade
45
42
46
43
Use the command:
@@ -55,10 +52,9 @@ Upgrade to a new version of the application with the command:
55
52
$ pip install --upgrade ufolint
56
53
```
57
54
58
-
59
55
## Local Usage
60
56
61
-
The process is fully automated. Simply point ufolint to one or more UFO source directories and it takes care of the rest. ufolint exits with status code 0 if all tests pass and exits with status code 1 if any tests fail.
57
+
The process is fully automated. Simply point ufolint to one or more UFO source directories and it takes care of the rest. ufolint exits with status code 0 if all tests pass and exits with status code 1 if any tests fail.
For critical failures that prevent the completion of further testing, ufolint exits immediately and other tests are aborted. In all other circumstances, failures are collected across the entire analysis and displayed at the completion of all tests.
69
+
For critical failures that prevent the completion of further testing, ufolint exits immediately and other tests are aborted. In all other circumstances, failures are collected across the entire analysis and displayed at the completion of all tests.
74
70
75
71
ufolint provides verbose, useful error messages that include the file(s) of concern, the error type, and in many cases, the problematic line in the file.
76
72
77
-
78
73
## Travis CI Setup
79
74
80
75
To continuously test your UFO source changes on [Travis](https://travis-ci.org) with each commit pushed or pull request submitted to your Github repository, use these initial two steps from the [Travis Getting Started Guide](https://docs.travis-ci.com/user/getting-started/):
81
76
82
77
-**Step 1**: [Sign in to Travis](https://travis-ci.org/auth) with your Github account
83
78
-**Step 2**: Go to your [Travis Profile page](https://travis-ci.org/profile) and enable Travis for the typeface repository where you would like to enable ufolint testing
84
79
85
-
Then in your Github repository,
80
+
Then in your Github repository,
86
81
87
82
-**Step 3**: Add a file on the path `.travis.yml` in the root of your Github repository that includes the following text:
88
83
@@ -106,30 +101,26 @@ notifications:
106
101
email: false
107
102
```
108
103
109
-
- **Step 4**: Replace the `VARIANT=src/Test-*.ufo` lines in the `.travis.yml` file with the actual paths to your UFO source files after the `=` character. Use one line per variant and add or subtract lines as necessary to test the desired source UFO directories in the repository. These should be relative paths from the root of your git repository.
110
-
111
-
This Travis setting structure performs the variant tests in parallel for each of the variants specified under the `env` field of the Travis settings file. Each variant will be labeled on the Travis testing page like this:
104
+
- **Step 4**: Replace the `VARIANT=src/Test-*.ufo` lines in the `.travis.yml` file with the actual paths to your UFO source files after the `=` character. Use one line per variant and add or subtract lines as necessary to test the desired source UFO directories in the repository. These should be relative paths from the root of your git repository.
112
105
106
+
This Travis setting structure performs the variant tests in parallel for each of the variants specified under the `env` field of the Travis settings file. Each variant will be labeled on the Travis testing page like this:
- **Step 5**: With each new commit pushed to your Github repository (or any new pull request submitted by others) Travis is automatically notified and performs the ufolint tests on the modified (or proposed modifications for pull requests) UFO source. You can view the test results on your Travis account page for the repository.
112
+
- **Step 5**: With each new commit pushed to your Github repository (or any new pull request submitted by others) Travis is automatically notified and performs the ufolint tests on the modified (or proposed modifications for pull requests) UFO source. You can view the test results on your Travis account page for the repository.
120
113
121
114
- **Optional**: To add a Travis test result badge to your repository README page, insert the following Markdown in your README page and modify `[ACCOUNT]` and `[REPOSITORY]` with your Travis account and repository details:
Built with the fantastic [fontTools ufoLib library](https://github.com/fonttools/fonttools) where a majority of the UFO validation work has been performed!
0 commit comments