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