Short History
[gpgme.git] / lang / python / docs / Short_History.rst
1 ==========================================
2 A Short History of gpg bindings for Python
3 ==========================================
4
5 In 2002 John Goerzen released PyME; Python bindings for the GPGME
6 module which utilised the current release of Python of the time
7 (Python 2.2 or 2.3) and SWIG.  Shortly after creating it and ensuring
8 it worked he stopped supporting it, though left his work available on
9 his Gopher site.
10
11 A couple of years later the project was picked up by Igor Belyi and
12 actively developed and maintained by him from 2004 to 2008.  Igor's
13 whereabouts at the time of this document's creation are unknown, but
14 the current authors do hope he is well.  We're assuming (or hoping)
15 that life did what life does and made continuing untenable.
16
17 In 2014 Martin Albrecht wanted to patch a bug in the PyME code and
18 discovered the absence of Igor.  Following a discussion on the PyME
19 mailing list he became the new maintainer for PyME, releasing version
20 0.9.0 in May of that year.  He remains the maintainer of the original
21 PyME release in Python 2.6 and 2.7 (available via PyPI).
22
23 In 2015 Ben McGinnes approached Martin about a Python 3 version, while
24 investigating how complex a task this would be the task ended up being
25 completed.  A subsequent discussion with Werner Koch led to the
26 decision to fold the Python 3 port back into the original GPGME
27 release in the languages subdirectory for non-C bindings.  Ben is the
28 maintainer of the Python 3 port within GPGME.
29
30 In 2016 PyME was renamed to "gpg" and adopted by the upstream GnuPG
31 team.
32
33 ---------------------
34 The Annoyances of Git
35 ---------------------
36
37 As anyone who has ever worked with git knows, submodules are horrible
38 way to deal with pretty much anything.  In the interests of avoiding
39 migraines, that is being skipped with addition of PyME to GPGME.
40 Instead the files will be added to the subdirectory, along with a copy
41 of the entire git log up to that point as a separate file within the
42 docs directory (old-commits.log).  As the log for PyME is nearly 100KB
43 and the log for GPGME is approximately 1MB, this would cause
44 considerable bloat, as well as some confusion, should the two be
45 merged.  Hence the unfortunate, but necessary, step to simply move the
46 files.  A regular repository version will be maintained should it be
47 possible to implement this better in the future.
48
49
50 ------------------
51 The Perils of PyPI
52 ------------------
53
54 At the current time the Python 3 fork is not available via PyPI and
55 the pip installer.  The recommended installation method is to follow
56 the instructions in lang/py3-pyme/INSTALL.  This will build the
57 necessary SWIG portions against the installed version of GPGME.