aboutsummaryrefslogtreecommitdiffstats
path: root/lang/python/doc/src/short-history.org
diff options
context:
space:
mode:
Diffstat (limited to 'lang/python/doc/src/short-history.org')
-rw-r--r--lang/python/doc/src/short-history.org187
1 files changed, 0 insertions, 187 deletions
diff --git a/lang/python/doc/src/short-history.org b/lang/python/doc/src/short-history.org
deleted file mode 100644
index bc874aa2..00000000
--- a/lang/python/doc/src/short-history.org
+++ /dev/null
@@ -1,187 +0,0 @@
-# -*- mode: org -*-
-#+TITLE: A Short History of the GPGME bindings for Python
-#+LATEX_COMPILER: xelatex
-#+LATEX_CLASS: article
-#+LATEX_CLASS_OPTIONS: [12pt]
-#+LATEX_HEADER: \usepackage{xltxtra}
-#+LATEX_HEADER: \usepackage[margin=1in]{geometry}
-#+LATEX_HEADER: \setmainfont[Ligatures={Common}]{Times New Roman}
-
-* Overview
- :PROPERTIES:
- :CUSTOM_ID: overview
- :END:
-
-| Version: | 0.0.1 |
-| GPGME Version: | 1.13.0 |
-| Author: | Ben McGinnes <[email protected]> |
-| Author GPG Key: | DB4724E6FA4286C92B4E55C4321E4E2373590E5D |
-| Language: | Australian English, British English |
-| xml:lang: | en-AU, en-GB, en |
-
-The GPGME Python bindings passed through many hands and numerous
-phases before, after a fifteen year journey, coming full circle to
-return to the source. This is a short explanation of that journey.
-
-** In the beginning
- :PROPERTIES:
- :CUSTOM_ID: in-the-begining
- :END:
-
- In 2002 John Goerzen released PyME; Python bindings for the GPGME
- module which utilised the current release of Python of the time and
- SWIG.[fn:1] Shortly after creating it and ensuring it worked he stopped
- supporting it, though he left his work available on his Gopher
- site.
-
-
-** Keeping the flame alive
- :PROPERTIES:
- :CUSTOM_ID: keeping-the-flame-alive
- :END:
-
- A couple of years later the project was picked up by Igor Belyi and
- actively developed and maintained by him from 2004 to 2008. Igor's
- whereabouts at the time of this document's creation are unknown,
- but the current authors do hope he is well. We're assuming (or
- hoping) that life did what life does and made continuing untenable.
-
-
-** Passing the torch
- :PROPERTIES:
- :CUSTOM_ID: passing-the-torch
- :END:
-
- In 2014 Martin Albrecht wanted to patch a bug in the PyME code and
- discovered the absence of Igor. Following a discussion on the PyME
- mailing list he became the new maintainer for PyME, releasing
- version 0.9.0 in May of that year. He remains the maintainer of
- the original PyME release in Python 2.6 and 2.7 (available via
- PyPI).
-
-
-** Coming full circle
- :PROPERTIES:
- :CUSTOM_ID: ouroboros
- :END:
-
- In 2015 Ben McGinnes approached Martin about a Python 3 version,
- while investigating how complex a task this would be the task ended
- up being completed. A subsequent discussion with Werner Koch led
- to the decision to fold the Python 3 port back into the original
- GPGME release in the languages subdirectory for non-C bindings
- under the module name of =pyme3=.
-
- In 2016 this PyME module was integrated back into the GPGME project
- 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
- :PROPERTIES:
- :CUSTOM_ID: the-annoyances-of-git
- :END:
-
- As anyone who has ever worked with git knows, submodules are
- horrible way to deal with pretty much anything. In the interests
- of avoiding migraines, that was skipped with addition of the PyME
- code to GPGME.
-
- Instead the files were added to a subdirectory of the =lang/=
- directory, along with a copy of the entire git log up to that point
- as a separate file within the =lang/python/docs/= directory.[fn:2]
- As the log for PyME is nearly 100KB and the log for GPGME is
- approximately 1MB, this would cause considerable bloat, as well as
- some confusion, should the two be merged.
-
- 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
- :PROPERTIES:
- :CUSTOM_ID: the-perils-of-pypi
- :END:
-
- The early port of the Python 2 =pyme= module as =pyme3= was never
- added to PyPI while the focus remained on development and testing
- during 2015 and early 2016. Later in 2016, however, when Justus
- 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] In all likelihood this would have been Python 2.2 or possibly
-Python 2.3.
-
-[fn:2] The entire PyME git log and other preceding VCS logs are
-located in the =gpgme/lang/python/docs/old-commits.log= file.