Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package obs-service-tar_scm for
openSUSE:Factory checked in at 2026-04-29 19:17:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/obs-service-tar_scm (Old)
and /work/SRC/openSUSE:Factory/.obs-service-tar_scm.new.30200 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "obs-service-tar_scm"
Wed Apr 29 19:17:33 2026 rev:90 rq:1349710 version:0.12.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/obs-service-tar_scm/obs-service-tar_scm.changes
2026-04-11 22:23:00.428110086 +0200
+++
/work/SRC/openSUSE:Factory/.obs-service-tar_scm.new.30200/obs-service-tar_scm.changes
2026-04-29 19:18:13.074000822 +0200
@@ -1,0 +2,8 @@
+Mon Apr 27 15:02:46 UTC 2026 - Frank Schreiner <[email protected]>
+
+- Update to version 0.12.0:
+ * re-add and fix partial clone filter
+ * refactor auth_url
+ * make sure that parameter "match_tag" is used
+
+-------------------------------------------------------------------
Old:
----
obs-service-tar_scm-0.11.1.tar.gz
New:
----
obs-service-tar_scm-0.12.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ obs-service-tar_scm.spec ++++++
--- /var/tmp/diff_new_pack.UvxQWV/_old 2026-04-29 19:18:13.990038338 +0200
+++ /var/tmp/diff_new_pack.UvxQWV/_new 2026-04-29 19:18:13.998038665 +0200
@@ -123,8 +123,8 @@
%define pkg_name obs-service-tar_scm
Name: %{pkg_name}%{nsuffix}
-%define version_unconverted 0.11.1
-Version: 0.11.1
+%define version_unconverted 0.12.0
+Version: 0.12.0
Release: 0
Summary: An OBS source service: create tar ball from svn/git/hg
License: GPL-2.0-or-later
++++++ PKGBUILD ++++++
--- /var/tmp/diff_new_pack.UvxQWV/_old 2026-04-29 19:18:14.082042106 +0200
+++ /var/tmp/diff_new_pack.UvxQWV/_new 2026-04-29 19:18:14.098042761 +0200
@@ -1,5 +1,5 @@
pkgname=obs-service-tar_scm
-pkgver=0.11.1
+pkgver=0.12.0
pkgrel=0
pkgdesc="Source Service for the OpenSUSE Build Service (OBS)"
arch=('any')
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.UvxQWV/_old 2026-04-29 19:18:14.194046693 +0200
+++ /var/tmp/diff_new_pack.UvxQWV/_new 2026-04-29 19:18:14.206047184 +0200
@@ -12,7 +12,7 @@
</service>
<service name="tar_scm">
<param
name="url">https://github.com/openSUSE/obs-service-tar_scm.git</param>
- <param
name="changesrevision">908faf0fe742eaa86bf513ae2c853454d2aa7a3c</param>
+ <param
name="changesrevision">77c523cce41c1757acd91054208fe8b71c121366</param>
</service>
</servicedata>
(No newline at EOF)
++++++ debian.dsc ++++++
--- /var/tmp/diff_new_pack.UvxQWV/_old 2026-04-29 19:18:14.274049969 +0200
+++ /var/tmp/diff_new_pack.UvxQWV/_new 2026-04-29 19:18:14.282050297 +0200
@@ -1,6 +1,6 @@
Format: 1.0
Source: obs-service-tar-scm
-Version: 0.11.1
+Version: 0.12.0
Provides: obs-service-obs_scm, obs-service-tar, obs-service-gbp
Binary: obs-service-tar_scm
Maintainer: Adrian Schroeter <[email protected]>
++++++ obs-service-tar_scm-0.11.1.tar.gz -> obs-service-tar_scm-0.12.0.tar.gz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/obs-service-tar_scm-0.11.1/TarSCM/scm/base.py
new/obs-service-tar_scm-0.12.0/TarSCM/scm/base.py
--- old/obs-service-tar_scm-0.11.1/TarSCM/scm/base.py 2026-04-02
09:06:08.000000000 +0200
+++ new/obs-service-tar_scm-0.12.0/TarSCM/scm/base.py 2026-04-27
16:18:53.000000000 +0200
@@ -54,6 +54,8 @@
self.args = args
self.task = task
self.url = args.url
+ self.org_url = None
+ self.credentials_re = None
self.in_osc = bool(os.getenv('OSC_VERSION'))
@@ -99,35 +101,22 @@
self._revert_gpg_settings()
def auth_url(self):
- if self.scm not in ('bzr', 'git', 'hg'):
+ auth_patterns = {
+ 'bzr' : r'^((?:ftp|bzr|https?)://)(.*)',
+ 'git' : r'^((?:ftps?|https?)://)(.*)',
+ 'hg' : r'^(https?://)(.*)',
+ }
+
+ if self.org_url:
+ return
+
+ if not auth_patterns.get(self.scm, None):
return
- auth_patterns = {}
- auth_patterns['bzr'] = {}
- auth_patterns['bzr']['proto'] = r'^(ftp|bzr|https?)://.*'
- auth_patterns['bzr']['already'] = r'^(ftp|bzr|https?)://.*:.*@.*'
- auth_patterns['bzr']['sub'] = r'^((ftp|bzr|https?)://)(.*)'
- auth_patterns['bzr']['format'] = r'\g<1>{user}:{pwd}@\g<3>'
- auth_patterns['git'] = {}
- auth_patterns['git']['proto'] = r'^(ftps?|https?)://.*'
- auth_patterns['git']['already'] = r'^(ftps?|https?)://.*:.*@.*'
- auth_patterns['git']['sub'] = r'^((ftps?|https?)://)(.*)'
- auth_patterns['git']['format'] = r'\g<1>{user}:{pwd}@\g<3>'
- auth_patterns['hg'] = {}
- auth_patterns['hg']['proto'] = r'^https?://.*'
- auth_patterns['hg']['already'] = r'^https?://.*:.*@.*'
- auth_patterns['hg']['sub'] = r'^(https?://)(.*)'
- auth_patterns['hg']['format'] = r'\g<1>{user}:{pwd}@\g<2>'
if self.user and self.password:
- pattern_proto = re.compile(auth_patterns[self.scm]['proto'])
- pattern = re.compile(auth_patterns[self.scm]['already'])
- if pattern_proto.match(self.url) and not pattern.match(self.url):
- logging.debug('[auth_url] settings credentials from keyring')
- self.url = re.sub(auth_patterns[self.scm]['sub'],
- auth_patterns[self.scm]['format'].format(
- user=self.user,
- pwd=self.password),
- self.url)
+ self.org_url = self.url
+ logging.debug('[auth_url] settings credentials from keyring')
+ self.url = re.sub(auth_patterns[self.scm],
f"\\1{self.user}:{self.password}@\\2", self.url)
def check_scm(self):
'''check version of scm to proof, it is installed and executable'''
@@ -203,7 +192,8 @@
for filename in glob.glob(old_changes_glob):
shutil.copy2(filename, os.getcwd())
- chgs = self.changes.read_changes_revision(self.url, os.getcwd(),
+ url = (self.org_url or self.url)
+ chgs = self.changes.read_changes_revision(url, os.getcwd(),
self.args.outdir)
logging.debug("CHANGES: %s", repr(chgs))
@@ -415,6 +405,16 @@
def check_url(self):
return True
+ def run_and_hide(self, command, wdir, cleanup_dirs=[]):
+ try:
+ self.helpers.safe_run(
+ command, cwd=wdir, interactive=sys.stdout.isatty())
+ except SystemExit as exc:
+ for cdir in cleanup_dirs:
+ os.removedirs(cdir)
+ exc = re.sub(self.url, self.org_url, str(exc))
+ raise SystemExit(exc)
+
def _prepare_gpg_settings(self):
logging.debug("preparing gpg settings")
self._backup_gnupghome = os.getenv('GNUPGHOME')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/obs-service-tar_scm-0.11.1/TarSCM/scm/bzr.py
new/obs-service-tar_scm-0.12.0/TarSCM/scm/bzr.py
--- old/obs-service-tar_scm-0.11.1/TarSCM/scm/bzr.py 2026-04-02
09:06:08.000000000 +0200
+++ new/obs-service-tar_scm-0.12.0/TarSCM/scm/bzr.py 2026-04-27
16:18:53.000000000 +0200
@@ -24,7 +24,7 @@
if not self.is_sslverify_enabled():
command.insert(2, '-Ossl.cert_reqs=None')
wdir = os.path.abspath(os.path.join(self.clone_dir, os.pardir))
- self.helpers.safe_run(command, wdir, interactive=sys.stdout.isatty())
+ self.run_and_hide(command, wdir)
def update_cache(self):
"""Update sources via bzr."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/obs-service-tar_scm-0.11.1/TarSCM/scm/git.py
new/obs-service-tar_scm-0.12.0/TarSCM/scm/git.py
--- old/obs-service-tar_scm-0.11.1/TarSCM/scm/git.py 2026-04-02
09:06:08.000000000 +0200
+++ new/obs-service-tar_scm-0.12.0/TarSCM/scm/git.py 2026-04-27
16:18:53.000000000 +0200
@@ -146,13 +146,10 @@
command += ['--config', 'http.sslverify=false']
if self.repocachedir and not self.partial_clone:
command.insert(command.index('clone') + 1, '--mirror')
+
wdir = os.path.abspath(os.path.join(self.repodir, os.pardir))
- try:
- self.helpers.safe_run(
- command, cwd=wdir, interactive=sys.stdout.isatty())
- except SystemExit as exc:
- os.removedirs(os.path.join(wdir, self.clone_dir))
- raise exc
+ self.run_and_hide(command, wdir, [os.path.join(wdir, self.clone_dir)])
+
if self.partial_clone:
config_command = self._get_scm_cmd() + ['config', '--local',
'extensions.partialClone',
@@ -192,10 +189,7 @@
if self.partial_clone:
command.insert(-2, '--filter=tree:0')
# fetch reference from url and create locally
- self.helpers.safe_run(
- command,
- cwd=self.clone_dir, interactive=sys.stdout.isatty()
- )
+ self.run_and_hide(command, self.clone_dir)
def fetch_submodules(self):
"""Recursively initialize git submodules."""
@@ -255,11 +249,7 @@
if self.partial_clone:
command.append('--filter=tree:0')
- self.helpers.safe_run(
- command,
- cwd=self.clone_dir,
- interactive=sys.stdout.isatty()
- )
+ self.run_and_hide(command, self.clone_dir)
except SystemExit as exc:
logging.error("Corrupt clone_dir '%s' detected.", self.clone_dir)
@@ -283,7 +273,7 @@
versionformat = '%ct.%h'
if not self._parent_tag:
- self._parent_tag = self._detect_parent_tag(args)
+ self._parent_tag = self._detect_parent_tag()
if re.match('.*@PARENT_TAG@.*', versionformat):
versionformat = self._detect_version_parent_tag(
@@ -307,14 +297,12 @@
version = self.helpers.safe_run(log_cmd, self.clone_dir)[1]
return version
- def _detect_parent_tag(self, args=None):
+ def _detect_parent_tag(self):
parent_tag = ''
cmd = self._get_scm_cmd() + ['describe', '--tags', '--abbrev=0']
- try:
- if args and args['match_tag']:
- cmd.append("--match=%s" % args['match_tag'])
- except KeyError:
- pass
+ if self.args.match_tag:
+ cmd.append("--match=%s" % self.args.match_tag)
+
rcode, output = self.helpers.run_cmd(cmd, self.clone_dir)
if rcode == 0:
@@ -441,8 +429,9 @@
command.append(org_clone_dir)
command.append(self.clone_dir)
wdir = os.path.abspath(os.path.join(self.clone_dir, os.pardir))
- self.helpers.safe_run(
- command, cwd=wdir, interactive=sys.stdout.isatty())
+
+ self.run_and_hide(command, wdir)
+
if self.partial_clone:
config_command = self._get_scm_cmd() + ['config', '--local',
'extensions.partialClone',
@@ -469,10 +458,10 @@
if self.revision and not self._ref_exists(self.revision):
refspec = self.revision + ":" + self.revision
- if self.partial_clone:
- command.insert(-3, '--filter=tree:0')
cmd = self._get_scm_cmd() + ['fetch', 'origin',
refspec]
+ if self.partial_clone:
+ cmd.insert(-3, '--filter=tree:0')
self.helpers.safe_run(
cmd, cwd=self.clone_dir, interactive=sys.stdout.isatty())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/obs-service-tar_scm-0.11.1/TarSCM/scm/hg.py
new/obs-service-tar_scm-0.12.0/TarSCM/scm/hg.py
--- old/obs-service-tar_scm-0.11.1/TarSCM/scm/hg.py 2026-04-02
09:06:08.000000000 +0200
+++ new/obs-service-tar_scm-0.12.0/TarSCM/scm/hg.py 2026-04-27
16:18:53.000000000 +0200
@@ -63,8 +63,7 @@
if not self.is_sslverify_enabled():
command += ['--insecure']
wdir = os.path.abspath(os.path.join(self.clone_dir, os.pardir))
- self.helpers.safe_run(command, wdir,
- interactive=sys.stdout.isatty())
+ self.run_and_hide(command, wdir)
def update_cache(self):
"""Update sources via hg."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/obs-service-tar_scm-0.11.1/tests/gittests.py
new/obs-service-tar_scm-0.12.0/tests/gittests.py
--- old/obs-service-tar_scm-0.11.1/tests/gittests.py 2026-04-02
09:06:08.000000000 +0200
+++ new/obs-service-tar_scm-0.12.0/tests/gittests.py 2026-04-27
16:18:53.000000000 +0200
@@ -314,7 +314,7 @@
f_tasks = FakeTasks()
git = Git(f_args, f_tasks)
- p_tag = git._detect_parent_tag(f_args)
+ p_tag = git._detect_parent_tag()
self.assertEqual(p_tag, '')
def test_changesgenerate_unicode(self):