From d86fd7c54c462ef23c70370624e07fcc1bc15121 Mon Sep 17 00:00:00 2001 From: Ben McGinnes Date: Wed, 14 Feb 2018 21:21:58 +1100 Subject: Short History * Converted document from reST to org-mode. --- lang/python/docs/Short_History.org | 56 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 lang/python/docs/Short_History.org (limited to 'lang/python/docs/Short_History.org') diff --git a/lang/python/docs/Short_History.org b/lang/python/docs/Short_History.org new file mode 100644 index 00000000..fa40d6eb --- /dev/null +++ b/lang/python/docs/Short_History.org @@ -0,0 +1,56 @@ +#+TITLE: A Short History of gpg bindings for Python + +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 left his work available on his Gopher +site. + +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. + +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). + +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. -- cgit v1.2.3 From a1bc710c5fb7a7d2253434c1443e33e019020a55 Mon Sep 17 00:00:00 2001 From: Ben McGinnes Date: Wed, 14 Feb 2018 22:44:27 +1100 Subject: History * Reshaping the history file to fit Org Mode's structuring for docs. * Also said history needs to be a bit more clear (it was kind of unfinished). --- lang/python/docs/Short_History.org | 120 +++++++++++++++++++++---------------- 1 file changed, 68 insertions(+), 52 deletions(-) (limited to 'lang/python/docs/Short_History.org') diff --git a/lang/python/docs/Short_History.org b/lang/python/docs/Short_History.org index fa40d6eb..11a87c67 100644 --- a/lang/python/docs/Short_History.org +++ b/lang/python/docs/Short_History.org @@ -1,56 +1,72 @@ -#+TITLE: A Short History of gpg bindings for Python - -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 left his work available on his Gopher -site. - -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. - -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). - -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: +#+TITLE: A Short History of the GPGME bindings for Python -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 +* Overview :PROPERTIES: - :CUSTOM_ID: the-perils-of-pypi + :CUSTOM_ID: overview :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. +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. + + 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. + + 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). + + 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. -- cgit v1.2.3 From 7c662d22a8f7d2e6ad6532014f2ecc1769de16fb Mon Sep 17 00:00:00 2001 From: Ben McGinnes Date: Thu, 15 Feb 2018 01:03:12 +1100 Subject: Subsectioned history * Split the main parts down into subsections. * Still need to cull the incorrect stuff towards the end and add more recent changes. --- lang/python/docs/Short_History.org | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'lang/python/docs/Short_History.org') diff --git a/lang/python/docs/Short_History.org b/lang/python/docs/Short_History.org index 11a87c67..2295499c 100644 --- a/lang/python/docs/Short_History.org +++ b/lang/python/docs/Short_History.org @@ -20,12 +20,22 @@ return to the source. This is a short explanation of that journey. 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 @@ -33,6 +43,11 @@ return to the source. This is a short explanation of that journey. 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 -- cgit v1.2.3 From 3c3b149996036e7ff4cc4c77ef2d97062d880409 Mon Sep 17 00:00:00 2001 From: Ben McGinnes Date: Thu, 15 Feb 2018 04:19:15 +1100 Subject: 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. --- lang/python/docs/Short_History.org | 116 ++++++++++++++++++++++++++++++------- 1 file changed, 96 insertions(+), 20 deletions(-) (limited to 'lang/python/docs/Short_History.org') diff --git a/lang/python/docs/Short_History.org b/lang/python/docs/Short_History.org index 2295499c..e0cd877e 100644 --- a/lang/python/docs/Short_History.org +++ b/lang/python/docs/Short_History.org @@ -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, 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. + 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 PyME was renamed to "gpg" and adopted by the upstream GnuPG - team. + 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: @@ -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 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. + 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:1] + 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: - 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. + 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] The entire PyME git log and other preceding VCS logs are +located in the =gpgme/lanf/python/docs/old-commits.log= file. -- cgit v1.2.3 From 6f15d821404742ac2683f54ca4102ee4aaedacf2 Mon Sep 17 00:00:00 2001 From: Ben McGinnes Date: Fri, 16 Feb 2018 01:26:20 +1100 Subject: LaTeX margins * Added LaTeX header for 1 inch margins in the quite likely event that all PDF output ultimately uses LaTeX. --- lang/python/docs/Short_History.org | 2 ++ 1 file changed, 2 insertions(+) (limited to 'lang/python/docs/Short_History.org') diff --git a/lang/python/docs/Short_History.org b/lang/python/docs/Short_History.org index e0cd877e..89bb21e1 100644 --- a/lang/python/docs/Short_History.org +++ b/lang/python/docs/Short_History.org @@ -1,4 +1,6 @@ #+TITLE: A Short History of the GPGME bindings for Python +#+LATEX_CLASS: article +#+LATEX_HEADER: \usepackage[margin=1in]{geometry} * Overview :PROPERTIES: -- cgit v1.2.3 From fb16eaa685fe488f12f4df9b59d1f3689c813034 Mon Sep 17 00:00:00 2001 From: Ben McGinnes Date: Fri, 16 Feb 2018 19:15:32 +1100 Subject: History path * Fixed a typo in a filepath reference. * Moved conjecture regarding the first version of Python used to a footnote. --- lang/python/docs/Short_History.org | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'lang/python/docs/Short_History.org') diff --git a/lang/python/docs/Short_History.org b/lang/python/docs/Short_History.org index 89bb21e1..3ce3480c 100644 --- a/lang/python/docs/Short_History.org +++ b/lang/python/docs/Short_History.org @@ -17,10 +17,10 @@ return to the source. This is a short explanation of that journey. :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. + 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: @@ -89,7 +89,7 @@ SWIG itself, which are worth noting here. 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:1] + 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. @@ -161,5 +161,8 @@ SWIG itself, which are worth noting here. * 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. +[fn:1] In all likelihood thos 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. -- cgit v1.2.3 From 6f2e2e0f150d5c6d53de5bc48af137f7864d5fd9 Mon Sep 17 00:00:00 2001 From: Ben McGinnes Date: Mon, 26 Feb 2018 13:51:23 +1100 Subject: LaTeX headers * Set LaTeX headers to enable ligatures and a 12pt font by default. * Paper size left for regional defaults. * Using XeLaTeX for easier font control. * Using default LaTeX font of Latin Main, but that's easy enough to change. --- lang/python/docs/Short_History.org | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lang/python/docs/Short_History.org') diff --git a/lang/python/docs/Short_History.org b/lang/python/docs/Short_History.org index 3ce3480c..f684f0a7 100644 --- a/lang/python/docs/Short_History.org +++ b/lang/python/docs/Short_History.org @@ -1,6 +1,10 @@ #+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}]{Latin Modern Roman} * Overview :PROPERTIES: -- cgit v1.2.3