Short History
* Fixed or updated the most fundamental errors. * Also included some details on which modules are available on PyPI, as well as what happened to the PyME commit log.
This commit is contained in:
parent
7c662d22a8
commit
3c3b149996
@ -50,13 +50,30 @@ return to the source. This is a short explanation of that journey.
|
|||||||
|
|
||||||
In 2015 Ben McGinnes approached Martin about a Python 3 version,
|
In 2015 Ben McGinnes approached Martin about a Python 3 version,
|
||||||
while investigating how complex a task this would be the task ended
|
while investigating how complex a task this would be the task ended
|
||||||
up being completed. A subsequent discussion with Werner Koch led to
|
up being completed. A subsequent discussion with Werner Koch led
|
||||||
the decision to fold the Python 3 port back into the original GPGME
|
to the decision to fold the Python 3 port back into the original
|
||||||
release in the languages subdirectory for non-C bindings. Ben is
|
GPGME release in the languages subdirectory for non-C bindings
|
||||||
the maintainer of the Python 3 port within GPGME.
|
under the module name of =pyme3=.
|
||||||
|
|
||||||
In 2016 PyME was renamed to "gpg" and adopted by the upstream GnuPG
|
In 2016 this PyME module was integrated back into the GPGME project
|
||||||
team.
|
by Justus Winter. During the course of this work Justus adjusted
|
||||||
|
the port to restore limited support for Python 2, but not as many
|
||||||
|
minor point releases as the original PyME package supports. During
|
||||||
|
the course of this integration the package was renamed to more
|
||||||
|
accurately reflect its status as a component of GPGME. The =pyme3=
|
||||||
|
module was renamed to =gpg= and adopted by the upstream GnuPG team.
|
||||||
|
|
||||||
|
In 2017 Justus departed G10code and the GnuPG team. Following this
|
||||||
|
Ben returned to maintain of gpgme Python bindings and continue
|
||||||
|
building them from that point.
|
||||||
|
|
||||||
|
* Relics of the past
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: relics-past
|
||||||
|
:END:
|
||||||
|
|
||||||
|
There are a few things, in addition to code specific factors, such as
|
||||||
|
SWIG itself, which are worth noting here.
|
||||||
|
|
||||||
** The Annoyances of Git
|
** The Annoyances of Git
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
@ -65,23 +82,82 @@ return to the source. This is a short explanation of that journey.
|
|||||||
|
|
||||||
As anyone who has ever worked with git knows, submodules are
|
As anyone who has ever worked with git knows, submodules are
|
||||||
horrible way to deal with pretty much anything. In the interests
|
horrible way to deal with pretty much anything. In the interests
|
||||||
of avoiding migraines, that is being skipped with addition of PyME
|
of avoiding migraines, that was skipped with addition of the PyME
|
||||||
to GPGME. Instead the files will be added to the subdirectory,
|
code to GPGME.
|
||||||
along with a copy of the entire git log up to that point as a
|
|
||||||
separate file within the docs directory (old-commits.log). As the
|
Instead the files were added to a subdirectory of the =lang/=
|
||||||
log for PyME is nearly 100KB and the log for GPGME is approximately
|
directory, along with a copy of the entire git log up to that point
|
||||||
1MB, this would cause considerable bloat, as well as some
|
as a separate file within the =lang/python/docs/= directory.[fn:1]
|
||||||
confusion, should the two be merged. Hence the unfortunate, but
|
As the log for PyME is nearly 100KB and the log for GPGME is
|
||||||
necessary, step to simply move the files. A regular repository
|
approximately 1MB, this would cause considerable bloat, as well as
|
||||||
version will be maintained should it be possible to implement this
|
some confusion, should the two be merged.
|
||||||
better in the future.
|
|
||||||
|
Hence the unfortunate, but necessary, step to simply move the
|
||||||
|
files. A regular repository version has been maintained should it
|
||||||
|
be possible to implement this better in the future.
|
||||||
|
|
||||||
** The Perils of PyPI
|
** The Perils of PyPI
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CUSTOM_ID: the-perils-of-pypi
|
:CUSTOM_ID: the-perils-of-pypi
|
||||||
:END:
|
:END:
|
||||||
|
|
||||||
At the current time the Python 3 fork is not available via PyPI and
|
The early port of the Python 2 =pyme= module as =pyme3= was never
|
||||||
the pip installer. The recommended installation method is to follow
|
added to PyPI while the focus remained on development and testing
|
||||||
the instructions in lang/py3-pyme/INSTALL. This will build the
|
during 2015 and early 2016. Later in 2016, however, when Justus
|
||||||
necessary SWIG portions against the installed version of GPGME.
|
completed his major integration work and subsequently renamed the
|
||||||
|
module from =pyme3= to =gpg=, some prior releases were also
|
||||||
|
provided through PyPI.
|
||||||
|
|
||||||
|
Since these bindings require a matching release of the GPGME
|
||||||
|
libraries in order to function, it was determined that there was
|
||||||
|
little benefit in also providing a copy through PyPI since anyone
|
||||||
|
obtaining the GPGME source code would obtain the Python bindings
|
||||||
|
source code at the same time. Whereas there was the potential to
|
||||||
|
sew confusion amongst Python users installing the module from PyPI,
|
||||||
|
only to discover that without the relevant C files, header files or
|
||||||
|
SWIG compiled binaries, the Python module did them little good.
|
||||||
|
|
||||||
|
There are only two files on PyPI which might turn up in a search
|
||||||
|
for this module or a sample of its content:
|
||||||
|
|
||||||
|
1. gpg (1.8.0) - Python bindings for GPGME GnuPG cryptography library
|
||||||
|
2. pyme (0.9.0) - Python support for GPGME GnuPG cryptography library
|
||||||
|
|
||||||
|
*** GPG 1.8.0 - Python bindings for GPGME GnuPG cryptography library
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: pypi-gpgme-180
|
||||||
|
:END:
|
||||||
|
|
||||||
|
This is the most recent version to reach PyPI and is the version
|
||||||
|
of the official Pyhon bindings which shipped with GPGME 1.8.0. If
|
||||||
|
you have GPGME 1.8.0 installed and /only/ 1.8.0 installed, then it
|
||||||
|
is probably safe to use this copy from PyPI.
|
||||||
|
|
||||||
|
As there have been a lot of changes since the release of GPGME
|
||||||
|
1.8.0, the GnuPG Project recommends not using this version of the
|
||||||
|
module and instead installing the current version of GPGME along
|
||||||
|
with the Python bindings included with that package.
|
||||||
|
|
||||||
|
*** PyME 0.9.0 - Python support for GPGME GnuPG cryptography library
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: pypi-gpgme-90
|
||||||
|
:END:
|
||||||
|
|
||||||
|
This is the last release of the PyME bindings maintained by Martin
|
||||||
|
Albrecht and is only compatible with Python 2, it will not work
|
||||||
|
with Python 3. This is the version of the software from which the
|
||||||
|
port from Python 2 to Python 3 code was made in 2015.
|
||||||
|
|
||||||
|
Users of the more recent Python bindings will recognise numerous
|
||||||
|
points of similarity, but also significant differences. It is
|
||||||
|
likely that the more recent official bindings will feel "more
|
||||||
|
pythonic."
|
||||||
|
|
||||||
|
For those using Python 2, there is essentially no harm in using
|
||||||
|
this module, but it may lack a number of more recent features
|
||||||
|
added to GPGME.
|
||||||
|
|
||||||
|
* Footnotes
|
||||||
|
|
||||||
|
[fn:1] The entire PyME git log and other preceding VCS logs are
|
||||||
|
located in the =gpgme/lanf/python/docs/old-commits.log= file.
|
||||||
|
Loading…
Reference in New Issue
Block a user