Hello community,
here is the log from the commit of package obs-service-set_version for
openSUSE:Factory checked in at 2017-03-12 20:04:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/obs-service-set_version (Old)
and /work/SRC/openSUSE:Factory/.obs-service-set_version.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "obs-service-set_version"
Sun Mar 12 20:04:34 2017 rev:25 rq:477941 version:0.5.5
Changes:
--------
---
/work/SRC/openSUSE:Factory/obs-service-set_version/obs-service-set_version.changes
2017-01-17 14:35:34.484149142 +0100
+++
/work/SRC/openSUSE:Factory/.obs-service-set_version.new/obs-service-set_version.changes
2017-03-12 20:04:35.292762983 +0100
@@ -1,0 +2,7 @@
+Thu Mar 02 09:23:45 UTC 2017 - [email protected]
+
+- Update to version 0.5.5:
+ * read version from .obsinfo file if available
+ * Add support for Collax build recipes
+
+-------------------------------------------------------------------
Old:
----
obs-service-set_version-0.5.4.tar.gz
New:
----
obs-service-set_version-0.5.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ obs-service-set_version.spec ++++++
--- /var/tmp/diff_new_pack.yayhx2/_old 2017-03-12 20:04:36.124645269 +0100
+++ /var/tmp/diff_new_pack.yayhx2/_new 2017-03-12 20:04:36.128644704 +0100
@@ -19,7 +19,7 @@
%define service set_version
Name: obs-service-%{service}
-Version: 0.5.4
+Version: 0.5.5
Release: 0
Summary: An OBS source service: Update spec file version
License: GPL-2.0+
++++++ PKGBUILD ++++++
--- /var/tmp/diff_new_pack.yayhx2/_old 2017-03-12 20:04:36.168639044 +0100
+++ /var/tmp/diff_new_pack.yayhx2/_new 2017-03-12 20:04:36.168639044 +0100
@@ -1,5 +1,5 @@
pkgname=obs-service-set_version
-pkgver=0.5.4
+pkgver=0.5.5
pkgrel=0
pkgdesc="An OBS source service: Update spec file version"
arch=('i686' 'x86_64')
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.yayhx2/_old 2017-03-12 20:04:36.204633951 +0100
+++ /var/tmp/diff_new_pack.yayhx2/_new 2017-03-12 20:04:36.204633951 +0100
@@ -1,5 +1,5 @@
<servicedata>
<service name="tar_scm">
<param
name="url">[email protected]:openSUSE/obs-service-set_version.git</param>
- <param
name="changesrevision">a9f6aef3babe79ba47cf1d032ca0a5f04803f3e5</param></service>
+ <param
name="changesrevision">d2e983f302f6c5396cc84a53413d648305cba35d</param></service>
</servicedata>
\ No newline at end of file
++++++ debian.dsc ++++++
--- /var/tmp/diff_new_pack.yayhx2/_old 2017-03-12 20:04:36.224631121 +0100
+++ /var/tmp/diff_new_pack.yayhx2/_new 2017-03-12 20:04:36.224631121 +0100
@@ -1,6 +1,6 @@
Format: 1.0
Source: obs-service-set_version
-Version: 0.5.4
+Version: 0.5.5
Binary: obs-service-set_version
Provides: obs-service-set_version
Maintainer: Adrian Schroeter <[email protected]>
++++++ obs-service-set_version-0.5.4.tar.gz ->
obs-service-set_version-0.5.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/obs-service-set_version-0.5.4/set_version
new/obs-service-set_version-0.5.5/set_version
--- old/obs-service-set_version-0.5.4/set_version 2017-01-13
14:04:50.000000000 +0100
+++ new/obs-service-set_version-0.5.5/set_version 2017-03-02
09:46:00.000000000 +0100
@@ -35,7 +35,8 @@
outdir = None
-suffixes = ('obscpio', 'tar', 'tar.gz', 'tgz', 'tar.bz2', 'tbz2', 'tar.xz',
'zip')
+suffixes = ('obscpio', 'tar', 'tar.gz', 'tgz', 'tar.bz2', 'tbz2', 'tar.xz',
+ 'zip')
suffixes_re = "|".join(map(lambda x: re.escape(x), suffixes))
@@ -50,9 +51,12 @@
class VersionDetector(object):
@staticmethod
def _autodetect(files, basename):
- version = VersionDetector._get_version_via_archive_dirname(
+ version = VersionDetector._get_version_via_obsinfo(
files, basename)
if not version:
+ version = VersionDetector._get_version_via_archive_dirname(
+ files, basename)
+ if not version:
version = VersionDetector._get_version_via_filename(
files, basename)
if not version:
@@ -102,6 +106,18 @@
return None
@staticmethod
+ def _get_version_via_obsinfo(files, basename):
+ join_suffix = basename + ".obsinfo"
+ for filename in filter(lambda x: x.endswith(join_suffix), files):
+ if os.path.exists(filename):
+ with open(filename, "r") as fp:
+ for line in fp:
+ if line.startswith("version: "):
+ return line[9:]
+ # Nothing found
+ return None
+
+ @staticmethod
def _get_version_via_debian_changelog(filename):
# from http://anonscm.debian.org/cgit/pkg-python-debian/\
# python-debian.git/tree/lib/debian/changelog.py
@@ -196,7 +212,7 @@
with open(filename, 'r+') as f:
contents = f.read()
f.seek(0)
- if filename.endswith("PKGBUILD"):
+ if filename.endswith("PKGBUILD") or filename.endswith("build.collax"):
contents_new, subs = re.subn(
r"^{tag}=.*".format(tag=tag),
r"{tag}={string}".format(tag=tag, string=string), contents,
@@ -302,6 +318,7 @@
version = VersionDetector._autodetect(files_local, args["basename"])
if not version:
+ print("unable to detect the version")
sys.exit(-1)
# if no files explicitly specified process whole directory
@@ -338,6 +355,13 @@
shutil.copyfile(f, filename)
_replace_debian_changelog_version(filename, version + "-0")
+ # handle build.collax recipes
+ for f in filter(lambda x: x.endswith(("build.collax")), files):
+ filename = outdir + "/" + f
+ shutil.copyfile(f, filename)
+ _replace_tag(filename, "version", version)
+ _replace_tag(filename, "build", "0")
+
# handle arch linux PKGBUILD files
# TODO: Handle the md5sums generation!
for f in filter(lambda x: x.endswith(("PKGBUILD")), files):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/obs-service-set_version-0.5.4/tests/test_rpmspec.py
new/obs-service-set_version-0.5.5/tests/test_rpmspec.py
--- old/obs-service-set_version-0.5.4/tests/test_rpmspec.py 2017-01-13
14:04:50.000000000 +0100
+++ new/obs-service-set_version-0.5.5/tests/test_rpmspec.py 2017-03-02
09:46:00.000000000 +0100
@@ -26,6 +26,19 @@
class SetVersionSpecfile(SetVersionBaseTest):
"""Test set_version service for .spec files"""
+ def _write_obsinfo(self, filename, version):
+ # debian changelogs can't be created with empty versions
+ if not version.strip():
+ version = "0~0"
+ obsinfo_file = open(filename, "w")
+ obsinfo_file.write("name: my_base_name\n")
+ obsinfo_file.write("version: %s\n" % version)
+ obsinfo_file.write("mtime: 1463080107\n")
+ obsinfo_file.write("commit: "
+ "01fcec0959b42a163a7b0a943933488a217f2c9a\n")
+ obsinfo_file.close()
+ return os.path.join(self._tmpdir, filename)
+
def _write_specfile(self, spec_name, spec_tags, custom=[]):
"""write a given filename with the given rpm tags and custom
strings (i.e. '%define foo bar')"""
@@ -84,6 +97,19 @@
self._run_set_version()
self._check_file_assert_contains(spec_path, expected_version)
self._check_file_assert_contains(spec_path, "Name: foo")
+ self._check_file_assert_contains(spec_path, "Group: AnyGroup")
+
+ @file_data("data_test_from_tarball_with_single_file.json")
+ def test_from_obsinfo(self, data):
+ tarball_name, tarball_dirs, old_version, expected_version = data
+ self._write_obsinfo("test.obsinfo", expected_version)
+ spec_path = self._write_specfile("test.spec",
+ {"Name": "foo",
+ "Version": old_version,
+ "Group": "AnyGroup"})
+ self._run_set_version()
+ self._check_file_assert_contains(spec_path, expected_version)
+ self._check_file_assert_contains(spec_path, "Name: foo")
self._check_file_assert_contains(spec_path, "Group: AnyGroup")
@file_data("data_test_from_tarball_with_basename_with_multiple_files.json")