diff options
Diffstat (limited to 'share/extensions/README.md')
-rw-r--r-- | share/extensions/README.md | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/share/extensions/README.md b/share/extensions/README.md new file mode 100644 index 0000000..4f7c6b1 --- /dev/null +++ b/share/extensions/README.md @@ -0,0 +1,79 @@ +# Inkscape Extensions + +This folder contains the stock Inkscape extensions, i.e. the scripts that +implement some commands that you can use from within Inkscape. Most of +these commands are in the Extensions menu. + +## Installation + +These scripts should be installed with an Inkscape package already (if you have +installed Inkscape). For packagers or people testing newer releases, you can +install the files into /usr/share/inkscape/extensions or +~/.config/inkscape/extensions . + +## Testing + +These extensions are designed to have good test coverage as well as python 2.7 +and python 3.6 support. +Testing can be run using the setup.py command or pytest directly: + + ./setup.py test + python2 -m pytest + python3 -m pytest + +The latest coverage report for master branch can be found at +https://inkscape.gitlab.io/extensions/coverage/. + +## Testing Options + +Tests can be run with these options that are provided as environment variables: + + FAIL_ON_DEPRECATION=1 - Will instantly fail any use of deprecated APIs + EXPORT_COMPARE=1 - Generate output files from comparisions. This is useful for manually checking the output as well as updating the comparison data. + NO_MOCK_COMMANDS=1 - Instead of using the mock data, actually call commands. This will also generate the msg files similar to export compare. + INKSCAPE_COMMAND=/other/inkscape - Use a different Inkscape (for example development version) while running commands. Works outside of tests too. + XML_DIFF=1 - Attempt to output an XML diff file, this can be useful for debugging to see differences in context. + DEBUG_KEY=1 - Export mock file keys for debugging. This is a highly specialised option for debuging key generation. + +## Extension description + +Each *.inx file describes an extension, listing its name, purpose, +prerequisites, location within the menu, etc. These files are read by +Inkscape on launch. Other files are the scripts themselves (Perl, +Python, and Ruby are supported, as well as shell scripts). + +## Development + +Development of both the core inkex modules, tests and each of the extensions +contained within the core inkscape extensions repository should follow these +basic rules of quality assurance: + + * Use pylint to ensure code is written consistantly + * Have tests so that each line of an extension is covered in the coverage report + * Not cross streams between extensions, so your extension should import from + a module and not from another extension. + * Use translations on text for display to users using get text. + * Should not require external programs to work (with some exceptions) + +Also join the community on chat.inkscape.org channel #inkscape_extensions with any +doubts or problems. + +## Building Docs + +You may wish to compile to docs for use outside of the Inkscape docs, this can +be done with these commands: + + sphinx-apidoc -F -o source inkex + ./setup.py build_sphinx -s source + firefox ./build/sphinx/html/inkex.html + +All documentation should be included INSIDE of each python module. + +The latest documentation for master branch can be found at +https://inkscape.gitlab.io/extensions/documentation/. + +## License Requirements + +Only include extensions here which are GPL-compatible. This includes +Apache-2, MPL 1.1, certain Creative Commons licenses, and more. See +https://www.gnu.org/licenses/license-list.html for guidance. |