# HG changeset patch # User Aurelien Campeas # Date 1382610972 -7200 # Node ID cd45a1cc9b38a820778dfcaa02220a79ba644099 # Parent ff61b10e7415c62139462b95a36b845779fd9d39# Parent a898c34200ad78ac88bed446c5dc053ce041e3e4 [merge] incorporate cw 3.17.10 fixes diff -r ff61b10e7415 -r cd45a1cc9b38 .hgtags --- a/.hgtags Tue Oct 22 11:59:39 2013 +0200 +++ b/.hgtags Thu Oct 24 12:36:12 2013 +0200 @@ -313,3 +313,6 @@ 909eb8b584c437b3d2580beff1325c3d5b5dcfb5 cubicweb-debian-version-3.17.8-1 5668d210e49c910180ff27712b6ae9ce8286e06c cubicweb-version-3.17.9 5668d210e49c910180ff27712b6ae9ce8286e06c cubicweb-debian-version-3.17.9-1 +fe0e1863a13772836f40f743cc6fe4865f288ed3 cubicweb-centos-version-3.17.10-1 +fe0e1863a13772836f40f743cc6fe4865f288ed3 cubicweb-version-3.17.10 +fe0e1863a13772836f40f743cc6fe4865f288ed3 cubicweb-debian-version-3.17.10-1 diff -r ff61b10e7415 -r cd45a1cc9b38 __pkginfo__.py --- a/__pkginfo__.py Tue Oct 22 11:59:39 2013 +0200 +++ b/__pkginfo__.py Thu Oct 24 12:36:12 2013 +0200 @@ -22,7 +22,7 @@ modname = distname = "cubicweb" -numversion = (3, 17, 9) +numversion = (3, 17, 10) version = '.'.join(str(num) for num in numversion) description = "a repository of entities / relations for knowledge management" diff -r ff61b10e7415 -r cd45a1cc9b38 cubicweb.spec --- a/cubicweb.spec Tue Oct 22 11:59:39 2013 +0200 +++ b/cubicweb.spec Thu Oct 24 12:36:12 2013 +0200 @@ -7,7 +7,7 @@ %endif Name: cubicweb -Version: 3.17.8 +Version: 3.17.10 Release: logilab.1%{?dist} Summary: CubicWeb is a semantic web application framework Source0: http://download.logilab.org/pub/cubicweb/cubicweb-%{version}.tar.gz diff -r ff61b10e7415 -r cd45a1cc9b38 dbapi.py --- a/dbapi.py Tue Oct 22 11:59:39 2013 +0200 +++ b/dbapi.py Thu Oct 24 12:36:12 2013 +0200 @@ -223,7 +223,7 @@ puri = urlparse(database) method = puri.scheme.lower() if method == 'inmemory': - config = cwconfig.instance_configuration(puri.path) + config = cwconfig.instance_configuration(puri.netloc) else: config = cwconfig.CubicWebNoAppConfiguration() repo = get_repository(database, config=config) diff -r ff61b10e7415 -r cd45a1cc9b38 debian/changelog --- a/debian/changelog Tue Oct 22 11:59:39 2013 +0200 +++ b/debian/changelog Thu Oct 24 12:36:12 2013 +0200 @@ -1,3 +1,9 @@ +cubicweb (3.17.10-1) unstable; urgency=low + + * new upstream release + + -- Julien Cristau Wed, 23 Oct 2013 17:23:45 +0200 + cubicweb (3.17.9-1) unstable; urgency=low * new upstream release diff -r ff61b10e7415 -r cd45a1cc9b38 server/sources/native.py --- a/server/sources/native.py Tue Oct 22 11:59:39 2013 +0200 +++ b/server/sources/native.py Thu Oct 24 12:36:12 2013 +0200 @@ -757,8 +757,10 @@ if ex.__class__.__name__ == 'IntegrityError': # need string comparison because of various backends for arg in ex.args: - # postgres and sqlserver - mo = re.search('"unique_cw_[^ ]+"', arg) + if 'SQL Server' in arg: + mo = re.search("'unique_cw_[^ ]+'", arg) + else: # postgres + mo = re.search('"unique_cw_[^ ]+"', arg) if mo is not None: index_name = mo.group(0)[1:-1] # eat the surrounding " pair elements = index_name.split('_cw_')[1:] diff -r ff61b10e7415 -r cd45a1cc9b38 sobjects/notification.py --- a/sobjects/notification.py Tue Oct 22 11:59:39 2013 +0200 +++ b/sobjects/notification.py Thu Oct 24 12:36:12 2013 +0200 @@ -128,26 +128,34 @@ # since the same view (eg self) may be called multiple time and we # need a fresh stream at each iteration, reset it explicitly self.w = None - # XXX call render before subject to set .row/.col attributes on the - # view try: - content = self.render(row=0, col=0, **kwargs) - subject = self.subject() - except SkipEmail: - continue - except Exception as ex: - # shouldn't make the whole transaction fail because of rendering - # error (unauthorized or such) XXX check it doesn't actually - # occurs due to rollback on such error - self.exception(str(ex)) - continue - msg = format_mail(self.user_data, [emailaddr], content, subject, - config=self._cw.vreg.config, msgid=msgid, references=refs) - yield [emailaddr], msg - if isinstance(something, Entity): - self._cw.commit() - self._cw.close() - self._cw = req + # XXX call render before subject to set .row/.col attributes on the + # view + try: + content = self.render(row=0, col=0, **kwargs) + subject = self.subject() + except SkipEmail: + continue + except Exception as ex: + # shouldn't make the whole transaction fail because of rendering + # error (unauthorized or such) XXX check it doesn't actually + # occurs due to rollback on such error + self.exception(str(ex)) + continue + msg = format_mail(self.user_data, [emailaddr], content, subject, + config=self._cw.vreg.config, msgid=msgid, references=refs) + yield [emailaddr], msg + except: + if isinstance(something, Entity): + self._cw.rollback() + raise + else: + if isinstance(something, Entity): + self._cw.commit() + finally: + if isinstance(something, Entity): + self._cw.close() + self._cw = req # restore language req.set_language(origlang) diff -r ff61b10e7415 -r cd45a1cc9b38 web/webctl.py --- a/web/webctl.py Tue Oct 22 11:59:39 2013 +0200 +++ b/web/webctl.py Thu Oct 24 12:36:12 2013 +0200 @@ -87,10 +87,10 @@ resources.update(osp.join(rel_dirpath, f) for f in filenames) # locate resources and copy them to destination for resource in resources: - dirname = osp.dirname(resource) - dest_resource = osp.join(dest, dirname) - if not osp.isdir(dest_resource): - os.makedirs(dest_resource) + dest_resource = osp.join(dest, resource) + dirname = osp.dirname(dest_resource) + if not osp.isdir(dirname): + os.makedirs(dirname) resource_dir, resource_path = config.locate_resource(resource) copy(osp.join(resource_dir, resource_path), dest_resource) # handle md5 version subdirectory