Migrate TODOs into documentation
Signed-off-by: martin f. krafft <madduck@madduck.net>
diff --git a/doc/source/ansible.rst b/doc/source/ansible.rst
index 3409ed8..b77a2c3 100644
--- a/doc/source/ansible.rst
+++ b/doc/source/ansible.rst
@@ -22,6 +22,11 @@
/…/reclass refers to the location of your |reclass| checkout.
+.. todo::
+
+ With |reclass| now in Debian, as well as installable from source, the
+ following should be checked for path consistency…
+
#. Complete the installation steps described in the :doc:`installation section
<install>`.
diff --git a/doc/source/hacking.rst b/doc/source/hacking.rst
index e158c16..bb86f75 100644
--- a/doc/source/hacking.rst
+++ b/doc/source/hacking.rst
@@ -54,6 +54,9 @@
cleaning up the code. If this is the sort of stuff you want to do — by all
means — be my guest! ;)
+There are a number of items on the :doc:`to-do list <todo>`, so if you are
+bored…
+
If you have larger ideas, I'll be looking forward to discuss them with you.
.. include:: substs.inc
diff --git a/doc/source/index.rst b/doc/source/index.rst
index dd1f4ab..114064d 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -20,6 +20,7 @@
ansible
puppet
hacking
+ todo
Community
---------
diff --git a/doc/source/install.rst b/doc/source/install.rst
index e587dca..fefccf5 100644
--- a/doc/source/install.rst
+++ b/doc/source/install.rst
@@ -38,6 +38,13 @@
$ python setup.py install --prefix=/opt/local
+.. todo::
+
+ These will install the ``reclass-salt`` and ``reclass-ansible`` adapters to
+ ``$prefix/bin``, but they should go to ``$prefix/share/reclass``. How can
+ setup.py be told to do so? It would be better for consistency if this was
+ done "upstream", rather than fixed by the distros.
+
Just make sure that the destination is in the Python module search path, which
you can check like this::
diff --git a/doc/source/puppet.rst b/doc/source/puppet.rst
index 9f92da4..869655f 100644
--- a/doc/source/puppet.rst
+++ b/doc/source/puppet.rst
@@ -1,12 +1,15 @@
=========================
Using reclass with Puppet
=========================
-The adapter between |reclass| and `Puppet`_ has not actually been written,
-since I rage-quit using Puppet before the rewrite of |reclass|.
-It should be trivial to do, and if you need it or are interested in working on
-it, and you require assistance, please `get in touch with me
-<mailto:reclass@pobox.madduck.net>`_. Else just send the patch!
+.. todo::
+
+ The adapter between |reclass| and `Puppet`_ has not actually been written,
+ since I rage-quit using Puppet before the rewrite of |reclass|.
+
+ It should be trivial to do, and if you need it or are interested in working on
+ it, and you require assistance, please `get in touch with me
+ <mailto:reclass@pobox.madduck.net>`_. Else just send the patch!
.. include:: extrefs.inc
.. include:: substs.inc
diff --git a/doc/source/salt.rst b/doc/source/salt.rst
index ccf30bb..5a6dbd6 100644
--- a/doc/source/salt.rst
+++ b/doc/source/salt.rst
@@ -30,6 +30,11 @@
/…/reclass refers to the location of your |reclass| checkout.
+.. todo::
+
+ With |reclass| now in Debian, as well as installable from source, the
+ following should be checked for path consistency…
+
#. Complete the installation steps described in the :doc:`installation section
<install>`.
diff --git a/doc/source/todo.rst b/doc/source/todo.rst
new file mode 100644
index 0000000..0cf0bf1
--- /dev/null
+++ b/doc/source/todo.rst
@@ -0,0 +1,52 @@
+==================
+reclass to-do list
+==================
+
+Testing framework
+-----------------
+There is rudimentary testing in place, but it's inconsistent. I got
+side-tracked into discussions about the philosphy of mocking objects. This
+could all be fixed and unified.
+
+Also, storage, outputters, CLI and adapters have absolutely no tests yet…
+
+Configurable file extension
+---------------------------
+Right now, ``.yml`` is hard-coded. This could be exported to the
+configuration file, or even given as a list, so that ``.yml`` and ``.yaml``
+can both be used.
+
+Verbosity, debugging
+--------------------
+Verbose output and debug logging would be a very useful addition to help
+people understand what's going on, where data are being changed/merged, and to
+help solve problems.
+
+Default classes
+---------------
+Through the configuration file, it should be possible to define a set of
+default classes that are applied to all nodes (before anything else).
+
+This would be covered by the next point:
+
+Wildcards, regexp→class mapping
+-------------------------------
+I envision the ability to define mappings between regexps and classes, e.g.::
+
+ /^www\d+/ → webservers
+ /\.ch\./ → hosted@switzerland
+
+These classes would be applied before a YAML file matching the actual hostname
+would be read and merged.
+
+Data from CMS for interpolation
+-------------------------------
+Depending on the CMS in question, it would be nice if |reclass| had access to
+the host-specific data (facts, grains, etc.) and could use those in parameter
+interpolation. I can imagine this working for Salt, where the ``grains``
+dictionary (and results from previous external node classifiers) is made
+available to the external node classifiers, but I am not convinced this will
+be possible in Ansible and Puppet.
+
+Ideally, |reclass| could unify the interface so that even templates can be
+shared between the various CMS.
diff --git a/doc/source/usage.rst b/doc/source/usage.rst
index c87114e..bcd5450 100644
--- a/doc/source/usage.rst
+++ b/doc/source/usage.rst
@@ -1,6 +1,11 @@
=============
Using reclass
=============
+.. todo::
+
+ With |reclass| now in Debian, as well as installable from source, the
+ following should be checked for path consistency…
+
For information on how to use |reclass| directly, call ``reclass --help``
and study the output, or have a look at its :doc:`manual page <manpage>`.