Hello community,
here is the log from the commit of package python-reno for openSUSE:Factory checked in at 2016-06-07 23:49:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-reno (Old)
and /work/SRC/openSUSE:Factory/.python-reno.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-reno"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-reno/python-reno.changes 2016-03-07 13:24:17.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-reno.new/python-reno.changes 2016-06-07 23:49:31.000000000 +0200
@@ -1,0 +2,13 @@
+Sat Jun 4 06:24:55 UTC 2016 - tbechtold@suse.com
+
+- update to 1.6.2:
+ * default to collapsing pre-releases in sphinxext
+ * handle deleted notes properly
+ * refactor argument buildup to make it more reusable
+ * improve test coverage
+ * always show coverage report for test runs
+ * Add deprecations section to usage documentation
+ * use less entropy in unit tests
+ * collapse pre-release notes into regular releases by default
+
+-------------------------------------------------------------------
Old:
----
reno-1.5.0.tar.gz
New:
----
reno-1.6.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-reno.spec ++++++
--- /var/tmp/diff_new_pack.YgrV0U/_old 2016-06-07 23:49:32.000000000 +0200
+++ /var/tmp/diff_new_pack.YgrV0U/_new 2016-06-07 23:49:32.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-reno
#
-# Copyright (c) 2016 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -13,20 +13,21 @@
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
+#
Name: python-reno
-Version: 1.5.0
+Version: 1.6.2
Release: 0
-License: Apache-2.0
Summary: RElease NOtes manager
-Url: http://www.openstack.org/
+License: Apache-2.0
Group: Development/Languages/Python
+Url: http://www.openstack.org/
Source: https://pypi.python.org/packages/source/r/reno/reno-%{version}.tar.gz
BuildRequires: python-Babel
+BuildRequires: python-PyYAML
BuildRequires: python-devel
BuildRequires: python-pbr
-BuildRequires: python-PyYAML
BuildRequires: python-setuptools
%if %{with tests}
BuildRequires: python-testrepository
@@ -77,7 +78,6 @@
%_sbindir/update-alternatives --remove reno %{_bindir}/reno-%{py_ver}
fi
-
%files
%defattr(-,root,root,-)
%doc LICENSE ChangeLog README.rst AUTHORS
++++++ reno-1.5.0.tar.gz -> reno-1.6.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.5.0/AUTHORS new/reno-1.6.2/AUTHORS
--- old/reno-1.5.0/AUTHORS 2016-02-10 15:53:53.000000000 +0100
+++ new/reno-1.6.2/AUTHORS 2016-04-07 10:37:22.000000000 +0200
@@ -3,4 +3,5 @@
Graham Hayes
Ian Cordasco
Louis Taylor
+Mike Perez
Monty Taylor
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.5.0/ChangeLog new/reno-1.6.2/ChangeLog
--- old/reno-1.5.0/ChangeLog 2016-02-10 15:53:53.000000000 +0100
+++ new/reno-1.6.2/ChangeLog 2016-04-07 10:37:22.000000000 +0200
@@ -1,6 +1,26 @@
CHANGES
=======
+1.6.2
+-----
+
+* default to collapsing pre-releases in sphinxext
+
+1.6.1
+-----
+
+* handle deleted notes properly
+* refactor argument buildup to make it more reusable
+* improve test coverage
+* always show coverage report for test runs
+
+1.6.0
+-----
+
+* Add deprecations section to usage documentation
+* use less entropy in unit tests
+* collapse pre-release notes into regular releases by default
+
1.5.0
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.5.0/PKG-INFO new/reno-1.6.2/PKG-INFO
--- old/reno-1.5.0/PKG-INFO 2016-02-10 15:53:54.000000000 +0100
+++ new/reno-1.6.2/PKG-INFO 2016-04-07 10:37:23.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: reno
-Version: 1.5.0
+Version: 1.6.2
Summary: RElease NOtes manager
Home-page: http://www.openstack.org/
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.5.0/doc/source/usage.rst new/reno-1.6.2/doc/source/usage.rst
--- old/reno-1.5.0/doc/source/usage.rst 2016-02-10 15:53:35.000000000 +0100
+++ new/reno-1.6.2/doc/source/usage.rst 2016-04-07 10:35:17.000000000 +0200
@@ -64,6 +64,13 @@
A list of upgrade notes in the release. For example, if a database
schema alteration is needed.
+deprecations
+
+ A list of features, APIs, configuration options to be deprecated in the
+ release. Deprecations should not be used for something that is removed in the
+ release, use upgrade section instead. Deprecation should allow time for users
+ to make necessary changes for the removal to happen in a future release.
+
critical
A list of *fixed* critical bugs.
@@ -96,6 +103,8 @@
- List known issues here, or remove this section.
upgrade:
- List upgrade notes here, or remove this section.
+ deprecations:
+ - List deprecation notes here, or remove this section
critical:
- Add critical notes here, or remove this section.
security:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.5.0/reno/main.py new/reno-1.6.2/reno/main.py
--- old/reno-1.5.0/reno/main.py 2016-02-10 15:53:35.000000000 +0100
+++ new/reno-1.6.2/reno/main.py 2016-04-07 10:35:17.000000000 +0200
@@ -19,6 +19,33 @@
from reno import lister
from reno import report
+_query_args = [
+ (('--version',),
+ dict(default=[],
+ action='append',
+ help='the version(s) to include, defaults to all')),
+ (('--branch',),
+ dict(default=None,
+ help='the branch to scan, defaults to the current')),
+ (('--collapse-pre-releases',),
+ dict(action='store_true',
+ default=True,
+ help='combine pre-releases with their final release')),
+ (('--no-collapse-pre-releases',),
+ dict(action='store_false',
+ dest='collapse_pre_releases',
+ help='show pre-releases separately')),
+ (('--earliest-version',),
+ dict(default=None,
+ help='stop when this version is reached in the history')),
+]
+
+
+def _build_query_arg_group(parser):
+ group = parser.add_argument_group('query')
+ for args, kwds in _query_args:
+ group.add_argument(*args, **kwds)
+
def main(argv=sys.argv[1:]):
parser = argparse.ArgumentParser()
@@ -61,32 +88,11 @@
'list',
help='list notes files based on query arguments',
)
+ _build_query_arg_group(do_list)
do_list.add_argument(
'reporoot',
help='root of the git repository',
)
- do_list.add_argument(
- '--version',
- default=[],
- action='append',
- help='the version(s) to include, defaults to all',
- )
- do_list.add_argument(
- '--branch',
- default=None,
- help='the branch to scan, defaults to the current',
- )
- do_list.add_argument(
- '--collapse-pre-releases',
- action='store_true',
- default=False,
- help='combine pre-releases with their final release',
- )
- do_list.add_argument(
- '--earliest-version',
- default=None,
- help='stop when this version is reached in the history',
- )
do_list.set_defaults(func=lister.list_cmd)
do_report = subparsers.add_parser(
@@ -102,28 +108,7 @@
default=None,
help='output filename, defaults to stdout',
)
- do_report.add_argument(
- '--branch',
- default=None,
- help='the branch to scan, defaults to the current',
- )
- do_report.add_argument(
- '--version',
- default=[],
- action='append',
- help='the version(s) to include, defaults to all',
- )
- do_report.add_argument(
- '--collapse-pre-releases',
- action='store_true',
- default=False,
- help='combine pre-releases with their final release',
- )
- do_report.add_argument(
- '--earliest-version',
- default=None,
- help='stop when this version is reached in the history',
- )
+ _build_query_arg_group(do_report)
do_report.set_defaults(func=report.report_cmd)
args = parser.parse_args()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.5.0/reno/scanner.py new/reno-1.6.2/reno/scanner.py
--- old/reno-1.5.0/reno/scanner.py 2016-02-10 15:53:35.000000000 +0100
+++ new/reno-1.6.2/reno/scanner.py 2016-04-07 10:35:17.000000000 +0200
@@ -150,7 +150,7 @@
def get_notes_by_version(reporoot, notesdir, branch=None,
- collapse_pre_releases=False,
+ collapse_pre_releases=True,
earliest_version=None):
"""Return an OrderedDict mapping versions to lists of notes files.
@@ -197,6 +197,9 @@
# renames.
last_name_by_id = {}
+ # Remember uniqueids that have had files deleted.
+ uniqueids_deleted = collections.defaultdict(set)
+
# FIXME(dhellmann): This might need to be more line-oriented for
# longer histories.
log_cmd = [
@@ -256,22 +259,45 @@
for f in filenames:
# Updated as older tags are found, handling edits to release
# notes.
- LOG.debug('setting earliest reference to %s to %s' %
- (f, tags[0]))
uniqueid = _get_unique_id(f)
+ LOG.debug('%s: found file %s',
+ uniqueid, f)
+ LOG.debug('%s: setting earliest reference to %s' %
+ (uniqueid, tags[0]))
earliest_seen[uniqueid] = tags[0]
if uniqueid in last_name_by_id:
# We already have a filename for this id from a
# new commit, so use that one in case the name has
# changed.
- LOG.debug('%s was seen before' % f)
+ LOG.debug('%s: was seen before in %s',
+ uniqueid, last_name_by_id[uniqueid])
continue
- if _file_exists_at_commit(reporoot, f, sha):
- # Remember this filename as the most recent version of
- # the unique id we have seen, in case the name
- # changed from an older commit.
- last_name_by_id[uniqueid] = (f, sha)
- LOG.debug('remembering %s as filename for %s' % (f, uniqueid))
+ elif _file_exists_at_commit(reporoot, f, sha):
+ LOG.debug('%s: looking for %s in deleted files %s',
+ uniqueid, f, uniqueids_deleted[uniqueid])
+ if f in uniqueids_deleted[uniqueid]:
+ # The file exists in the commit, but was deleted
+ # later in the history.
+ LOG.debug('%s: skipping deleted file %s',
+ uniqueid, f)
+ else:
+ # Remember this filename as the most recent version of
+ # the unique id we have seen, in case the name
+ # changed from an older commit.
+ last_name_by_id[uniqueid] = (f, sha)
+ LOG.debug('%s: remembering %s as filename',
+ uniqueid, f)
+ else:
+ # Track files that have been deleted. The rename logic
+ # above checks for repeated references to files that
+ # are deleted later, and the inversion logic below
+ # checks for any remaining values and skips those
+ # entries.
+ LOG.debug('%s: saw a file that no longer exists',
+ uniqueid)
+ uniqueids_deleted[uniqueid].add(f)
+ LOG.debug('%s: deleted files %s',
+ uniqueid, uniqueids_deleted[uniqueid])
# Invert earliest_seen to make a list of notes files for each
# version.
@@ -283,6 +309,9 @@
for uniqueid, version in earliest_seen.items():
try:
base, sha = last_name_by_id[uniqueid]
+ if base in uniqueids_deleted.get(uniqueid, set()):
+ LOG.debug('skipping deleted note %s' % uniqueid)
+ continue
files_and_tags[version].append((base, sha))
except KeyError:
# Unable to find the file again, skip it to avoid breaking
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.5.0/reno/sphinxext.py new/reno-1.6.2/reno/sphinxext.py
--- old/reno-1.5.0/reno/sphinxext.py 2016-02-10 15:53:35.000000000 +0100
+++ new/reno-1.6.2/reno/sphinxext.py 2016-04-07 10:35:18.000000000 +0200
@@ -52,7 +52,9 @@
defaults.RELEASE_NOTES_SUBDIR)
notessubdir = self.options.get('notesdir', defaults.NOTES_SUBDIR)
version_opt = self.options.get('version')
- collapse = self.options.get('collapse-pre-releases')
+ # FIXME(dhellmann): Force this flag True for now and figure
+ # out how Sphinx passes a "false" flag later.
+ collapse = True # 'collapse-pre-releases' in self.options
earliest_version = self.options.get('earliest-version')
notesdir = os.path.join(relnotessubdir, notessubdir)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.5.0/reno/tests/test_create.py new/reno-1.6.2/reno/tests/test_create.py
--- old/reno-1.5.0/reno/tests/test_create.py 2016-02-10 15:53:35.000000000 +0100
+++ new/reno-1.6.2/reno/tests/test_create.py 2016-04-07 10:35:17.000000000 +0200
@@ -15,6 +15,7 @@
from reno import create
from reno.tests import base
+import fixtures
import mock
@@ -29,3 +30,24 @@
'somepath',
'someslug',
)
+
+ @mock.patch('os.path.exists')
+ def test_random_enough(self, exists):
+ exists.return_value = False
+ result = create._pick_note_file_name('somepath', 'someslug')
+ self.assertIn('somepath', result)
+ self.assertIn('someslug', result)
+
+
+class TestCreate(base.TestCase):
+
+ def setUp(self):
+ super(TestCreate, self).setUp()
+ self.tmpdir = self.useFixture(fixtures.TempDir()).path
+
+ def test_create_from_template(self):
+ filename = create._pick_note_file_name(self.tmpdir, 'theslug')
+ create._make_note_file(filename)
+ with open(filename, 'r') as f:
+ body = f.read()
+ self.assertEqual(create._TEMPLATE, body)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.5.0/reno/tests/test_formatter.py new/reno-1.6.2/reno/tests/test_formatter.py
--- old/reno-1.5.0/reno/tests/test_formatter.py 1970-01-01 01:00:00.000000000 +0100
+++ new/reno-1.6.2/reno/tests/test_formatter.py 2016-04-07 10:35:17.000000000 +0200
@@ -0,0 +1,98 @@
+# -*- coding: utf-8 -*-
+
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import textwrap
+
+from reno import formatter
+from reno.tests import base
+
+from oslotest import mockpatch
+
+
+class TestFormatter(base.TestCase):
+
+ scanner_output = {
+ '0.0.0': [('note1', 'shaA')],
+ '1.0.0': [('note2', 'shaB'), ('note3', 'shaC')],
+ }
+
+ versions = ['0.0.0', '1.0.0']
+
+ note_bodies = {
+ 'note1': textwrap.dedent("""
+ prelude: >
+ This is the prelude.
+ """),
+ 'note2': textwrap.dedent("""
+ issues:
+ - This is the first issue.
+ - This is the second issue.
+ """),
+ 'note3': textwrap.dedent("""
+ features:
+ - We added a feature!
+ """)
+ }
+
+ def _get_note_body(self, reporoot, filename, sha):
+ return self.note_bodies.get(filename, '')
+
+ def setUp(self):
+ super(TestFormatter, self).setUp()
+ self.useFixture(
+ mockpatch.Patch('reno.scanner.get_file_at_commit',
+ new=self._get_note_body)
+ )
+
+ def test_with_title(self):
+ result = formatter.format_report(
+ reporoot=None,
+ scanner_output=self.scanner_output,
+ versions_to_include=self.versions,
+ title='This is the title',
+ )
+ self.assertIn('This is the title', result)
+
+ def test_versions(self):
+ result = formatter.format_report(
+ reporoot=None,
+ scanner_output=self.scanner_output,
+ versions_to_include=self.versions,
+ title='This is the title',
+ )
+ self.assertIn('0.0.0\n=====', result)
+ self.assertIn('1.0.0\n=====', result)
+
+ def test_without_title(self):
+ result = formatter.format_report(
+ reporoot=None,
+ scanner_output=self.scanner_output,
+ versions_to_include=self.versions,
+ title=None,
+ )
+ self.assertNotIn('This is the title', result)
+
+ def test_section_order(self):
+ result = formatter.format_report(
+ reporoot=None,
+ scanner_output=self.scanner_output,
+ versions_to_include=self.versions,
+ title=None,
+ )
+ prelude_pos = result.index('This is the prelude.')
+ issues_pos = result.index('This is the first issue.')
+ features_pos = result.index('We added a feature!')
+ expected = [prelude_pos, features_pos, issues_pos]
+ actual = list(sorted([prelude_pos, features_pos, issues_pos]))
+ self.assertEqual(expected, actual)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.5.0/reno/tests/test_scanner.py new/reno-1.6.2/reno/tests/test_scanner.py
--- old/reno-1.5.0/reno/tests/test_scanner.py 2016-02-10 15:53:35.000000000 +0100
+++ new/reno-1.6.2/reno/tests/test_scanner.py 2016-04-07 10:35:17.000000000 +0200
@@ -65,7 +65,7 @@
gnupg_version_re = re.compile('^gpg\s.*\s([\d+])\.([\d+])\.([\d+])')
gnupg_version = utils.check_output(['gpg', '--version'],
cwd=tempdir.path)
- for line in gnupg_version[0].split('\n'):
+ for line in gnupg_version.split('\n'):
gnupg_version = gnupg_version_re.match(line)
if gnupg_version:
gnupg_version = (int(gnupg_version.group(1)),
@@ -98,17 +98,17 @@
# Note that --quick-random (--debug-quick-random in GnuPG 2.x)
# does not have a corresponding preferences file setting and
# must be passed explicitly on the command line instead
- # if gnupg_version[0] == 1:
- # gnupg_random = '--quick-random'
- # elif gnupg_version[0] >= 2:
- # gnupg_random = '--debug-quick-random'
- # else:
- # gnupg_random = ''
- subprocess.check_call(
- ['gpg', '--gen-key', '--batch',
- # gnupg_random,
- config_file],
- cwd=tempdir.path)
+ if gnupg_version[0] == 1:
+ gnupg_random = '--quick-random'
+ elif gnupg_version[0] >= 2:
+ gnupg_random = '--debug-quick-random'
+ else:
+ gnupg_random = ''
+ cmd = ['gpg', '--gen-key', '--batch']
+ if gnupg_random:
+ cmd.append(gnupg_random)
+ cmd.append(config_file)
+ subprocess.check_call(cmd, cwd=tempdir.path)
class Base(base.TestCase):
@@ -482,6 +482,53 @@
},
results,
)
+
+ def test_delete_file(self):
+ self._make_python_package()
+ self._run_git('tag', '-s', '-m', 'first tag', '1.0.0')
+ f1 = self._add_notes_file('slug1')
+ f2 = self._add_notes_file('slug2')
+ self._run_git('rm', f1)
+ self._git_commit('remove note file')
+ self._run_git('tag', '-s', '-m', 'first tag', '2.0.0')
+ raw_results = scanner.get_notes_by_version(
+ self.reporoot,
+ 'releasenotes/notes',
+ )
+ results = {
+ k: [f for (f, n) in v]
+ for (k, v) in raw_results.items()
+ }
+ self.assertEqual(
+ {'2.0.0': [f2],
+ },
+ results,
+ )
+
+ def test_rename_then_delete_file(self):
+ self._make_python_package()
+ self._run_git('tag', '-s', '-m', 'first tag', '1.0.0')
+ f1 = self._add_notes_file('slug1')
+ f2 = f1.replace('slug1', 'slug2')
+ self._run_git('mv', f1, f2)
+ self._git_commit('rename note file')
+ self._run_git('rm', f2)
+ self._git_commit('remove note file')
+ f3 = self._add_notes_file('slug3')
+ self._run_git('tag', '-s', '-m', 'first tag', '2.0.0')
+ raw_results = scanner.get_notes_by_version(
+ self.reporoot,
+ 'releasenotes/notes',
+ )
+ results = {
+ k: [f for (f, n) in v]
+ for (k, v) in raw_results.items()
+ }
+ self.assertEqual(
+ {'2.0.0': [f3],
+ },
+ results,
+ )
class PreReleaseTest(Base):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.5.0/reno/utils.py new/reno-1.6.2/reno/utils.py
--- old/reno-1.5.0/reno/utils.py 2016-02-10 15:53:35.000000000 +0100
+++ new/reno-1.6.2/reno/utils.py 2016-04-07 10:35:17.000000000 +0200
@@ -51,9 +51,11 @@
output, errors = process.communicate()
retcode = process.poll()
if errors:
- LOG.debug('error output from (%s): %s',
- ' '.join(*args),
- errors.rstrip())
+ LOG.debug('ran: %s', ' '.join(*args))
+ LOG.debug('returned: %s', retcode)
+ LOG.debug('error output: %s', errors.rstrip())
+ LOG.debug('regular output: %s', output.rstrip())
if retcode:
+ LOG.debug('raising error')
raise subprocess.CalledProcessError(retcode, args, output=output)
return output.decode('utf-8')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.5.0/reno.egg-info/PKG-INFO new/reno-1.6.2/reno.egg-info/PKG-INFO
--- old/reno-1.5.0/reno.egg-info/PKG-INFO 2016-02-10 15:53:53.000000000 +0100
+++ new/reno-1.6.2/reno.egg-info/PKG-INFO 2016-04-07 10:37:22.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: reno
-Version: 1.5.0
+Version: 1.6.2
Summary: RElease NOtes manager
Home-page: http://www.openstack.org/
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.5.0/reno.egg-info/SOURCES.txt new/reno-1.6.2/reno.egg-info/SOURCES.txt
--- old/reno-1.5.0/reno.egg-info/SOURCES.txt 2016-02-10 15:53:54.000000000 +0100
+++ new/reno-1.6.2/reno.egg-info/SOURCES.txt 2016-04-07 10:37:23.000000000 +0200
@@ -59,5 +59,6 @@
reno/tests/__init__.py
reno/tests/base.py
reno/tests/test_create.py
+reno/tests/test_formatter.py
reno/tests/test_scanner.py
reno/tests/test_utils.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.5.0/reno.egg-info/pbr.json new/reno-1.6.2/reno.egg-info/pbr.json
--- old/reno-1.5.0/reno.egg-info/pbr.json 2016-02-10 15:53:53.000000000 +0100
+++ new/reno-1.6.2/reno.egg-info/pbr.json 2016-04-07 10:37:22.000000000 +0200
@@ -1 +1 @@
-{"git_version": "f4e2d66", "is_release": true}
\ No newline at end of file
+{"git_version": "11a2b7a", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.5.0/setup.cfg new/reno-1.6.2/setup.cfg
--- old/reno-1.5.0/setup.cfg 2016-02-10 15:53:54.000000000 +0100
+++ new/reno-1.6.2/setup.cfg 2016-04-07 10:37:23.000000000 +0200
@@ -54,7 +54,7 @@
output_file = reno/locale/reno.pot
[egg_info]
-tag_svn_revision = 0
-tag_build =
tag_date = 0
+tag_build =
+tag_svn_revision = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/reno-1.5.0/tox.ini new/reno-1.6.2/tox.ini
--- old/reno-1.5.0/tox.ini 2016-02-10 15:53:35.000000000 +0100
+++ new/reno-1.6.2/tox.ini 2016-04-07 10:35:17.000000000 +0200
@@ -11,7 +11,9 @@
deps =
-r{toxinidir}/test-requirements.txt
.[sphinx]
-commands = python setup.py test --slowest --testr-args='{posargs}'
+commands =
+ python setup.py test --slowest --coverage --coverage-package-name=reno --testr-args='{posargs}'
+ coverage report --show-missing
[testenv:pep8]
commands = flake8