summaryrefslogtreecommitdiffstats
path: root/share/extensions/docs/authors/submit.rst
diff options
context:
space:
mode:
Diffstat (limited to 'share/extensions/docs/authors/submit.rst')
-rw-r--r--share/extensions/docs/authors/submit.rst97
1 files changed, 97 insertions, 0 deletions
diff --git a/share/extensions/docs/authors/submit.rst b/share/extensions/docs/authors/submit.rst
new file mode 100644
index 0000000..c140009
--- /dev/null
+++ b/share/extensions/docs/authors/submit.rst
@@ -0,0 +1,97 @@
+Submitting and reviewing extensions
+===================================
+
+This page details how extensions can be submitted to and moderated on
+the Inkscape website.
+
+I want to submit my extension
+-----------------------------
+
+Go through each of these actions and check to make sure your extension
+is ready to be made available in Inkscape:
+
+#. Check for limitations
+
+ * Your extension must not contact the internet (unless exempted for a good reason)
+ * It must not self-update, or edit files in the config directory.
+ * It must be readable code, in English. Code in other languages or too obscure may not be accepted.
+
+#. Check the license of your code
+
+ * Your code must be Free and Open Source. Using one of the available licenses such
+ as GPL, AGPL, MIT, Apache2 etc.
+ * Every included dependency must be also Free and Open Source.
+
+#. Check all of your dependencies
+
+ * Your extension MUST be python based (except for template extensions)
+ * It MUST work with python 3.6 or later
+ * Any dependency not shipped with Inkscape MUST be packaged along side your
+ extension. For example jinja2 would be included in a folder.
+
+#. Create a zip file of your extension and any external depdencies.
+
+ * Include only one copy in the root of the zip file.
+ * No specific versions for windows or linux, macOS.
+
+#. Check which versions of Inkscape it works with (each one, make a note for tagging
+ later)
+
+ * set the variable "INKSCAPE_PROFILE_DIR=/tmp/folder"
+ * run the inkscape version
+ * open the extensions manager
+ * install the zip file you hope to submit (second tab, folder button at the bottom)
+ * Your extension MUST work with at least one version of Inkscape.
+
+#. Sign your zip file
+
+ * Use GnuPG to sign your zip file, use the same signature as the public key you
+ uploaded to inkscape.org
+ * OR use md5hash to create a less secure md5 signature of the zip file. Make sure
+ you have some text in your inkscape.org gnupg key profile setting so you see the
+ signature field when uploading.
+
+#. Upload the zip file to the extensions category in the website.
+
+ * Include the generated signature
+ * Title and description in English with as much detail as possible
+ * Add Inkscape versions as you tested above.
+ * Include a link to the Git repository.
+ * Include an icon and screenshot file.
+
+#. Send a message to the Inkscape extensions team on `RocketChat`_ asking for a review.
+
+.. _RocketChat: https://chat.inkscape.org/channel/inkscape_extensions
+
+I want to review a submission
+-----------------------------
+
+Extensions Reviewer Checklist
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- ☐ Take next popular extension [#]_ or request to review
+- ☐ Check for existing verification signature
+- ☐ Contact author to inform about review
+- ☐ Unpack zip to extensions folder
+- ☐ Check zip contents for inx and py file
+- ☐ Check for license header and/or file
+- ☐ Run pytest and record test coverage
+- ☐ Run pylint to get code quality score
+- ☐ Visually confirm no mallicious or internet code
+- ☐ If no tests, add simple test upstream [#]_
+- ☐ Install zip using extensions manager
+- If everything is correct …
+- ☐ Add version tags and any other tags
+- ☐ Edit description, title, logos to improve presentation
+- ☐ contact a website administrator to complete
+
+If everything is correct (must be admin):
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- ☐ Add testing and quality scores to decription
+- ☐ Generate signature key and upload
+- ☐ Generate md5 if package is not self-signed
+
+.. [#] https://inkscape.org/gallery/=extension/
+
+.. [#] Add simple inkex.tester comparision test \ No newline at end of file