Blame lang/python/doc/rst/maintenance-mode.rst

Packit Service 0ef63b
.. _maintenance-mode:
Packit Service 0ef63b
Packit Service 0ef63b
Maintenance Mode from 2019
Packit Service 0ef63b
==========================
Packit Service 0ef63b
Packit Service 0ef63b
+-----------------+------------------------------------------+
Packit Service 0ef63b
| Version:        | 0.0.1                                    |
Packit Service 0ef63b
+-----------------+------------------------------------------+
Packit Service 0ef63b
| GPGME Version:  | 1.13.0                                   |
Packit Service 0ef63b
+-----------------+------------------------------------------+
Packit Service 0ef63b
| Author:         | Ben McGinnes <ben@gnupg.org>             |
Packit Service 0ef63b
+-----------------+------------------------------------------+
Packit Service 0ef63b
| Author GPG Key: | DB4724E6FA4286C92B4E55C4321E4E2373590E5D |
Packit Service 0ef63b
+-----------------+------------------------------------------+
Packit Service 0ef63b
| Language:       | Australian English, British English      |
Packit Service 0ef63b
+-----------------+------------------------------------------+
Packit Service 0ef63b
| xml:lang:       | en-AU, en-GB, en                         |
Packit Service 0ef63b
+-----------------+------------------------------------------+
Packit Service 0ef63b
Packit Service 0ef63b
From the beginning of 2019 the Python bindings to GPGME will enter
Packit Service 0ef63b
maintenance mode, meaning that new features will not be added and only
Packit Service 0ef63b
bug fixes and security fixes will be made. This also means that
Packit Service 0ef63b
documentation beyond that existing at the end of 2018 will not be
Packit Service 0ef63b
developed further except to correct errors.
Packit Service 0ef63b
Packit Service 0ef63b
Though use of these bindings appears to have been quite well received,
Packit Service 0ef63b
there has been no indication of what demand there is, if any for either
Packit Service 0ef63b
financial backing of the current Python bindings development or support
Packit Service 0ef63b
contracts with g10code GmbH citing the necessity of including the
Packit Service 0ef63b
bindings.
Packit Service 0ef63b
Packit Service 0ef63b
.. _maintenance-mode-bm:
Packit Service 0ef63b
Packit Service 0ef63b
Maintainer from 2019 onward
Packit Service 0ef63b
---------------------------
Packit Service 0ef63b
Packit Service 0ef63b
How does this affect the position of GnuPG Python Bindings Maintainer?
Packit Service 0ef63b
Packit Service 0ef63b
Well, I will remain as maintainer of the bindings; but without funding
Packit Service 0ef63b
for that position, the amount of time I will be able to dedicate solely
Packit Service 0ef63b
to this task will be limited and reduced to volunteered time. As with
Packit Service 0ef63b
all volunteered time and effort in free software projects, this will be
Packit Service 0ef63b
subject to numerous external imperatives.
Packit Service 0ef63b
Packit Service 0ef63b
.. _maintenance-mode-blade-runner:
Packit Service 0ef63b
Packit Service 0ef63b
Using the Python Bindings from 2019 and beyond
Packit Service 0ef63b
----------------------------------------------
Packit Service 0ef63b
Packit Service 0ef63b
For most, if not all, Python developers using these bindings; they will
Packit Service 0ef63b
continue to "just work" the same as they always have. Expansions of
Packit Service 0ef63b
GPGME itself are usually handled by SWIG with the existing code and thus
Packit Service 0ef63b
bindings are generated properly when the bindings are installed
Packit Service 0ef63b
alongside GPGME and when the latter is built from source.
Packit Service 0ef63b
Packit Service 0ef63b
In the rare circumstances where that is not enough to address some new
Packit Service 0ef63b
addition to GPGME, then that is a bug and thus subject to the
Packit Service 0ef63b
maintenance mode provisions (i.e. it will be fixed following a bug
Packit Service 0ef63b
report being raised and your humble author will need to remember where
Packit Service 0ef63b
the timesheet template was filed, depending on how many years off such
Packit Service 0ef63b
an event is).
Packit Service 0ef63b
Packit Service 0ef63b
All the GPGME functionality will continue to be accessible via the lower
Packit Service 0ef63b
level, dynamically generated methods which match the GPGME C
Packit Service 0ef63b
documentation. While the more intuitively Pythonic higher level layer
Packit Service 0ef63b
already covers the vast majority of functionality people require with
Packit Service 0ef63b
key generation, signatures, certifications (key signing), encryption,
Packit Service 0ef63b
decryption, verification, validation, trust levels and so on.
Packit Service 0ef63b
Packit Service 0ef63b
Any wanted features lacking in the Python bindings are usually lacking
Packit Service 0ef63b
because they are missing from GPGME itself (e.g. revoking keys via the
Packit Service 0ef63b
API) and in such cases they are usually deliberately excluded. More
Packit Service 0ef63b
discussion of these issues can be found in the archives of the
Packit Service 0ef63b
`gnupg-devel mailing
Packit Service 0ef63b
list <https://lists.gnupg.org/mailman/listinfo/gnupg-devel>`__.
Packit Service 0ef63b
Packit Service 0ef63b
Any features existing in the dynamically generated layer for which
Packit Service 0ef63b
people want a specific, higher level function included to make it more
Packit Service 0ef63b
Pythonic (e.g. to avoid needing to learn or memorise cryptographic mode
Packit Service 0ef63b
values or GnuPG status code numbers), would be a feature request and
Packit Service 0ef63b
*not* a bug.
Packit Service 0ef63b
Packit Service 0ef63b
It is still worthwhile requesting it, but the addition of such a feature
Packit Service 0ef63b
would not be guaranteed and provided on a purely volunteer basis.
Packit Service 0ef63b
Expediting such a request would require funding that request.
Packit Service 0ef63b
Packit Service 0ef63b
Those with a commercial interest in expediting such a feature request
Packit Service 0ef63b
already know how to `expedite
Packit Service 0ef63b
it <https://gnupg.org/cgi-bin/procdonate.cgi?mode=preset>`__ (use the
Packit Service 0ef63b
message field to state what feature is being requested).
Packit Service 0ef63b
Packit Service 0ef63b
.. _docs:
Packit Service 0ef63b
Packit Service 0ef63b
Documentation formats
Packit Service 0ef63b
---------------------
Packit Service 0ef63b
Packit Service 0ef63b
The documentation has been written in Org mode for GNU Emacs, with both
Packit Service 0ef63b
Texinfo and reStructuredText formats generated from that. The Texinfo
Packit Service 0ef63b
files are intended for use with the rest of the GnuPG documentation;
Packit Service 0ef63b
while the reStructuredText files are intended for use with Docutils and
Packit Service 0ef63b
Sphinx, as with other Python projects.
Packit Service 0ef63b
Packit Service 0ef63b
.. _sphinx-made-epubs-suck:
Packit Service 0ef63b
Packit Service 0ef63b
Cautionary Notes regarding Sphinx and EPUB
Packit Service 0ef63b
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Packit Service 0ef63b
Packit Service 0ef63b
Though Python\'s Docutils in conjunction with Sphinx is capable of
Packit Service 0ef63b
generating some very useful HTML sites, as proven by `Read the
Packit Service 0ef63b
Docs <https://readthedocs.org/>`__ and the `Python
Packit Service 0ef63b
documentation <https://docs.python.org/>`__, there are a number of
Packit Service 0ef63b
output formats it does not handle well. At the top of the list of things
Packit Service 0ef63b
it manages to break so atrociously as to be embarassing is the `EPUB
Packit Service 0ef63b
3 <http://idpf.org/epub>`__ format.
Packit Service 0ef63b
Packit Service 0ef63b
The automatically generated EPUB of the CPython documentation always
Packit Service 0ef63b
contains hundreds of validation errors and even the modest amount of
Packit Service 0ef63b
documentation here `produced a
Packit Service 0ef63b
file <https://files.au.adversary.org.s3.amazonaws.com/crypto/gpgme-python/rst/epub/GPGMEPythonBindings.epub>`__
Packit Service 0ef63b
with approximately thirty validation errors. As the volume of
Packit Service 0ef63b
documentation content increases, so does the induced errors. Whereas
Packit Service 0ef63b
Texinfo doesn\'t produce EPUB output at all, nor does Org-mode.
Packit Service 0ef63b
Packit Service 0ef63b
Should there ever be genuine demand for this format, lodge a `feature
Packit Service 0ef63b
request <https://dev.gnupg.org/maniphest/task/edit/form/4/>`__ case
Packit Service 0ef63b
marked for `my <https://dev.gnupg.org/p/BenM/>`__ attention. The means
Packit Service 0ef63b
of generating such files flawlessly is already available, but is not yet
Packit Service 0ef63b
part of the GnuPG build system. Nor is it integrated with a means of
Packit Service 0ef63b
converting Org mode input files to the relevant base format
Packit Service 0ef63b
automatically, as can already be done when converting Org to
Packit Service 0ef63b
reStructuredText or Org to Texinfo. As a certain amount of work would be
Packit Service 0ef63b
required to get it done, there would need to be clear demand for that
Packit Service 0ef63b
work to be done.