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