Fri, 26 Oct 2018 17:00:05 +0200 Make test database cache lookup concurrent
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 26 Oct 2018 17:00:05 +0200] rev 12356
Make test database cache lookup concurrent has_cache() is used to dertermine if the template database already exists or not. When running tests accross multiple process, has_cache() wasn't aware of databases created by other processes because it used a cache to generate the cache... Since the discovering discover_cached_db() time is quite reasonable (it's just about listing file in a directory), let re-generate the cache on cache miss.
Mon, 29 Oct 2018 10:04:31 +0100 Fix flake8 issues since release 3.6.0
Philippe Pepiot <philippe.pepiot@logilab.fr> [Mon, 29 Oct 2018 10:04:31 +0100] rev 12355
Fix flake8 issues since release 3.6.0 Flake8 had a new release which raise new issues, namely: W504: line break after binary operator F841: local variable 'ex' is assigned to but never used W605: invalid escape sequence F821: undefined name 'buffer' (noqa seems the only way to avoid this false positive) Also pin flake8>=3.6 in our tests and make explicit that we use python3 to run flake8 tests.
Mon, 29 Oct 2018 10:09:19 +0100 Stabilize flake8 tests on 3.26 branch 3.26
Philippe Pepiot <philippe.pepiot@logilab.fr> [Mon, 29 Oct 2018 10:09:19 +0100] rev 12354
Stabilize flake8 tests on 3.26 branch Use basepython=python2 or flake8 installed with python3 will raise "[F821] undefined name 'buffer'" Pin flake8 < 3.6 which has new checks that doesn't pass on our current code base.
Tue, 09 Oct 2018 16:24:12 +0200 Fix typo in RDFS URI
Laurent Wouters <lwouters@cenotelie.fr> [Tue, 09 Oct 2018 16:24:12 +0200] rev 12353
Fix typo in RDFS URI
Tue, 02 Oct 2018 16:04:52 +0200 [doc] Do not rely on lgc's sphinx_ext 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 02 Oct 2018 16:04:52 +0200] rev 12352
[doc] Do not rely on lgc's sphinx_ext This module is broken (getting an ImportError) and I don't want to fix it. The only usage we make of it is for the "autodocstring" directive, and I don't know what it does. Based on the context, replacing autodocstring with either automodule or autoclass and removing sphinx_ext from required Sphinx extensions.
Thu, 06 Sep 2018 13:44:06 +0200 Added tag 3.26.7 for changeset ee4ad63c91e5 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 06 Sep 2018 13:44:06 +0200] rev 12351
Added tag 3.26.7 for changeset ee4ad63c91e5
Thu, 06 Sep 2018 13:43:56 +0200 [pkg] Version 3.26.7 3.26 3.26.7
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 06 Sep 2018 13:43:56 +0200] rev 12350
[pkg] Version 3.26.7
Fri, 24 Aug 2018 17:19:02 +0200 Fix possible double import of cubes 3.26
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 24 Aug 2018 17:19:02 +0200] rev 12349
Fix possible double import of cubes For a new-style cube, if we import "cubicweb_<name>" and then import "cubes.<name>", the cube will be imported twice. cubes.<name> and then cubicweb_name is ok though... When using pyramid, we try to find which cube define a "includeme" by importing them with the name "cubes.<name>", so we (possibly ?) double import all new-style cube. This case may also occur in tests with PyramidCWTest. Touching the import loader to fix this scares me, so let's fix this by testing "cubicweb_<name>" *before* "cubes.name" (for old style cubes, importing cubicweb_<name> raise ImportError).
Wed, 22 Aug 2018 16:04:39 +0200 [autoform] Make RelationField.fromcardinality a class method factory 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 22 Aug 2018 16:04:39 +0200] rev 12348
[autoform] Make RelationField.fromcardinality a class method factory Instead of having the "RelationField" class hard-coded in this factory method (thus preventing any subclass to properly use it), we make that method a classmethod and instantiate the actual class instead of the base one.
Wed, 22 Aug 2018 16:02:30 +0200 [autoform] Use fieldclass from kwargs in guess_field for non-final relations 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 22 Aug 2018 16:02:30 +0200] rev 12347
[autoform] Use fieldclass from kwargs in guess_field for non-final relations This follows up on af969080e7e6 in which a "fieldclass" kwarg has been added in EntityFieldsForm.field_by_name() before calling guess_field(). In this changeset, this value was only used for final relation but the way non-final relation actually also changed since we also use guess_field from these relation (previously, the field class specified through uicfg was instantiated directly in EntityFieldsForm.field_by_name()). So in the non-final case in guess_field() we simply try to retrieve "fieldclass" from kwargs and fall back to RelationField.
Thu, 16 Aug 2018 12:31:44 +0200 [py37] `async` is now a reserved keyword
Samuel Trégouët <samuel.tregouet@logilab.fr> [Thu, 16 Aug 2018 12:31:44 +0200] rev 12346
[py37] `async` is now a reserved keyword
Wed, 18 Jul 2018 13:53:00 +0200 Merge 3.26
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 18 Jul 2018 13:53:00 +0200] rev 12345
Merge 3.26
Wed, 18 Jul 2018 13:48:13 +0200 Added tag 3.26.6, debian/3.26.6-1 for changeset 8362503a9248 3.26
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 18 Jul 2018 13:48:13 +0200] rev 12344
Added tag 3.26.6, debian/3.26.6-1 for changeset 8362503a9248
Wed, 18 Jul 2018 13:47:45 +0200 [pkg] version 3.26.6 3.26 3.26.6 debian/3.26.6-1
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 18 Jul 2018 13:47:45 +0200] rev 12343
[pkg] version 3.26.6
Wed, 18 Jul 2018 11:27:05 +0200 [py3] Replace unicode keyword which is unknown in python3 3.26
Olivier Giorgis <olivier.giorgis@logilab.fr> [Wed, 18 Jul 2018 11:27:05 +0200] rev 12342
[py3] Replace unicode keyword which is unknown in python3
Wed, 11 Jul 2018 09:18:57 +0200 [skeleton] Use "py3" as tox environment instead of "py34"
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 11 Jul 2018 09:18:57 +0200] rev 12341
[skeleton] Use "py3" as tox environment instead of "py34"
Thu, 28 Jun 2018 18:19:08 +0200 Added tag 3.26.5 for changeset 76d7b0aa94d2 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 28 Jun 2018 18:19:08 +0200] rev 12340
Added tag 3.26.5 for changeset 76d7b0aa94d2
Thu, 28 Jun 2018 18:18:33 +0200 [pkg] Version 3.26.5 3.26 3.26.5
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 28 Jun 2018 18:18:33 +0200] rev 12339
[pkg] Version 3.26.5
Thu, 28 Jun 2018 16:49:57 +0200 Merge with 3.26
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Jun 2018 16:49:57 +0200] rev 12338
Merge with 3.26
Thu, 28 Jun 2018 12:19:16 +0200 [py3] Use "utf-8" as input encoding for docutils in rest extension 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 28 Jun 2018 12:19:16 +0200] rev 12337
[py3] Use "utf-8" as input encoding for docutils in rest extension Docutils says that "unicode" is an unknown encoding on Python3. Not sure where "unicode" as an encoding comes (it's there since showtime) but "utf-8" seems more appropriate. From now on, rendering of CubicWeb's rst directive (e.g. ..winclude) works on Python 3. Accordingly, we extend wdoc's test to demonstrate this. For this we need to install docutils in tox's web environment.
Thu, 28 Jun 2018 11:19:14 +0200 [py3] Avoid setting attribute on Element instance in wdoc view 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 28 Jun 2018 11:19:14 +0200] rev 12336
[py3] Avoid setting attribute on Element instance in wdoc view This change is needed to make "wdoc" view work on Python 3. Indeed, before this patch, we used to set a "parent" attribute on Element instances, which is not permitted since Python 3.3 as xml.etree.ElementTree uses the C implementation by default. To get rid of this "parent" attribute, we rework the XML nodes processing logic to return and retrieve a node along with its parent in several place of the code. Namely, build_toc_index() now accepts the "parent" value for "node" and inserts it in the "index" dict (thus avoid `node.parent = <value>`). Respectively, every query to the "index" dict is updated to also retrieve the "parent" (thus avoiding `<value> = node.parent`). Later in InlineHelpView class, the "index" dict is bound to "tocindex" attribute so we adjust how it is queried in respective methods. Tests cubicweb/web/test/unittest_views_wdoc.py now pass on Python 3.
Thu, 28 Jun 2018 10:07:20 +0200 [test] Add a trivial test for "wdoc" view 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 28 Jun 2018 10:07:20 +0200] rev 12335
[test] Add a trivial test for "wdoc" view We just make sure it gets rendered without errors (which wasn't the case before the previous patch). It does not work on Python 3; this will be fixed in next changeset.
Thu, 28 Jun 2018 10:06:26 +0200 [py3] Open rst file in text mode in wdoc view 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 28 Jun 2018 10:06:26 +0200] rev 12334
[py3] Open rst file in text mode in wdoc view Otherwise, UStringIO complains that it receives bytes.
Thu, 28 Jun 2018 11:11:10 +0200 [ext/rest] Drop "handle_io_errors" argument to docutils' FileInput 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 28 Jun 2018 11:11:10 +0200] rev 12333
[ext/rest] Drop "handle_io_errors" argument to docutils' FileInput This argument is deprecated and ignore in docutils since version 0.10. Besides, its default value is None which is the same as we passed.
Thu, 28 Jun 2018 10:38:04 +0200 [wdoc] Remove fallback about xml.etree module 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 28 Jun 2018 10:38:04 +0200] rev 12332
[wdoc] Remove fallback about xml.etree module Module xml.etree exists since python 2.5.
Thu, 28 Jun 2018 10:15:33 +0200 [wdoc] Avoid usage of deprecated xlm elementree getchildren() method 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 28 Jun 2018 10:15:33 +0200] rev 12331
[wdoc] Avoid usage of deprecated xlm elementree getchildren() method Use list(node) as suggested by the deprecation warning.
Thu, 28 Jun 2018 09:43:23 +0200 [style] Make cubicweb/web/views/wdoc.py flake8-clean 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 28 Jun 2018 09:43:23 +0200] rev 12330
[style] Make cubicweb/web/views/wdoc.py flake8-clean
Thu, 28 Jun 2018 09:38:38 +0200 [py3] Use six.text_type instead of unicode in wdoc views 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 28 Jun 2018 09:38:38 +0200] rev 12329
[py3] Use six.text_type instead of unicode in wdoc views
Thu, 28 Jun 2018 10:17:15 +0200 [views/startup] drop a duplicate rql query in manage view
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Jun 2018 10:17:15 +0200] rev 12328
[views/startup] drop a duplicate rql query in manage view Counting entities in `nb` is already done above this code, regression introduced by a85db6fa
Tue, 19 Jun 2018 09:13:40 +0200 Merge with 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 19 Jun 2018 09:13:40 +0200] rev 12327
Merge with 3.26
Mon, 18 Jun 2018 10:04:08 +0200 Added tag 3.26.4, debian/3.26.4-1 for changeset e1c1af68db86 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 18 Jun 2018 10:04:08 +0200] rev 12326
Added tag 3.26.4, debian/3.26.4-1 for changeset e1c1af68db86
Mon, 18 Jun 2018 08:58:47 +0200 [pkg] Version 3.26.4 3.26 3.26.4 debian/3.26.4-1
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 18 Jun 2018 08:58:47 +0200] rev 12325
[pkg] Version 3.26.4
Fri, 15 Jun 2018 17:45:26 +0200 [py3] ensure AjaxController return bytes 3.26
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 15 Jun 2018 17:45:26 +0200] rev 12324
[py3] ensure AjaxController return bytes publish() must return bytes, when the @ajaxfunc decorated method return None, this raised: TypeError: You cannot set Response.body to a text object (use Response.text)
Wed, 13 Jun 2018 11:09:17 +0200 [py3] Let InstanceCommand.run_arg() always return an int 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 13 Jun 2018 11:09:17 +0200] rev 12323
[py3] Let InstanceCommand.run_arg() always return an int The caller of this method (which is method "run_args") does `max(status, self.run_arg(appid))` and run_arg might return None if the underlying <cmdname>_instance method returns None. On python3 max(1, None) breaks with "TypeError: unorderable types: int() > NoneType()". So we enforce run_arg() method to return an integer even if the underlying method returns None. This fixes call of "cubicweb-ctl i18ninstance" with Python3.
Mon, 18 Jun 2018 08:47:03 +0200 [test] Use cubicweb-file < 2.0.0 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 18 Jun 2018 08:47:03 +0200] rev 12322
[test] Use cubicweb-file < 2.0.0 From version 2.0.0, cubicweb-file moved to new-style layout (Python package) but we still expect it to be an old-style cube in CubicWeb's tests (WebconfigTC in web/test/unittest_webconfig.py).
Wed, 06 Jun 2018 11:56:15 +0200 [py3] Decode subprocess stdout in toolsutils.show_diffs() 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 06 Jun 2018 11:56:15 +0200] rev 12321
[py3] Decode subprocess stdout in toolsutils.show_diffs() On Python 3, subprocess' pipes are bytes stream so we must decode them before printing. Without this change, diff of configuration files (e.g. all-in-one.conf as displayed upon instance upgrade) will rendered as a single line on Python 3.
Thu, 03 May 2018 16:47:51 +0200 [python3] make sure staticcontroller returns a bytes instance 3.26
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Thu, 03 May 2018 16:47:51 +0200] rev 12320
[python3] make sure staticcontroller returns a bytes instance The ``publish()`` method of controller is supposed to return a bytes intsance. Returning a text_type instance will crash later on in the Pyramid response handler when assigning content to ``response.body`` (at least in Python3):: >>> from pyramid.response import Response >>> r = Response() >>> r.body = '' Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/adim/.virtualenvs/…/response.py", line 562, in _body__set raise TypeError(msg) TypeError: You cannot set Response.body to a text object (use Response.text)
Thu, 03 May 2018 14:05:26 +0200 [python3] use inspect.getfullargspec instead of inspect.getargspec 3.26
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Thu, 03 May 2018 14:05:26 +0200] rev 12319
[python3] use inspect.getfullargspec instead of inspect.getargspec The latter is now deprecated
Fri, 15 Jun 2018 17:45:26 +0200 [py3] ensure AjaxController return bytes
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 15 Jun 2018 17:45:26 +0200] rev 12318
[py3] ensure AjaxController return bytes publish() must return bytes, when the @ajaxfunc decorated method return None, this raised: TypeError: You cannot set Response.body to a text object (use Response.text)
Wed, 13 Jun 2018 11:09:17 +0200 [py3] Let InstanceCommand.run_arg() always return an int
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 13 Jun 2018 11:09:17 +0200] rev 12317
[py3] Let InstanceCommand.run_arg() always return an int The caller of this method (which is method "run_args") does `max(status, self.run_arg(appid))` and run_arg might return None if the underlying <cmdname>_instance method returns None. On python3 max(1, None) breaks with "TypeError: unorderable types: int() > NoneType()". So we enforce run_arg() method to return an integer even if the underlying method returns None. This fixes call of "cubicweb-ctl i18ninstance" with Python3.
Fri, 15 Jun 2018 17:42:50 +0200 Depend on cubicweb-file >= 2.0.0
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 15 Jun 2018 17:42:50 +0200] rev 12316
Depend on cubicweb-file >= 2.0.0 I applied V1 of the patch, but V2 contained this extra hunk...
Mon, 11 Jun 2018 16:50:38 +0200 [test] Update webconfig's tests accounting for cubicweb-file being now a package
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 11 Jun 2018 16:50:38 +0200] rev 12315
[test] Update webconfig's tests accounting for cubicweb-file being now a package WebconfigTC.test_locate_all_files and WebconfigTC.test_locate_resource assumed that cubicweb-file was installed in <share>/cubes/file whereas, from the latest release, it is now a standard Python package thus installed in site-packages as cubicweb_file. We simply update base directory of these two tests.
Wed, 06 Jun 2018 18:54:24 +0200 [widgets.js] fix obvious bug detected by sonar
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Wed, 06 Jun 2018 18:54:24 +0200] rev 12314
[widgets.js] fix obvious bug detected by sonar
Wed, 06 Jun 2018 18:37:16 +0200 [views/uicfg] obvious bug detected by sonar
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Wed, 06 Jun 2018 18:37:16 +0200] rev 12313
[views/uicfg] obvious bug detected by sonar
Wed, 06 Jun 2018 14:20:16 +0200 [style] Make toolsutils.py flake8-clean
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 06 Jun 2018 14:20:16 +0200] rev 12312
[style] Make toolsutils.py flake8-clean Run `autopep8 --max-line-length 100 -i cubicweb/toolsutils.py` and fixed unused imports.
Wed, 06 Jun 2018 11:56:15 +0200 [py3] Decode subprocess stdout in toolsutils.show_diffs()
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 06 Jun 2018 11:56:15 +0200] rev 12311
[py3] Decode subprocess stdout in toolsutils.show_diffs() On Python 3, subprocess' pipes are bytes stream so we must decode them before printing. Without this change, diff of configuration files (e.g. all-in-one.conf as displayed upon instance upgrade) will rendered as a single line on Python 3.
Thu, 03 May 2018 16:47:51 +0200 [python3] make sure staticcontroller returns a bytes instance
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Thu, 03 May 2018 16:47:51 +0200] rev 12310
[python3] make sure staticcontroller returns a bytes instance The ``publish()`` method of controller is supposed to return a bytes intsance. Returning a text_type instance will crash later on in the Pyramid response handler when assigning content to ``response.body`` (at least in Python3):: >>> from pyramid.response import Response >>> r = Response() >>> r.body = '' Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/adim/.virtualenvs/…/response.py", line 562, in _body__set raise TypeError(msg) TypeError: You cannot set Response.body to a text object (use Response.text)
Thu, 03 May 2018 14:05:26 +0200 [python3] use inspect.getfullargspec instead of inspect.getargspec
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Thu, 03 May 2018 14:05:26 +0200] rev 12309
[python3] use inspect.getfullargspec instead of inspect.getargspec The latter is now deprecated
(0) -10000 -3000 -1000 -300 -100 -48 +48 +100 +300 tip