aboutsummaryrefslogtreecommitdiffstats
path: root/lang/python/docs/Short_History.org
blob: 2295499c4dcd5709428cd9cb3b47236bc4b4b119 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#+TITLE: A Short History of the GPGME bindings for Python

* Overview
  :PROPERTIES:
  :CUSTOM_ID: overview
  :END:

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
   (Python 2.2 or 2.3) and SWIG.  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.  Ben is
   the maintainer of the Python 3 port within GPGME.

   In 2016 PyME was renamed to "gpg" and adopted by the upstream GnuPG
   team.

** 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 is being skipped with addition of PyME
   to GPGME.  Instead the files will be added to the subdirectory,
   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
   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 will be maintained should it be possible to implement this
   better in the future.

** The Perils of PyPI
   :PROPERTIES:
   :CUSTOM_ID: the-perils-of-pypi
   :END:

   At the current time the Python 3 fork is not available via PyPI and
   the pip installer.  The recommended installation method is to follow
   the instructions in lang/py3-pyme/INSTALL.  This will build the
   necessary SWIG portions against the installed version of GPGME.