Your message dated Fri, 28 Nov 2014 20:20:59 +0000 with message-id <20141128202058.gk23...@lupin.home.powdarrmonkey.net> and subject line Re: Bug#770822: unblock: reclass/1.4.1-1 has caused the Debian Bug report #770822, regarding unblock: reclass/1.4.1-1 to be marked as done.
This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact ow...@bugs.debian.org immediately.) -- 770822: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=770822 Debian Bug Tracking System Contact ow...@bugs.debian.org with problems
--- Begin Message ---Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock Please unblock package reclass There's been a bit of difficulty relating to the 1.4 upload to unstable prior to the freeze resulting from another developer uploading an NMU (1.3-2) that was required for another package (boxer-data), which first needed to migrate to testing before we could finally push 1.4-1. And then it turned out that 1.4-1 had a bug, which we fixed by reverting the change upstream, resulting in 1.4.1-1, which missed the freeze window. Due to this being a new upstream release, the diff is a little longer than you'd want it, but I am annotating it and abbreviating all the stuff that is related only to example data files: diff -Nru reclass-1.3/ChangeLog.rst reclass-1.4.1/ChangeLog.rst --- reclass-1.3/ChangeLog.rst 2014-03-01 14:45:02.000000000 +0100 +++ reclass-1.4.1/ChangeLog.rst 2014-10-28 15:52:25.000000000 +0100 @@ -5,6 +5,14 @@ ========= ========== ======================================================== Version Date Changes ========= ========== ======================================================== +1.4.1 2014-10-28 * Revert debug logging, which wasn't fault-free and so + it needs more time to mature. +1.4 2014-10-25 * Add rudimentary debug logging + * Prevent interpolate() from overwriting merged values + * Look for "init" instead of "index" when being fed + a directory. + * Fix error reporting on node name collision across + subdirectories. 1.3 2014-03-01 * Salt: pillar data from previous pillars are now available to reclass parameter interpolation * yaml_fs: classes may be defined in subdirectories diff -Nru reclass-1.3/debian/changelog reclass-1.4.1/debian/changelog --- reclass-1.3/debian/changelog 2014-10-14 11:06:24.000000000 +0200 +++ reclass-1.4.1/debian/changelog 2014-10-28 15:57:42.000000000 +0100 @@ -1,4 +1,18 @@ -reclass (1.3-2) unstable; urgency=medium +reclass (1.4.1-1) unstable; urgency=low + + * New upstream release reverting the logging changes, which weren't ready + yet. + + -- martin f. krafft <madd...@debian.org> Tue, 28 Oct 2014 15:56:59 +0100 + +reclass (1.4-1) unstable; urgency=low + + * New upstream release (closes: #761952). + * Compliant with Debian Policy 3.9.6. + + -- martin f. krafft <madd...@debian.org> Sat, 25 Oct 2014 15:12:25 +0200 + +reclass (1.3-2) UNRELEASED; urgency=medium * Add myself as uploader. * Update Vcs-Git and Vcs-Browser URLs. @@ -6,7 +20,7 @@ * Have python-reclass depend on python-pkg-resources. Closes: bug#757423. - -- Jonas Smedegaard <d...@jones.dk> Tue, 14 Oct 2014 11:06:20 +0200 + -- Jonas Smedegaard <d...@jones.dk> Wed, 17 Sep 2014 10:17:04 +0200 reclass (1.3-1) unstable; urgency=low diff -Nru reclass-1.3/debian/control reclass-1.4.1/debian/control --- reclass-1.3/debian/control 2014-09-17 14:20:00.000000000 +0200 +++ reclass-1.4.1/debian/control 2014-10-25 20:45:57.000000000 +0200 @@ -2,9 +2,9 @@ Section: python Priority: extra Maintainer: martin f. krafft <madd...@debian.org> -Uploader: Jonas Smedegaard <d...@jones.dk> +Uploaders: Jonas Smedegaard <d...@jones.dk> Build-Depends: python-setuptools, python, debhelper (>= 8.9.7), python-sphinx, python-yaml -Standards-Version: 3.9.5 +Standards-Version: 3.9.6 XS-Python-Version: all Homepage: http://reclass.pantsfullofunix.net/ Vcs-Git: git://anonscm.debian.org/collab-maint/reclass.git diff -Nru reclass-1.3/doc/source/extrefs.inc reclass-1.4.1/doc/source/extrefs.inc --- reclass-1.3/doc/source/extrefs.inc 2014-03-01 14:45:02.000000000 +0100 +++ reclass-1.4.1/doc/source/extrefs.inc 2014-10-28 15:52:25.000000000 +0100 @@ -2,5 +2,5 @@ .. _Salt: http://saltstack.com/community .. _Ansible: http://www.ansibleworks.com .. _Hiera: http://projects.puppetlabs.com/projects/hiera -.. _Artistic Licence 2.0: http://www.perlfoundation.org/legal/licenses/artistic-2_0.html +.. _Artistic Licence 2.0: http://opensource.org/licenses/Artistic-2.0 .. _Jinja2: http://jinja.pocoo.org diff -Nru reclass-1.3/doc/source/index.rst reclass-1.4.1/doc/source/index.rst --- reclass-1.3/doc/source/index.rst 2014-03-01 14:45:02.000000000 +0100 +++ reclass-1.4.1/doc/source/index.rst 2014-10-28 15:52:25.000000000 +0100 @@ -34,7 +34,7 @@ Licence ------- -|reclass| is © 2007–2013 by martin f. krafft and released under the terms of +|reclass| is © 2007–2014 by martin f. krafft and released under the terms of the `Artistic Licence 2.0`_. Contents diff -Nru reclass-1.3/doc/source/operations.rst reclass-1.4.1/doc/source/operations.rst --- reclass-1.3/doc/source/operations.rst 2014-03-01 14:45:02.000000000 +0100 +++ reclass-1.4.1/doc/source/operations.rst 2014-10-28 15:52:25.000000000 +0100 @@ -75,8 +75,9 @@ Merging of parameters is done "deeply", meaning that lists and dictionaries are extended (recursively), rather than replaced. However, a scalar value *does* overwrite a dictionary or list value. While the scalar could be -appended to an existing list, there is sane default assumption in the context -of a dictionary, so this behaviour seems the most logical. +appended to an existing list, there is no sane default assumption in the +context of a dictionary, so this behaviour seems the most logical. Plus, it +allows for a dictionary to be erased by overwriting it with the null value. After all classes (and the classes they reference) have been visited, |reclass| finally merges the applications list and parameters defined for the diff -Nru reclass-1.3/doc/source/salt.rst reclass-1.4.1/doc/source/salt.rst --- reclass-1.3/doc/source/salt.rst 2014-03-01 14:45:02.000000000 +0100 +++ reclass-1.4.1/doc/source/salt.rst 2014-10-28 15:52:25.000000000 +0100 @@ -197,9 +197,19 @@ feature is therefore turned off by default and must be explicitly enabled in the Salt master configuration file, like this:: - reclass: &reclass - […] - propagate_pillar_data_to_reclass: True + ext_pillar: + - reclass: + […] + propagate_pillar_data_to_reclass: True + +Unfortunately, to use this, currently you cannot use YAML references (i.e. +``*reclass``) as shown above, as the ``master_tops`` subsystem does not accept +this configuration parameter, and there seems to be no way to extend an alias. +Specifically, the following is not possible — let me know if it is!:: + + ext_pillar: + - reclass: *reclass # WARNING: this does not work! + propagate_pillar_data_to_reclass: True .. include:: substs.inc .. include:: extrefs.inc diff -Nru reclass-1.3/reclass/datatypes/parameters.py reclass-1.4.1/reclass/datatypes/parameters.py --- reclass-1.3/reclass/datatypes/parameters.py 2014-03-01 14:45:02.000000000 +0100 +++ reclass-1.4.1/reclass/datatypes/parameters.py 2014-10-28 15:52:25.000000000 +0100 @@ -70,6 +70,13 @@ return self._base.copy() def _update_scalar(self, cur, new, path): + if isinstance(cur, RefValue) and path in self._occurrences: + # If the current value already holds a RefValue, we better forget + # the occurrence, or else interpolate() will later overwrite + # unconditionally. If the new value is a RefValue, the occurrence + # will be added again further on + del self._occurrences[path] + if self.delimiter is None or not isinstance(new, (types.StringTypes, RefValue)): # either there is no delimiter defined (and hence no references diff -Nru reclass-1.3/reclass/datatypes/tests/test_parameters.py reclass-1.4.1/reclass/datatypes/tests/test_parameters.py --- reclass-1.3/reclass/datatypes/tests/test_parameters.py 2014-03-01 14:45:02.000000000 +0100 +++ reclass-1.4.1/reclass/datatypes/tests/test_parameters.py 2014-10-28 15:52:25.000000000 +0100 @@ -127,6 +127,12 @@ self.assertIn(mock.call(key), b1.get.call_args_list) self.assertIn(mock.call(key, value), b1.__setitem__.call_args_list) + def test_stray_occurrence_overwrites_during_interpolation(self): + p1 = Parameters({'r' : mock.sentinel.ref, 'b': '${r}'}) + p2 = Parameters({'b' : mock.sentinel.goal}) + p1.merge(p2) + p1.interpolate() + self.assertEqual(p1.as_dict()['b'], mock.sentinel.goal) class TestParametersNoMock(unittest.TestCase): diff -Nru reclass-1.3/reclass/errors.py reclass-1.4.1/reclass/errors.py --- reclass-1.3/reclass/errors.py 2014-03-01 14:45:02.000000000 +0100 +++ reclass-1.4.1/reclass/errors.py 2014-10-28 15:52:25.000000000 +0100 @@ -208,4 +208,4 @@ msg = "{0}: Definition of node '{1}' in '{2}' collides with " \ "definition in '{3}'. Nodes can only be defined once " \ "per inventory." - return msg.format(storage, name, uris[1], uris[0]) + return msg.format(self._storage, self._name, self._uris[1], self._uris[0]) diff -Nru reclass-1.3/reclass/storage/yaml_fs/__init__.py reclass-1.4.1/reclass/storage/yaml_fs/__init__.py --- reclass-1.3/reclass/storage/yaml_fs/__init__.py 2014-03-01 14:45:02.000000000 +0100 +++ reclass-1.4.1/reclass/storage/yaml_fs/__init__.py 2014-10-28 15:52:25.000000000 +0100 @@ -27,18 +27,24 @@ super(ExternalNodeStorage, self).__init__(STORAGE_NAME) def name_mangler(relpath, name): - # nodes are identified just by their basename - return name + # nodes are identified just by their basename, so + # no mangling required + return relpath, name self._nodes_uri = nodes_uri self._nodes = self._enumerate_inventory(nodes_uri, name_mangler) def name_mangler(relpath, name): if relpath == '.': - return name + # './' is converted to None + return None, name parts = relpath.split(os.path.sep) - if name != 'index': + if name != 'init': + # "init" is the directory index, so only append the basename + # to the path parts for all other filenames. This has the + # effect that data in file "foo/init.yml" will be registered + # as data for class "foo", not "foo.init" parts.append(name) - return '.'.join(parts) + return relpath, '.'.join(parts) self._classes_uri = classes_uri self._classes = self._enumerate_inventory(classes_uri, name_mangler) @@ -56,13 +62,15 @@ name = os.path.splitext(f)[0] relpath = os.path.relpath(dirpath, basedir) if callable(name_mangler): - name = name_mangler(relpath, name) + relpath, name = name_mangler(relpath, name) uri = os.path.join(dirpath, f) if name in ret: E = reclass.errors.DuplicateNodeNameError - raise E(self._get_storage_name(), name, + raise E(self.name, name, os.path.join(basedir, ret[name]), uri) - ret[name] = os.path.join(relpath, f) + if relpath: + f = os.path.join(relpath, f) + ret[name] = f d = Directory(basedir) d.walk(register_fn) diff -Nru reclass-1.3/reclass/version.py reclass-1.4.1/reclass/version.py --- reclass-1.3/reclass/version.py 2014-03-01 14:45:02.000000000 +0100 +++ reclass-1.4.1/reclass/version.py 2014-10-28 15:52:25.000000000 +0100 @@ -8,7 +8,7 @@ # RECLASS_NAME = 'reclass' DESCRIPTION = 'merge data by recursive descent down an ancestry hierarchy' -VERSION = '1.3' +VERSION = '1.4.1' AUTHOR = 'martin f. krafft' AUTHOR_EMAIL = 'recl...@pobox.madduck.net' COPYRIGHT = 'Copyright © 2007–14 ' + AUTHOR unblock reclass/1.4.1-1 -- System Information: Debian Release: jessie/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 3.16-2-amd64 (SMP w/8 CPU cores) Locale: LANG=en_NZ, LC_CTYPE=en_NZ.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash -- .''`. martin f. krafft <madduck@d.o> @martinkrafft : :' : proud Debian developer `. `'` http://people.debian.org/~madduck `- Debian - when you have better things to do than fixing systemsdigital_signature_gpg.asc
Description: Digital signature (see http://martin-krafft.net/gpg/sig-policy/999bbcc4/current)
--- End Message ---
--- Begin Message ---On Tue, Nov 25, 2014 at 12:13:47AM +0100, martin f krafft wrote: > also sprach Jonathan Wiltshire <j...@debian.org> [2014-11-24 23:34 +0100]: > > > Due to this being a new upstream release, the diff is a little > > > longer than you'd want it, but I am annotating it and abbreviating > > > all the stuff that is related only to example data files: > > > > What's the justification for the only fixed bug being wishlist? > > Thanks Jonathan for your time! > > The wishlist is about packaging the new upstream version, which > includes bug fixes that didn't have Debian bug reports since I found > them or they were reported on Github. Unblocked. -- Jonathan Wiltshire j...@debian.org Debian Developer http://people.debian.org/~jmw 4096R: 0xD3524C51 / 0A55 B7C5 1223 3942 86EC 74C3 5394 479D D352 4C51signature.asc
Description: Digital signature
--- End Message ---