add dulwich for reno

Reno currently uses shell commands to access git history. Newer versions
of git change the output of git log in a way that eliminates information
reno needs to track file renames. Dulwich is a python library for
accessing git repo information. We plan to rewrite the scanner in reno
using dulwich to avoid issues with porcelain changes in the git command
line in the future.

We also reviewd gitpython, which uses the git CLI and is likely to have
the same issue, and pygit2, which uses libgit2 and is harder to pip
install. Dulwich has C extensions, but can be installed via pip without
external libraries from system packages.

Dulwich is released under the Apache 2.0 and GPLv2 licenses. We will
use the Apache license.

Dulwich supports Python 2.7 and 3.5.

Dulwich appears relatively actively maintained, with
updates from just under 2 weeks ago in the git repository
(https://github.com/jelmer/dulwich) and a release in October of this year.

Dulwich will not be part of the runtime dependencies of OpenStack
services, since it should only be used within reno. I believe that means
if we need to pin it, we can, but for now the global-requirements.txt
update does not include an upper bound.

Change-Id: Ib79d6ee6cc38752b3692ebcadbcbc34c9cae35a6
Related-Bug: #1633168
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This commit is contained in:
Doug Hellmann 2016-12-01 10:11:27 -05:00
parent 8272b18f7c
commit 70b66766d8
2 changed files with 2 additions and 0 deletions

View File

@ -39,6 +39,7 @@ dnspython>=1.14.0;python_version=='2.7' # http://www.dnspython.org/LICENSE
dnspython3>=1.12.0,!=1.13.0,!=1.14.0;python_version>='3.0' # http://www.dnspython.org/LICENSE
dogpile.cache>=0.6.2 # BSD
dogtag-pki>=10.3.5.1 # LGPLv3+
dulwich>=0.15.0 # Apache-2.0
elasticsearch>=2.0.0,<=3.0.0 # Apache-2.0
enum34;python_version=='2.7' or python_version=='2.6' or python_version=='3.3' # BSD
# NOTE: New versions of eventlet should not be accepted lightly

View File

@ -119,6 +119,7 @@ docker-py===1.7.2
docutils===0.12
dogpile.cache===0.6.2
dogtag-pki===10.3.5.1
dulwich===0.15.0
elasticsearch===2.4.0
enum34===1.1.6
eventlet===0.19.0