Hello community,
here is the log from the commit of package obs-service-tar_scm for
openSUSE:Factory checked in at 2014-10-09 12:52:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/obs-service-tar_scm (Old)
and /work/SRC/openSUSE:Factory/.obs-service-tar_scm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "obs-service-tar_scm"
Changes:
--------
--- /work/SRC/openSUSE:Factory/obs-service-tar_scm/obs-service-tar_scm.changes
2014-10-05 20:34:04.000000000 +0200
+++
/work/SRC/openSUSE:Factory/.obs-service-tar_scm.new/obs-service-tar_scm.changes
2014-10-09 12:52:34.000000000 +0200
@@ -1,0 +2,10 @@
+Wed Oct 08 12:13:42 UTC 2014 - [email protected]
+
+- Update to version 0.5.0.1412769870.6cda976:
+ + change default git versionformat to %ct.%h
+ + fix changes generation when version is blank
+ + lots of refactoring
+ + add info and caveats about data persisting between tests
+ + gittests: give default author test a unique name
+
+-------------------------------------------------------------------
Old:
----
obs-service-tar_scm-0.4.2.1412467141.df3329e.tar.gz
New:
----
obs-service-tar_scm-0.5.0.1412769870.6cda976.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ obs-service-tar_scm.spec ++++++
--- /var/tmp/diff_new_pack.C9gwsO/_old 2014-10-09 12:52:34.000000000 +0200
+++ /var/tmp/diff_new_pack.C9gwsO/_new 2014-10-09 12:52:34.000000000 +0200
@@ -19,7 +19,7 @@
%define service tar_scm
Name: obs-service-%{service}
-Version: 0.4.2.1412467141.df3329e
+Version: 0.5.0.1412769870.6cda976
Release: 0
Summary: An OBS source service: checkout or update a tar ball from
svn/git/hg
License: GPL-2.0+
++++++ _service ++++++
--- /var/tmp/diff_new_pack.C9gwsO/_old 2014-10-09 12:52:34.000000000 +0200
+++ /var/tmp/diff_new_pack.C9gwsO/_new 2014-10-09 12:52:34.000000000 +0200
@@ -4,7 +4,7 @@
<param name="scm">git</param>
<param name="exclude">.git</param>
<param name="version">git-master</param>
- <param name="versionformat">0.4.2.%ct.%h</param>
+ <param name="versionformat">0.5.0.%ct.%h</param>
<param name="revision">master</param>
<param name="changesgenerate">enable</param>
</service>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.C9gwsO/_old 2014-10-09 12:52:34.000000000 +0200
+++ /var/tmp/diff_new_pack.C9gwsO/_new 2014-10-09 12:52:34.000000000 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">git://github.com/openSUSE/obs-service-tar_scm.git</param>
- <param
name="changesrevision">df3329e67fec7cfe40e59a17329079357bad94a0</param>
+ <param
name="changesrevision">6cda976777de4e38ee88efe97353dec92f609614</param>
</service>
</servicedata>
\ No newline at end of file
++++++ debian.dsc ++++++
--- /var/tmp/diff_new_pack.C9gwsO/_old 2014-10-09 12:52:34.000000000 +0200
+++ /var/tmp/diff_new_pack.C9gwsO/_new 2014-10-09 12:52:34.000000000 +0200
@@ -1,6 +1,6 @@
Format: 1.0
Source: obs-service-tar-scm
-Version: 0.4.2
+Version: 0.5.0
Binary: obs-service-tar-scm
Maintainer: Adrian Schroeter <[email protected]>
Architecture: all
++++++ obs-service-tar_scm-0.4.2.1412467141.df3329e.tar.gz ->
obs-service-tar_scm-0.5.0.1412769870.6cda976.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/obs-service-tar_scm-0.4.2.1412467141.df3329e/TESTING.md
new/obs-service-tar_scm-0.5.0.1412769870.6cda976/TESTING.md
--- old/obs-service-tar_scm-0.4.2.1412467141.df3329e/TESTING.md 2014-10-05
02:02:16.000000000 +0200
+++ new/obs-service-tar_scm-0.5.0.1412769870.6cda976/TESTING.md 2014-10-08
14:13:42.000000000 +0200
@@ -32,6 +32,27 @@
`$PATH` it actually invokes `scm-wrapper`, which logs the VCS
invocation before continuing.
+### Persistence between test runs
+
+The test fixtures create working directories for each test
+representing a (fake) check-out of a build service package, and each
+test invokes `tar_scm` on this working directory. The directory
+persists between tests to simulate real world use.
+
+Similarly, a fake `$HOME` directory is created, in which source
+repositories may be cached upon cloning from the (fake) upstream
+repository, and again, this `$HOME` directory is persisted between
+tests in order to simulate real world use.
+
+All these directories can be found under `tests/tmp/`.
+
+Upon a successful test run, these persisted directories are cleaned
+up. However, if the run fails, they are left behind for debugging.
+In this case, you may need to `rm -rf tests/tmp` prior to the next
+test run, otherwise you may get errors like `Invalid revision range`
+when a brand new repository history is constructed which conflicts
+with the previous run.
+
## PEP8 checking
There's also a `pep8` rule for checking
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/obs-service-tar_scm-0.4.2.1412467141.df3329e/debian/changelog
new/obs-service-tar_scm-0.5.0.1412769870.6cda976/debian/changelog
--- old/obs-service-tar_scm-0.4.2.1412467141.df3329e/debian/changelog
2014-10-05 02:02:16.000000000 +0200
+++ new/obs-service-tar_scm-0.5.0.1412769870.6cda976/debian/changelog
2014-10-08 14:13:42.000000000 +0200
@@ -1,3 +1,13 @@
+obs-service-tar-scm (0.5.0) unstable; urgency=low
+
+ * change default git versionformat to %ct.%h
+ * fix changes generation when version is blank
+ * lots of refactoring
+ * add info and caveats about data persisting between tests
+ * gittests: give default author test a unique name
+
+ -- Adam Spiers <[email protected]> Wed, 08 Oct 2014 12:45:56 +0100
+
obs-service-tar-scm (0.4.2) unstable; urgency=medium
* Retrieve tags for a cached git repo
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/obs-service-tar_scm-0.4.2.1412467141.df3329e/tar_scm.py
new/obs-service-tar_scm-0.5.0.1412769870.6cda976/tar_scm.py
--- old/obs-service-tar_scm-0.4.2.1412467141.df3329e/tar_scm.py 2014-10-05
02:02:16.000000000 +0200
+++ new/obs-service-tar_scm-0.5.0.1412769870.6cda976/tar_scm.py 2014-10-08
14:13:42.000000000 +0200
@@ -349,10 +349,21 @@
return version
+def get_version(args, clone_dir):
+ version = args.version
+ if version == '_auto_' or args.versionformat:
+ version = detect_version(args.scm, clone_dir, args.versionformat)
+ if args.versionprefix:
+ version = "%s.%s" % (args.versionprefix, version)
+
+ logging.debug("VERSION(auto): %s", version)
+ return version
+
+
def detect_version_git(repodir, versionformat):
"""Automatic detection of version number for checked-out GIT repository."""
if versionformat is None:
- versionformat = '%ct'
+ versionformat = '%ct.%h'
if re.match('.*@PARENT_TAG@.*', versionformat):
try:
@@ -737,7 +748,7 @@
return config
-if __name__ == '__main__':
+def parse_args():
parser = argparse.ArgumentParser(description='Git Tarballs')
parser.add_argument('-v', '--verbose', action='store_true', default=False,
help='Enable verbose output')
@@ -831,15 +842,11 @@
if os.getenv('DEBUG_TAR_SCM'):
args.verbose = True
- FORMAT = "%(message)s"
- logging.basicConfig(format=FORMAT, stream=sys.stderr, level=logging.INFO)
- if args.verbose:
- logging.getLogger().setLevel(logging.DEBUG)
+ return args
- # force cleaning of our workspace on exit
- atexit.register(cleanup, CLEANUP_DIRS)
- # check for enabled caches (1. environment, 2. user confog, 3. system wide)
+def get_repocachedir():
+ # check for enabled caches (1. environment, 2. user config, 3. system wide)
repocachedir = os.getenv('CACHEDIRECTORY')
if repocachedir is None:
config = get_config_options()
@@ -851,6 +858,22 @@
if repocachedir:
logging.debug("REPOCACHE: %s", repocachedir)
+ return repocachedir
+
+
+def main():
+ args = parse_args()
+
+ FORMAT = "%(message)s"
+ logging.basicConfig(format=FORMAT, stream=sys.stderr, level=logging.INFO)
+ if args.verbose:
+ logging.getLogger().setLevel(logging.DEBUG)
+
+ # force cleaning of our workspace on exit
+ atexit.register(cleanup, CLEANUP_DIRS)
+
+ repocachedir = get_repocachedir()
+
# construct repodir (the parent directory of the checkout)
repodir = None
if repocachedir and os.path.isdir(os.path.join(repocachedir, 'repo')):
@@ -874,13 +897,10 @@
else:
dstname = os.path.basename(clone_dir)
- version = args.version
- if version == '_auto_' or args.versionformat:
- version = detect_version(args.scm, clone_dir, args.versionformat)
- if args.versionprefix:
- version = "%s.%s" % (args.versionprefix, version)
+ version = get_version(args, clone_dir)
+ changesversion = version
if version:
- dstname = dstname + '-' + version
+ dstname += '-' + version
logging.debug("DST: %s", dstname)
@@ -902,11 +922,15 @@
logging.debug("AUTHOR: %s", changesauthor)
+ if not version:
+ args.version = "_auto_"
+ changesversion = get_version(args, clone_dir)
+
for filename in glob.glob('*.changes'):
new_changes_file = os.path.join(args.outdir, filename)
shutil.copy(filename, new_changes_file)
write_changes(new_changes_file, changes['lines'],
- version, changesauthor)
+ changesversion, changesauthor)
write_changes_revision(args.url, args.outdir,
changes['revision'])
@@ -918,3 +942,6 @@
os.rename(repodir, repodir2)
elif not os.path.samefile(repodir, repodir2):
CLEANUP_DIRS.append(repodir)
+
+if __name__ == '__main__':
+ main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/obs-service-tar_scm-0.4.2.1412467141.df3329e/tests/gittests.py
new/obs-service-tar_scm-0.5.0.1412769870.6cda976/tests/gittests.py
--- old/obs-service-tar_scm-0.4.2.1412467141.df3329e/tests/gittests.py
2014-10-05 02:02:16.000000000 +0200
+++ new/obs-service-tar_scm-0.5.0.1412769870.6cda976/tests/gittests.py
2014-10-08 14:13:42.000000000 +0200
@@ -30,7 +30,8 @@
yyyymmddhhmmss_format = '%ci'
def default_version(self):
- return self.timestamps(self.rev(2))
+ return "%s.%s" % (self.timestamps(self.rev(2)),
+ self.abbrev_sha1s(self.rev(2)))
def version(self, rev):
# Hyphens aren't allowed in version number. This substitution
@@ -235,24 +236,60 @@
self._check_servicedata(revision=5, expected_dirents=3)
- new_changes_file = os.path.join(self.outdir, 'pkg.changes')
expected_author = author or '[email protected]'
+ expected_changes_regexp = self._new_change_entry_regexp(
+ expected_author,
+ textwrap.dedent("""\
+ - Update to version 0.6.%s:
+ \+ 3
+ \+ 4
+ \+ 5
+ """) % self.abbrev_sha1s('tag5')
+ )
+ self._check_changes(orig_changes, expected_changes_regexp)
+
+ def test_changesgenerate_new_commit_and_changes_file_no_version(self):
+ self._write_servicedata(2)
+ orig_changes = self._write_changes_file()
+ self.fixtures.create_commits(3)
- expected_changes_regexp = textwrap.dedent("""\
+ tar_scm_args = [
+ '--changesgenerate', 'enable',
+ '--version', '',
+ '--changesauthor', self.fixtures.user_email
+ ]
+ self.tar_scm_std(*tar_scm_args)
+
+ self._check_servicedata(revision=5, expected_dirents=3)
+
+ expected_author = self.fixtures.user_email
+ expected_changes_regexp = self._new_change_entry_regexp(
+ expected_author,
+ textwrap.dedent("""\
+ - Update to version \d{10}.%s:
+ \+ 3
+ \+ 4
+ \+ 5
+ """) % self.abbrev_sha1s('tag5')
+ )
+ self._check_changes(orig_changes, expected_changes_regexp)
+
+ def _new_change_entry_regexp(self, author, changes):
+ return textwrap.dedent("""\
^-------------------------------------------------------------------
\w{3} \w{3} [ \d]\d \d\d:\d\d:\d\d [A-Z]{3} 20\d\d - %s
- - Update to version 0.6.%s:
- \+ 3
- \+ 4
- \+ 5
+ %s
+ """) % (author, changes)
- (.+)""" % (expected_author, self.abbrev_sha1s('tag5')))
+ def _check_changes(self, orig_changes, expected_changes_regexp):
+ new_changes_file = os.path.join(self.outdir, 'pkg.changes')
self.assertTrue(os.path.exists(new_changes_file))
with open(new_changes_file) as f:
new_changes = f.read()
self.assertNotEqual(orig_changes, new_changes)
print new_changes
+ expected_changes_regexp += "(.+)"
self.assertRegexpMatches(new_changes, expected_changes_regexp)
m = re.match(expected_changes_regexp, new_changes, re.DOTALL)
self.assertEqual(m.group(1), orig_changes)
@@ -261,5 +298,5 @@
self._test_changesgenerate_new_commit_and_changes_file(
self.fixtures.user_email)
- def test_changesgenerate_new_commit_and_changes_file(self):
+ def test_changesgenerate_new_commit_and_changes_file_default_author(self):
self._test_changesgenerate_new_commit_and_changes_file()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/obs-service-tar_scm-0.4.2.1412467141.df3329e/tests/test.py
new/obs-service-tar_scm-0.5.0.1412769870.6cda976/tests/test.py
--- old/obs-service-tar_scm-0.4.2.1412467141.df3329e/tests/test.py
2014-10-05 02:02:16.000000000 +0200
+++ new/obs-service-tar_scm-0.5.0.1412769870.6cda976/tests/test.py
2014-10-08 14:13:42.000000000 +0200
@@ -77,4 +77,5 @@
sys.exit(0)
else:
print("Left temporary files in %s" % TestEnvironment.tmp_dir)
+ print("You should remove these prior to the next test run.")
sys.exit(1)
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]