Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Map all FontBakery dependencies and try to minimize the dependency tree #1602

Closed
felipesanches opened this issue Oct 5, 2017 · 4 comments
Closed
Assignees

Comments

@felipesanches
Copy link
Collaborator

FontBakery depends on a whole bunch of third-party python modules and other external programs.

The goal here is to map them all listing which tests or fixer scripts rely on each.

@felipesanches felipesanches added this to the 0.5.0 Code Is Well Organized milestone Oct 5, 2017
@felipesanches felipesanches self-assigned this Oct 5, 2017
@felipesanches
Copy link
Collaborator Author

felipesanches commented Oct 5, 2017

I'll keep updating this comment with the full list.

External programs

dependency used in to do what?
ttfautohint com.google.fonts/test/054, com.google.fonts/test/056 calculate the filesize impact of hinting vs non-hinted font files
ots-sanitize com.google.fonts/test/036 OpenType Sanitizer
Mono + custom freetype + Microsoft Font Validator com.google.fonts/test/037 complementary testsuite (including raster tests)
python-fontforge com.google.fonts/test/038, com.google.fonts/test/039 complementary testsuite
ftxvalidator com.google.fonts/test/035 complementary testsuite

python modules

dependency used in to do what?
pip install BeautifulSoup4 com.google.fonts/test/018 for parsing Microsoft's VendorIDs webpage
pip install requests com.google.fonts/test/081 for fetching Google Font API
com.google.fonts/test/117, com.google.fonts/test/118, com.google.fonts/test/119 and com.google.fonts/test/154 for fetching current font files of a given family from Google Fonts production servers
com.google.fonts/test/003 for validating whether URLs on a description.en_us.html file are broken or not
pip install protobuf several tests for handling METADATA.pb files
pip install unidecode com.google.fonts/test/018, com.google.fonts/test/029, com.google.fonts/test/102, com.google.fonts/test/103, com.google.fonts/test/159, com.google.fonts/test/160, com.google.fonts/test/161, com.google.fonts/test/162 and com.google.fonts/test/163 for unicode transliterations into ASCII (We should be able to ditch this one after a future migration into python 3)
pip install lxml and pip install defusedxml com_google_fonts_test_037 for parsing MSFontVal xml test results report file
com.google.fonts/test/003 for parsing description.en_us.html
pip install git+https://github.com/behdad/fonttools.git used EVERYWHERE! for EVERYTHING!

code linters & code testing framework

dependency used in to do what?
pip install pylint locally or on TravisCI code linter
pip install flake8 locally or on TravisCI code linter
pip install pytest locally or on TravisCI running the code-tests

dependencies only required for our helper scripts

dependency used in to do what?
pip install glyphsLib bin/fontbakery-fix-glyphs.py and bin/fontbakery-list-variable-source.py
pip install GitPython==0.3.2.RC1 bin/fontbakery-build-contributors.py Generate a CONTRIBUTORS.txt document from a repository's git history.
pip install tabulate bin/fontbakery-check-bbox.py, bin/fontbakery-check-name.py, bin/fontbakery-fix-familymetadata.py, bin/fontbakery-fix-fsselection.py, bin/fontbakery-fix-nameids.py, bin/fontbakery-list-panose.py, bin/fontbakery-list-weightclass.py and bin/fontbakery-list-widthclass.py formatting tables on the output of some of our helper scripts

@graphicore
Copy link
Collaborator

Awesome, this will also be helpful to remove dependencies that we don't use anymore. AFAIK requirements.txt/setup.py has such.

felipesanches added a commit to felipesanches/fontbakery that referenced this issue Oct 6, 2017
This was too troublesome in the past and the usage of the lib was absolutely minimal.
There's no point in having a dependency headache with such a thing.
(issue fonttools#1602)
felipesanches added a commit to felipesanches/fontbakery that referenced this issue Oct 6, 2017
Not needed anymore on FB-core. Maybe useful on fontbakery-dashboard, but will likely be reimplemented in a better way from scratch.
(issue fonttools#1602)
felipesanches added a commit to felipesanches/fontbakery that referenced this issue Oct 6, 2017
Only dependencies of the actual testsuite were kept. Dependencies of the helper scripts must be installed manually if the users need them. I'll add instructions to the README regarding that.
(issue fonttools#1602)
felipesanches added a commit to felipesanches/fontbakery that referenced this issue Oct 6, 2017
felipesanches added a commit to felipesanches/fontbakery that referenced this issue Oct 6, 2017
felipesanches added a commit to felipesanches/fontbakery that referenced this issue Oct 6, 2017
@davelab6 davelab6 modified the milestones: 0.5.0 Code Is Well Organized, 0.3.3 (upcoming minor release) Nov 7, 2017
@davelab6
Copy link
Contributor

davelab6 commented Nov 7, 2017

#1523 seems related

@felipesanches
Copy link
Collaborator Author

This is done! The dependencies were systematically mapped above and with that we removed any left-over dependencies (that were used in the past, but removed later but mistakenly remained in setup.py or requirements.txt).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants