1.. _developerinfo: 2.. image:: ../../Icons/FontToolsIconGreenCircle.png 3 :width: 200px 4 :height: 200px 5 :alt: Font Tools 6 :align: center 7 8 9fontTools Developer Information 10=============================== 11 12If you would like to contribute to the development of fontTools, you can clone the repository from GitHub, install the package in 'editable' mode and modify the source code in place. We recommend creating a virtual environment, using the Python 3 `venv <https://docs.python.org/3/library/venv.html>`_ module:: 13 14 # download the source code to 'fonttools' folder 15 git clone https://github.com/fonttools/fonttools.git 16 cd fonttools 17 18 # create new virtual environment called e.g. 'fonttools-venv', or anything you like 19 python -m venv fonttools-venv 20 21 # source the `activate` shell script to enter the environment (Un*x) 22 . fonttools-venv/bin/activate 23 24 # to activate the virtual environment in Windows `cmd.exe`, do 25 fonttools-venv\Scripts\activate.bat 26 27 # install in 'editable' mode 28 pip install -e . 29 30 31.. note:: 32 33 To exit a Python virtual environment, enter the command ``deactivate``. 34 35Testing 36------- 37 38To run the test suite, you need to install `pytest <http://docs.pytest.org/en/latest/>`__. 39When you run the ``pytest`` command, the tests will run against the 40installed fontTools package, or the first one found in the 41``PYTHONPATH``. 42 43You can also use `tox <https://tox.readthedocs.io/en/latest/>`__ to 44automatically run tests on different Python versions in isolated virtual 45environments:: 46 47 pip install tox 48 tox 49 50 51.. note:: 52 53 When you run ``tox`` without arguments, the tests are executed for all the environments listed in the ``tox.ini`` ``envlist``. The Python versions that are not available on your system ``PATH`` will be skipped. 54 55You can specify a particular testing environment list via the ``-e`` option, or the ``TOXENV`` environment variable:: 56 57 tox -e py36 58 TOXENV="py36-cov,htmlcov" tox 59 60 61Development Community 62--------------------- 63 64fontTools development is ongoing in an active community of developers that includes professional developers employed at major software corporations and type foundries as well as hobbyists. 65 66Feature requests and bug reports are always welcome at https://github.com/fonttools/fonttools/issues/ 67 68The best place for end-user and developer discussion about the fontTools project is the `fontTools gitter channel <https://gitter.im/fonttools-dev/Lobby>`_. There is also a development https://groups.google.com/d/forum/fonttools-dev mailing list for continuous integration notifications. 69 70 71History 72------- 73 74The fontTools project was started by Just van Rossum in 1999, and was 75maintained as an open source project at 76http://sourceforge.net/projects/fonttools/. In 2008, Paul Wise (pabs3) 77began helping Just with stability maintenance. In 2013 Behdad Esfahbod 78began a friendly fork, thoroughly reviewing the codebase and making 79changes at https://github.com/behdad/fonttools to add new features and 80support for new font formats. 81 82 83Acknowledgments 84--------------- 85 86In alphabetical order: 87 88Olivier Berten, Samyak Bhuta, Erik van Blokland, Petr van Blokland, 89Jelle Bosma, Sascha Brawer, Tom Byrer, Frédéric Coiffier, Vincent 90Connare, Dave Crossland, Simon Daniels, Peter Dekkers, Behdad Esfahbod, 91Behnam Esfahbod, Hannes Famira, Sam Fishman, Matt Fontaine, Yannis 92Haralambous, Greg Hitchcock, Jeremie Hornus, Khaled Hosny, John Hudson, 93Denis Moyogo Jacquerye, Jack Jansen, Tom Kacvinsky, Jens Kutilek, 94Antoine Leca, Werner Lemberg, Tal Leming, Peter Lofting, Cosimo Lupo, 95Masaya Nakamura, Dave Opstad, Laurence Penney, Roozbeh Pournader, Garret 96Rieger, Read Roberts, Guido van Rossum, Just van Rossum, Andreas Seidel, 97Georg Seifert, Chris Simpkins, Miguel Sousa, Adam Twardoch, Adrien Tétar, Vitaly Volkov, 98Paul Wise. 99 100License 101------- 102 103`MIT license <https://github.com/fonttools/fonttools/blob/master/LICENSE>`_. See the full text of the license for details. 104 105.. |Travis Build Status| image:: https://travis-ci.org/fonttools/fonttools.svg 106 :target: https://travis-ci.org/fonttools/fonttools 107.. |Appveyor Build status| image:: https://ci.appveyor.com/api/projects/status/0f7fmee9as744sl7/branch/master?svg=true 108 :target: https://ci.appveyor.com/project/fonttools/fonttools/branch/master 109.. |Coverage Status| image:: https://codecov.io/gh/fonttools/fonttools/branch/master/graph/badge.svg 110 :target: https://codecov.io/gh/fonttools/fonttools 111.. |PyPI| image:: https://img.shields.io/pypi/v/fonttools.svg 112 :target: https://pypi.org/project/FontTools 113.. |Gitter Chat| image:: https://badges.gitter.im/fonttools-dev/Lobby.svg 114 :alt: Join the chat at https://gitter.im/fonttools-dev/Lobby 115 :target: https://gitter.im/fonttools-dev/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge 116