This is an Open Build Service source service. It downloads a tarball and parses its git ChangeLog file for information about recent changes which then go to the package's .changes file.
The Version
field will be set to %(tarball_version)s+git.%(timestamp)s.%(commit_sha)s
. Where tarball_version
is the version as read from the parent directory inside the downloaded tarball - everything after the last dash (-
) in the directory's name. timestamp
is the current seconds from the UNIX epoch when the source service was run (if there were new changes). commit_sha
is the latest commit sha hash from the ChangeLog file.
The git_tarballs
service will also change the specfile's Source:
to the filename
argument of the service and the %setup -q
line to match the parent folder name in the tarball.
On the first run, git_tarballs
will just set the spec file's Version
field to the latest git commit. The .changes file will only be updated with commit message information when newer commits (compared to the one now set in Version
) are found.
Requires argparse which is part of python2.7, but available as a third-party dependency in python2.6.
The tests require python-mock. To run them, just use nosetests
or python -m unittest discover
(on python2.7).
TODO
- ignore Merge commits
- use current user's email address in .changes file
- stop parsing when we reach the last known commit
- tests