view CHANGES.txt @ 292:6a044778371a

Some unittests for the new "strict" YAML parsing mode to prevent duplicate keys within a single YAML document
author Franz Glasner <f.glasner@feldmann-mg.com>
date Wed, 10 Feb 2021 15:04:27 +0100
parents edf5cc1ffd26
children 15f8401c4663
line wrap: on
line source

.. -*- coding: utf-8; mode: rst; indent-tabs-mode: nil; -*-

..
.. Valid tags: breaking, feature, bugfix, misc, test, doc
..

.. _changelog:

Changelog
=========

Pre-1.0 Series
--------------

.. changelog::
   :version: 0.13.dev1
   :released: n/a

   .. change::
      :tags: feature

      All YAML load functions got a new optional keyword `strict` to detect
      and prevent duplicate keys within a single YAML document.

.. changelog::
   :version: 0.12
   :released: 2020-12-07

   .. change::
      :tags: feature

      Provide an ``AWS`` namespace to retrieve some AWS instance metadata.

.. changelog::
   :version: 0.11
   :released: 2020-10-05

   .. change::
      :tags: feature

      Allow the deletion of key-value pairs while merging configurations.

      This is done by recognizing and handling the special
      configuration value ``{{::DEL::}}``.

.. changelog::
   :version: 0.10
   :released: 2020-09-10

   .. change::
      :tags: feature

      Allow loading configuration files from directories when using
      the "<dir>" prefix in filenames.

      Unknown filetypes within these directories are ignored
      automatically.

   .. change::
      :tags: feature

      Implemented a function to delete an association:
      :py:func:`configmix.del_assoc`.

.. changelog::
   :version: 0.9
   :released: 2020-07-28

   .. change::
      :tags: breaking, feature

      Do not set "root", "self" and "here" variables any more. The old
      behaviour hindered proper automatic configuration on some PyPy
      configurations when using `genapplib`.

      Only the INI-parser did set this variables automatically.

.. changelog::
   :version: 0.8.1
   :released: 2020-07-08

   .. change::
      :tags: bugfix

      Allow non-string keys when merging configurations.

.. changelog::
   :version: 0.8
   :released: 2020-07-08

   .. change::
      :tags: breaking, feature

      Do not implicitely convert a configuration value to text if the
      value is the result of just a variable expansion.

.. changelog::
   :version: 0.7.4
   :released: 2020-05-21

   .. change::
      :tags: feature

      Implemented new namespace function ``OS:node`` to return the node's
      computername.

   .. change::
      :tags: bugfix

      The ``OS`` namespace lookup did not handle non-existing variables
      properly and ignored the `default` parameter.


.. changelog::
   :version: 0.7.3
   :released: 2020-05-13

   .. change::
      :tags:

      No code changes.


.. changelog::
   :version: 0.7.2
   :released: 2019-05-13

   .. change::
      :tags: feature

      Implemented a loader with key ``-*-ignore-*-`` effectively
      ignores the contents of given file. No file extensions are by
      default associated with this loader.


.. changelog::
   :version: 0.7.1
   :released: 2019-05-10

   .. change::
      :tags: feature

      :py:func:`configmix.load` and :py:func:`configmix.safe_load` got a
      new keyword argument `extras` that (if given) will be used as the
      *last*  configuration dictionary to be merged into the configuration.

      This can be used to overwrite configuration file settings from
      commandline arguments.

   .. change::
      :tags: bugfix

      :py:func:`configmix.safe_load` did some preliminary unsafe merges
      from `defaults` and an extra additional unneeded merge.


.. changelog::
   :version: 0.7
   :released: 2019-05-06

   .. change::
      :tags: breaking

      Additional or alternative loaders can be installed by changing
      the :py:data:`configmix.mode_loaders` dictionary directly.

   .. change::
      :tags: breaking

      The public functions to associate filename extensions to filemodes
      have been renamed to :py:func:`configmix.set_assoc`,
      :py:func:`configmix.get_assoc`,
      :py:func:`configmix.clear_assoc`,
      :py:func:`configmix.get_default_assoc`.

      The filemodes must be keys in the :py:data:`configmix.mode_loaders`
      dictionary.

   .. change::
      :tags: breaking, feature

      The associations from filename extensions to parsers are
      :py:mod:`fnmatch` style patterns now.

      Calling :py:func:`configmix.set_assoc` by default prepends to
      the currently defined associations and therefore gets the
      highest priority. Appending is possible also.

   .. change::
      :tags: feature

      :py:func:`configmix.load` and :py:func:`configmix.safe_load` got
      a keyword argument `defaults` that allow the provision of an
      already existing default configuration into which all additional
      configuration settings are merged into.

   .. change::
      :tags: feature

      Added support for TOML style configuration files. This needs
      the external package :py:mod:`toml` (from https://github.com/uiri/toml).


.. changelog::
   :version: 0.6
   :released: 2019-03-14

   .. change::
      :tags: breaking, feature

      Reimplemented :py:func:`configmix.safe_merge` to do a deepcopy of all
      source configurations when merging. Previously is was sort of a
      shallow copy.

   .. change::
      :tags: breaking, feature

      The default file encoding when reading INI style files with
      :py:func:`configmix.ini.load` is now "UTF-8". Previously it was
      undefined and therefore dependent on the user's locale.

      An `encoding` keyword argument can be specified explicitely now.

   .. change::
      :tags: breaking, feature

      Support comment-like key-value pairs with configuration keys starting
      with ``__doc`` or ``__comment``.

   .. change::
      :tags: misc

      Use the filesystem encoding where appripriate.

   .. change::
      :tags: doc

      Begin the documentation with `Sphinx <http://www.sphinx-doc.org>`_

   .. change::
      :tags: test

      Begin formal unittests

   .. change::
      :tags: feature

      Build a tree of configuration settings from INI files

   .. change::
      :tags: feature

      Support JSON formatted files as configuration files also (suffix ".json").

   .. change::
      :tags: feature

      Allow custom configuration filename extensions and custom loaders that
      can handle custom configuration file syntax styles.


.. changelog::
   :version: 0.5
   :released: 2016-04-19

   .. change::
      :tags: feature

      First really used release.