|
Packit Service |
30b792 |
#+TITLE: Stuff To Do
|
|
Packit Service |
30b792 |
#+LATEX_COMPILER: xelatex
|
|
Packit Service |
30b792 |
#+LATEX_CLASS: article
|
|
Packit Service |
30b792 |
#+LATEX_CLASS_OPTIONS: [12pt]
|
|
Packit Service |
30b792 |
#+LATEX_HEADER: \usepackage{xltxtra}
|
|
Packit Service |
30b792 |
#+LATEX_HEADER: \usepackage[margin=1in]{geometry}
|
|
Packit Service |
30b792 |
#+LATEX_HEADER: \setmainfont[Ligatures={Common}]{Latin Modern Roman}
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
* Project Task List
|
|
Packit Service |
30b792 |
:PROPERTIES:
|
|
Packit Service |
30b792 |
:CUSTOM_ID: task-list
|
|
Packit Service |
30b792 |
:END:
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
** DONE Documentation default format
|
|
Packit Service |
30b792 |
CLOSED: [2018-02-15 Thu 21:29]
|
|
Packit Service |
30b792 |
:PROPERTIES:
|
|
Packit Service |
30b792 |
:CUSTOM_ID: todo-docs-default
|
|
Packit Service |
30b792 |
:END:
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
Decide on a default file format for documentation. The two main
|
|
Packit Service |
30b792 |
contenders being Org Mode, the default for the GnuPG Project and
|
|
Packit Service |
30b792 |
reStructuredText, the default for Python projects. A third option
|
|
Packit Service |
30b792 |
of DITA XML was considered due to a number of beneficial features
|
|
Packit Service |
30b792 |
it provides.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
The decision was made to use Org Mode in order to fully integrate
|
|
Packit Service |
30b792 |
with the rest of the GPGME and GnuPG documentation. It is possible
|
|
Packit Service |
30b792 |
to produce reST versions via Pandoc and DITA XML can be reached
|
|
Packit Service |
30b792 |
through converting to either Markdown or XHTML first.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
** TODO Documentation build systems
|
|
Packit Service |
30b792 |
:PROPERTIES:
|
|
Packit Service |
30b792 |
:CUSTOM_ID: todo-docs-build-systems
|
|
Packit Service |
30b792 |
:END:
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
Though Org Mode is being used for the default documentation format, it
|
|
Packit Service |
30b792 |
still needs to end up as usable by end users. So the Org Mode files
|
|
Packit Service |
30b792 |
are used to produce the "source" files used by the two main contenders
|
|
Packit Service |
30b792 |
for documenting the bindings: Texinfo and ReStructuredText/Docutils.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
*** TODO Texinfo documentation
|
|
Packit Service |
30b792 |
:PROPERTIES:
|
|
Packit Service |
30b792 |
:CUSTOM_ID: todo-docs-build-texinfo
|
|
Packit Service |
30b792 |
:END:
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
Need to add all of Texinfo's ... special systems to make it do its
|
|
Packit Service |
30b792 |
things.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
*** TODO ReStructuredText documentation
|
|
Packit Service |
30b792 |
:PROPERTIES:
|
|
Packit Service |
30b792 |
:CUSTOM_ID: todo-docs-build-docutils
|
|
Packit Service |
30b792 |
:END:
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
Need to run Sphinx's quick start, add it to the requirements and tweak
|
|
Packit Service |
30b792 |
the index page for the rst files to point to the HOWTO and other files.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
It might just be easier to do all that in Org Mode and convert the
|
|
Packit Service |
30b792 |
lot, then the Sphinx bits can be automated.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
** STARTED Documentation HOWTO
|
|
Packit Service |
30b792 |
:PROPERTIES:
|
|
Packit Service |
30b792 |
:CUSTOM_ID: todo-docs-howto
|
|
Packit Service |
30b792 |
:END:
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
- State "STARTED" from "TODO" [2018-03-08 Thu 13:59] \\
|
|
Packit Service |
30b792 |
Started yesterday.
|
|
Packit Service |
30b792 |
Write a HOWTO style guide for the current Python bindings.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
*** DONE Start python bindings HOWTO
|
|
Packit Service |
30b792 |
CLOSED: [2018-03-07 Wed 18:14]
|
|
Packit Service |
30b792 |
:PROPERTIES:
|
|
Packit Service |
30b792 |
:CUSTOM_ID: howto-start
|
|
Packit Service |
30b792 |
:END:
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
*** STARTED Include certain specific instructions in the HOWTO
|
|
Packit Service |
30b792 |
:PROPERTIES:
|
|
Packit Service |
30b792 |
:CUSTOM_ID: howto-requests
|
|
Packit Service |
30b792 |
:END:
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
Note: moved the S/MIME bits out to their own section of the TODO
|
|
Packit Service |
30b792 |
list and may be served better by separate HOWTO documentation
|
|
Packit Service |
30b792 |
anyway.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
- State "STARTED" from "TODO" [2018-03-09 Fri 15:27]
|
|
Packit Service |
30b792 |
Some functions can be worked out from the handful of examples
|
|
Packit Service |
30b792 |
available, but many more can't and I've already begun receiving
|
|
Packit Service |
30b792 |
requests for certain functions to be explained.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
**** DONE Standard scenarios
|
|
Packit Service |
30b792 |
CLOSED: [2018-03-19 Mon 12:34]
|
|
Packit Service |
30b792 |
:PROPERTIES:
|
|
Packit Service |
30b792 |
:CUSTOM_ID: howto-the-basics
|
|
Packit Service |
30b792 |
:END:
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
- State "DONE" from "STARTED" [2018-03-19 Mon 12:34] \\
|
|
Packit Service |
30b792 |
All four of those are done.
|
|
Packit Service |
30b792 |
- State "STARTED" from "TODO" [2018-03-09 Fri 15:26] \\
|
|
Packit Service |
30b792 |
Began with the example code, now to add the text.
|
|
Packit Service |
30b792 |
What everyone expects: encryption, decryption, signing and verifying.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
**** STARTED Key control
|
|
Packit Service |
30b792 |
:PROPERTIES:
|
|
Packit Service |
30b792 |
:CUSTOM_ID: howto-key-control
|
|
Packit Service |
30b792 |
:END:
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
- State "STARTED" from "TODO" [2018-03-19 Mon 12:35] \\
|
|
Packit Service |
30b792 |
Generating keys and subkeys are done, but revocation is still to be done.
|
|
Packit Service |
30b792 |
Generating keys, adding subkeys, revoking subkeys (and keeping
|
|
Packit Service |
30b792 |
the cert key), adding and revoking UIDs, signing/certifying keys.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
**** DONE More key control
|
|
Packit Service |
30b792 |
CLOSED: [2018-03-19 Mon 12:36]
|
|
Packit Service |
30b792 |
:PROPERTIES:
|
|
Packit Service |
30b792 |
:CUSTOM_ID: howto-key-selection
|
|
Packit Service |
30b792 |
:END:
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
- State "DONE" from "TODO" [2018-03-19 Mon 12:36] \\
|
|
Packit Service |
30b792 |
Key selection, searching, matching and counting is done.
|
|
Packit Service |
30b792 |
Selecting keys to encrypt to or manipulate in other ways (e.g. as
|
|
Packit Service |
30b792 |
with key control or the basics).
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
** TODO Documentation SWIG
|
|
Packit Service |
30b792 |
:PROPERTIES:
|
|
Packit Service |
30b792 |
:CUSTOM_ID: todo-docs-swig
|
|
Packit Service |
30b792 |
:END:
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
Write documentation for the complete SWIG bindings demonstrating
|
|
Packit Service |
30b792 |
the correspondence with GPGME itself.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
Note: it is likely that this will be more in the nature of
|
|
Packit Service |
30b792 |
something to be used in conjunction with the existing GPGME
|
|
Packit Service |
30b792 |
documentation which makes it easier for Python developers to use.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
** TODO GUI examples
|
|
Packit Service |
30b792 |
:PROPERTIES:
|
|
Packit Service |
30b792 |
:CUSTOM_ID: todo-gui-examples
|
|
Packit Service |
30b792 |
:END:
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
Create some examples of using Python bindings in a GUI application
|
|
Packit Service |
30b792 |
to either match or be similar to the old GTK2 examples available
|
|
Packit Service |
30b792 |
with PyME.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
** TODO Replace SWIG
|
|
Packit Service |
30b792 |
:PROPERTIES:
|
|
Packit Service |
30b792 |
:CUSTOM_ID: todo-replace-swig
|
|
Packit Service |
30b792 |
:END:
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
Selecting SWIG for this project in 2002 was understandable and
|
|
Packit Service |
30b792 |
effectively the only viable option. The options available now,
|
|
Packit Service |
30b792 |
however, are significantly improved and some of those would resolve
|
|
Packit Service |
30b792 |
a number of existing problems with using SWIG, particularly when
|
|
Packit Service |
30b792 |
running code on both POSIX compliant and Windows platforms.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
The long term goal is to replace SWIG by reimplementing the Python
|
|
Packit Service |
30b792 |
bindings using a more suitable means of interfacing with the GPGME
|
|
Packit Service |
30b792 |
C source code.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
*** TODO Replacement for SWIG
|
|
Packit Service |
30b792 |
:PROPERTIES:
|
|
Packit Service |
30b792 |
:CUSTOM_ID: todo-replace-swig-replacement
|
|
Packit Service |
30b792 |
:END:
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
Decide on a replacement for SWIG. Currently CFFI is looking like
|
|
Packit Service |
30b792 |
the most viable candidate, but some additional testing and checks
|
|
Packit Service |
30b792 |
are yet to be completed.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
** TODO API for an API
|
|
Packit Service |
30b792 |
:PROPERTIES:
|
|
Packit Service |
30b792 |
:CUSTOM_ID: todo-api-squared
|
|
Packit Service |
30b792 |
:END:
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
A C API like GPGME is not what most modern developers think of when
|
|
Packit Service |
30b792 |
they hear the term API. Normally they think of something they can
|
|
Packit Service |
30b792 |
interact with like a RESTful web API. Though RESTful is unlikely
|
|
Packit Service |
30b792 |
given the nature of GPGME and the process of encryption, it may be
|
|
Packit Service |
30b792 |
possible to provide a more familiar interface which can be utilised
|
|
Packit Service |
30b792 |
by developers of other languages for which bindings are not
|
|
Packit Service |
30b792 |
available or for which it is too difficult to create proper
|
|
Packit Service |
30b792 |
bindings.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
** TODO S/MIME
|
|
Packit Service |
30b792 |
:PROPERTIES:
|
|
Packit Service |
30b792 |
:CUSTOM_ID: s-mime
|
|
Packit Service |
30b792 |
:END:
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
Eventually add some of this, but the OpenPGP details are far more
|
|
Packit Service |
30b792 |
important at the moment.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
* Project Task Details
|
|
Packit Service |
30b792 |
:PROPERTIES:
|
|
Packit Service |
30b792 |
:CUSTOM_ID: detailed-tasks
|
|
Packit Service |
30b792 |
:END:
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
** Working examples
|
|
Packit Service |
30b792 |
:PROPERTIES:
|
|
Packit Service |
30b792 |
:CUSTOM_ID: working-examples
|
|
Packit Service |
30b792 |
:END:
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
The old GUI examples were unable to be retained since they depended
|
|
Packit Service |
30b792 |
on GTK2 and Python 2's integration with GTK2.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
Current GPGME examples so far only include command line tools or
|
|
Packit Service |
30b792 |
basic Python code for use with either Python 2.7 or Python 3.4 and
|
|
Packit Service |
30b792 |
above.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
Future GUI examples ought to utilise available GUI modules and
|
|
Packit Service |
30b792 |
libraries supported by Python 3. This may include Qt frameworks,
|
|
Packit Service |
30b792 |
Tkinter, GTK3 or something else entirely.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
** Documentation
|
|
Packit Service |
30b792 |
:PROPERTIES:
|
|
Packit Service |
30b792 |
:CUSTOM_ID: documentation
|
|
Packit Service |
30b792 |
:END:
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
The legacy documentation which no longer applies to the Python
|
|
Packit Service |
30b792 |
bindings has been removed.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
Current and future documentation will adhere to the GnuPG standard
|
|
Packit Service |
30b792 |
of using Org Mode and not use the reStructuredText (reST) format
|
|
Packit Service |
30b792 |
more commonly associated with Python documentation. The reasons
|
|
Packit Service |
30b792 |
for this are that this project is best served as shipping with the
|
|
Packit Service |
30b792 |
rest of GPGME and the documentation ought to match that. There are
|
|
Packit Service |
30b792 |
also aspects of Org Mode's publishing features which are superior
|
|
Packit Service |
30b792 |
to the defaults of reST, including the capacity to generate fully
|
|
Packit Service |
30b792 |
validating strict XHTML output.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
If reST files are required at a later point for future inclusion
|
|
Packit Service |
30b792 |
with other Python packages, then that format can be generated from
|
|
Packit Service |
30b792 |
the .org files with Pandoc before being leveraged by either
|
|
Packit Service |
30b792 |
Docutils, Sphinx or something else.
|
|
Packit Service |
30b792 |
|
|
Packit Service |
30b792 |
While there are some advanced typesetting features of reST which
|
|
Packit Service |
30b792 |
are not directly available to Org Mode, more often than not those
|
|
Packit Service |
30b792 |
features are best implemented with either HTML and CSS, with LaTeX
|
|
Packit Service |
30b792 |
to produce a PDF or via a number of XML solutions. Both reST and
|
|
Packit Service |
30b792 |
Org Mode have multiple paths by which to achieve all of these.
|