Wed, 09 Mar 2016 17:01:42 +0100 [migration/3.10] fix AttributeError
Julien Cristau <julien.cristau@logilab.fr> [Wed, 09 Mar 2016 17:01:42 +0100] rev 11178
[migration/3.10] fix AttributeError 'Connection' object has no attribute 'HOOKS_DENY_ALL'
Mon, 07 Mar 2016 17:53:20 +0100 [server/sources] Fix authenticate on pre-3.10 database
Julien Cristau <julien.cristau@logilab.fr> [Mon, 07 Mar 2016 17:53:20 +0100] rev 11177
[server/sources] Fix authenticate on pre-3.10 database When migrating from a pre-3.10 database, the CWSource entity type and cw_source relation type are not known, but authenticate should still work to be able to add them.
Fri, 29 Jan 2016 17:11:17 +0100 [test] Add a test ensuring new cube built from skeleton is flake8-compliant
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 29 Jan 2016 17:11:17 +0100] rev 11176
[test] Add a test ensuring new cube built from skeleton is flake8-compliant And make skeleton files actually flake8-compliant henceforth.
Mon, 25 Jan 2016 08:28:16 +0100 [skeleton] Ship a tox.ini file upon new cube
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 25 Jan 2016 08:28:16 +0100] rev 11175
[skeleton] Ship a tox.ini file upon new cube
Thu, 10 Mar 2016 13:47:20 +0100 [web] fix headers on 304 responses (closes #11466875)
Julien Cristau <julien.cristau@logilab.fr> [Thu, 10 Mar 2016 13:47:20 +0100] rev 11174
[web] fix headers on 304 responses (closes #11466875) The response MUST include the following header fields: [...] - ETag and/or Content-Location, if the header would have been sent in a 200 response to the same request https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5 Unfortunately we weren't copying headers from what would have been the 200 response, but from the request.
Wed, 09 Mar 2016 18:01:44 +0100 [web/httpcache] GMTOFFSET no longer exists
Julien Cristau <julien.cristau@logilab.fr> [Wed, 09 Mar 2016 18:01:44 +0100] rev 11173
[web/httpcache] GMTOFFSET no longer exists
Thu, 10 Mar 2016 13:47:20 +0100 [web] fix headers on 304 responses (closes #11466875)
Julien Cristau <julien.cristau@logilab.fr> [Thu, 10 Mar 2016 13:47:20 +0100] rev 11172
[web] fix headers on 304 responses (closes #11466875) The response MUST include the following header fields: [...] - ETag and/or Content-Location, if the header would have been sent in a 200 response to the same request https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5 Unfortunately we weren't copying headers from what would have been the 200 response, but from the request.
Mon, 29 Feb 2016 12:32:52 +0100 [rset] fix infinite recursion introduced in c1eb5a676c80
Julien Cristau <julien.cristau@logilab.fr> [Mon, 29 Feb 2016 12:32:52 +0100] rev 11171
[rset] fix infinite recursion introduced in c1eb5a676c80 The mechanism to avoid loops in c1eb5a676c80 "[rset] Always complete attribute/relation caches in ResultSet.get_entity" breaks down: we would loop forever if two entities that were already in the cache were linked by a relation with ? or 1 cardinality in both directions. To avoid that, keep a set of already-considered columns. Related to #9942503.
Wed, 17 Feb 2016 10:02:03 +0100 pep8 unittest_application and unittest_formfields
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 17 Feb 2016 10:02:03 +0100] rev 11170
pep8 unittest_application and unittest_formfields
Tue, 12 Jan 2016 14:31:14 +0100 [rset] Always complete attribute/relation caches in ResultSet.get_entity
Alexandre Richardson <alexandre.richardson@logilab.fr> [Tue, 12 Jan 2016 14:31:14 +0100] rev 11169
[rset] Always complete attribute/relation caches in ResultSet.get_entity RQL queries are often designed to fill up the ORM's caches when fetching entities out of the result set. Until now, if an entry already existed in the entity cache, ResultSet.get_entity would return it unchanged, not using the new ResultSet's contents to update the attribute cache, breaking expectations (if the attributes are needed, they'd then be fetched later one at a time, one entity at a time), resulting in loads of DB accesses. So we change ResultSet.get_entity so that: * if the entity is already cached and has been instantiated from the same rset, it is returned as-is (to avoid loops) * if the entity is not yet cached, it is instantiated * if the entity is cached via another rset, its attribute/relation caches are completed Closes #9942503
Tue, 12 Jan 2016 17:36:28 +0100 [rset] refactoring of _build_entity method
Alexandre Richardson <alexandre.richardson@logilab.fr> [Tue, 12 Jan 2016 17:36:28 +0100] rev 11168
[rset] refactoring of _build_entity method define a method for entity instantiation and storage in cache (related to #9942503)
Thu, 25 Feb 2016 09:28:21 +0100 [entity] comparing two entities returns NotImplemented
Julien Cristau <julien.cristau@logilab.fr> [Thu, 25 Feb 2016 09:28:21 +0100] rev 11167
[entity] comparing two entities returns NotImplemented Fixes a test when using some versions of unittest2, where assertItemsEqual tries a sort and expects TypeError, which it doesn't get if we directly raise NotImplementedError. The NotImplemented value is treated specially by the interpreter: https://docs.python.org/3.4/library/constants.html#NotImplemented
Thu, 18 Feb 2016 09:24:43 +0100 [test] replace one use of lgc.testlib.unittest_main with unittest.main
Julien Cristau <julien.cristau@logilab.fr> [Thu, 18 Feb 2016 09:24:43 +0100] rev 11166
[test] replace one use of lgc.testlib.unittest_main with unittest.main
Thu, 18 Feb 2016 09:23:18 +0100 [test] stop using TestCase.set_description
Julien Cristau <julien.cristau@logilab.fr> [Thu, 18 Feb 2016 09:23:18 +0100] rev 11165
[test] stop using TestCase.set_description It's a lgc-ism.
Thu, 18 Feb 2016 09:20:57 +0100 [test] convert a lgc-style generative test into unittest2-style
Julien Cristau <julien.cristau@logilab.fr> [Thu, 18 Feb 2016 09:20:57 +0100] rev 11164
[test] convert a lgc-style generative test into unittest2-style
Mon, 08 Feb 2016 16:10:22 +0100 [web/application] fix query log handling on python3
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 16:10:22 +0100] rev 11163
[web/application] fix query log handling on python3 Writing bytes to a file opened in text mode doesn't work.
Mon, 08 Feb 2016 16:32:36 +0100 [devtools/test] duplicate CubicWebServerTC tests for CubicWebWsgiTC
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 16:32:36 +0100] rev 11162
[devtools/test] duplicate CubicWebServerTC tests for CubicWebWsgiTC
Mon, 08 Feb 2016 16:32:07 +0100 [devtools/test] fix bytes vs text in test_base_url
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 16:32:07 +0100] rev 11161
[devtools/test] fix bytes vs text in test_base_url Needed for python3 with the next changeset
Wed, 24 Feb 2016 17:34:56 +0100 [devtools] skip CubicWebServerTC on python3
Julien Cristau <julien.cristau@logilab.fr> [Wed, 24 Feb 2016 17:34:56 +0100] rev 11160
[devtools] skip CubicWebServerTC on python3 People should migrate to wsgi if they're going to use CubicWeb on python3.
Mon, 08 Feb 2016 16:10:51 +0100 [web/test] switch unittest_web from twisted to wsgi
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 16:10:51 +0100] rev 11159
[web/test] switch unittest_web from twisted to wsgi And make it pass on python3 while at it.
Wed, 24 Feb 2016 17:31:56 +0100 [devtools] add CubicWebWsgiTC
Julien Cristau <julien.cristau@logilab.fr> [Wed, 24 Feb 2016 17:31:56 +0100] rev 11158
[devtools] add CubicWebWsgiTC Similar to CubicWebServerTC, except using wsgiref instead of twisted as an http server.
Mon, 08 Feb 2016 15:37:52 +0100 [web/test] return the hash of uploaded files in FileUploadTC instead of their contents
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 15:37:52 +0100] rev 11157
[web/test] return the hash of uploaded files in FileUploadTC instead of their contents json must be unicode, which doesn't go well with arbitrary file contents. Compute the file hash instead, as we know the hexdigest is (ascii) text.
Mon, 08 Feb 2016 15:29:06 +0100 [web/test] open() as a context manager
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 15:29:06 +0100] rev 11156
[web/test] open() as a context manager
Mon, 08 Feb 2016 15:28:14 +0100 [web/test] json.loads expects text, not bytes
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 15:28:14 +0100] rev 11155
[web/test] json.loads expects text, not bytes
Mon, 08 Feb 2016 16:39:51 +0100 [wsgi] fix handling of multiple posted files
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 16:39:51 +0100] rev 11154
[wsgi] fix handling of multiple posted files We were only keeping the last received file.
Fri, 05 Feb 2016 18:23:00 +0100 [web/test] Reword doc string for fileupload ajaxfunc
Julien Cristau <julien.cristau@logilab.fr> [Fri, 05 Feb 2016 18:23:00 +0100] rev 11153
[web/test] Reword doc string for fileupload ajaxfunc
Tue, 03 Mar 2015 12:26:47 +0100 [skeleton] do not import the __pkginfo__.py module to make cubes installable via setuptools
David Douard <david.douard@logilab.fr> [Tue, 03 Mar 2015 12:26:47 +0100] rev 11152
[skeleton] do not import the __pkginfo__.py module to make cubes installable via setuptools When using a simple "import" statement, running 'python setup.py install' for a cube fails in a fresh virtualenv due to the fact the install of the dependencies (here cubicweb iteself) is done by the python process doing the cube's installation, so the __pkginfo__ module from the cube is already loaded (thus used) when installing cubicweb... So we apply the third technique from: https://packaging.python.org/en/latest/single_source_version.html
Tue, 23 Feb 2016 12:18:47 +0100 merge changes from 3.22.2
Julien Cristau <julien.cristau@logilab.fr> [Tue, 23 Feb 2016 12:18:47 +0100] rev 11151
merge changes from 3.22.2
Tue, 23 Feb 2016 12:09:01 +0100 Added tag 3.22.2, debian/3.22.2-1, centos/3.22.2-1 for changeset 1b93ff37755b
Julien Cristau <julien.cristau@logilab.fr> [Tue, 23 Feb 2016 12:09:01 +0100] rev 11150
Added tag 3.22.2, debian/3.22.2-1, centos/3.22.2-1 for changeset 1b93ff37755b
Tue, 23 Feb 2016 11:45:54 +0100 [pkg] 3.22.2 3.22.2 centos/3.22.2-1 debian/3.22.2-1
Julien Cristau <julien.cristau@logilab.fr> [Tue, 23 Feb 2016 11:45:54 +0100] rev 11149
[pkg] 3.22.2
(0) -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 tip