Sat, 08 Nov 2014 23:07:20 +0100 Don't rollback if exception is HTTPSuccessful or HTTPRedirection
Christophe de Vienne <christophe@unlish.com> [Sat, 08 Nov 2014 23:07:20 +0100] rev 11524
Don't rollback if exception is HTTPSuccessful or HTTPRedirection In the request finishing, the 'cleanup' callback set by _cw_cnx automatically commit the transaction except is an exception is set on the request. Problem is, redirections and successul http return code can raise exceptions. This patch detects such exceptions and avoid rolling back the transaction. Closes #4566482
Thu, 06 Nov 2014 22:26:16 +0100 Set version to 0.1.2
Christophe de Vienne <christophe@unlish.com> [Thu, 06 Nov 2014 22:26:16 +0100] rev 11523
Set version to 0.1.2
Thu, 06 Nov 2014 22:08:57 +0100 Provides a full wsgi cubicweb application builder
Christophe de Vienne <christophe@unlish.com> [Thu, 06 Nov 2014 22:08:57 +0100] rev 11522
Provides a full wsgi cubicweb application builder
Sun, 02 Nov 2014 23:36:22 +0100 Added tag pyramid_cubicweb-version-0.1.1, pyramid_cubicweb-debian-0.1.1-1 for changeset 9f3b9e610c3d
Christophe de Vienne <christophe@unlish.com> [Sun, 02 Nov 2014 23:36:22 +0100] rev 11521
Added tag pyramid_cubicweb-version-0.1.1, pyramid_cubicweb-debian-0.1.1-1 for changeset 9f3b9e610c3d
Sun, 02 Nov 2014 23:31:34 +0100 Set version 0.1.1
Christophe de Vienne <christophe@unlish.com> [Sun, 02 Nov 2014 23:31:34 +0100] rev 11520
Set version 0.1.1
Sun, 02 Nov 2014 22:54:24 +0100 [auth] Make last_login_time updated.
Christophe de Vienne <christophe@unlish.com> [Sun, 02 Nov 2014 22:54:24 +0100] rev 11519
[auth] Make last_login_time updated. The update is done when the user logs in, then every time the authentication is reissued. Closes #4549891
Thu, 23 Oct 2014 16:29:44 +0200 Added tag pyramid_cubicweb-version-0.1.0, pyramid_cubicweb-debian-version-0.1.0-1 for changeset 3d60138100d6
Christophe de Vienne <christophe@unlish.com> [Thu, 23 Oct 2014 16:29:44 +0200] rev 11518
Added tag pyramid_cubicweb-version-0.1.0, pyramid_cubicweb-debian-version-0.1.0-1 for changeset 3d60138100d6
Thu, 23 Oct 2014 16:15:58 +0200 Add a description to the debian package
Christophe de Vienne <christophe@unlish.com> [Thu, 23 Oct 2014 16:15:58 +0200] rev 11517
Add a description to the debian package
Thu, 23 Oct 2014 15:41:43 +0200 Set version to 0.1.0
Christophe de Vienne <christophe@unlish.com> [Thu, 23 Oct 2014 15:41:43 +0200] rev 11516
Set version to 0.1.0
Mon, 06 Oct 2014 10:32:38 +0200 Initial debian packaging
Julien Cristau <julien.cristau@logilab.fr> [Mon, 06 Oct 2014 10:32:38 +0200] rev 11515
Initial debian packaging missing at least a long description and wsgicors dependency.
Wed, 22 Oct 2014 16:15:54 +0200 Move PyramidCWTest to pyramid_cubicweb.tests
Christophe de Vienne <christophe@unlish.com> [Wed, 22 Oct 2014 16:15:54 +0200] rev 11514
Move PyramidCWTest to pyramid_cubicweb.tests
Mon, 22 Sep 2014 12:15:31 +0200 Optimise repo_connect by skipping authenticate_user
Christophe de Vienne <christophe@unlish.com> [Mon, 22 Sep 2014 12:15:31 +0200] rev 11513
Optimise repo_connect by skipping authenticate_user The authentication being handled by pyramid itself, going through the authentication stack to recreate the temporary session at each request is very costly. On my desktop, for a mostly static front page, the total time for delivering the page drops from 100ms to 47ms.
Mon, 22 Sep 2014 09:40:43 +0200 Use lightweight sessions
Christophe de Vienne <christophe@unlish.com> [Mon, 22 Sep 2014 09:40:43 +0200] rev 11512
Use lightweight sessions Provides a lightweight version of repo.connect() that does not keep track of opened sessions. The speed gain on a mostly static front page is about 5% Warning ! This means that, for now, the "session_open" and "session_close" hooks are NOT called anymore.
Fri, 19 Sep 2014 19:17:50 +0200 Use 'wsgicors' for CORS handling.
Christophe de Vienne <christophe@unlish.com> [Fri, 19 Sep 2014 19:17:50 +0200] rev 11511
Use 'wsgicors' for CORS handling. The CW CORS handling (in web/cors.py) is only able to work on cubicweb requests. When a request is not handled by bwcompat, we need a proper solution. The `wsgicors` library provides what we need as a wsgi middleware.
Thu, 18 Sep 2014 17:18:09 +0200 Add requirements
Christophe de Vienne <christophe@unlish.com> [Thu, 18 Sep 2014 17:18:09 +0200] rev 11510
Add requirements
Thu, 18 Sep 2014 16:51:55 +0200 Handle '__setauthcookie'
Christophe de Vienne <christophe@unlish.com> [Thu, 18 Sep 2014 16:51:55 +0200] rev 11509
Handle '__setauthcookie' '__setauthcookie' is a form parameter added by the 'rememberme' cube. If present and equals to '1', the cookie max_age will be set to 7 days instead of being a session cookie. To make sure the auth cookie is renewed, the reissue_time is set to 1h.
Thu, 18 Sep 2014 15:07:02 +0200 Fix POST handling.
Christophe de Vienne <christophe@unlish.com> [Thu, 18 Sep 2014 15:07:02 +0200] rev 11508
Fix POST handling. The issues where revealed by the unittests, which are ported from the cubicweb wsgi tests.
Thu, 18 Sep 2014 11:43:45 +0200 Use AuthTktAuthenticationPolicy
Christophe de Vienne <christophe@unlish.com> [Thu, 18 Sep 2014 11:43:45 +0200] rev 11507
Use AuthTktAuthenticationPolicy
Fri, 19 Sep 2014 14:26:55 +0200 DB-saved session data
Christophe de Vienne <christophe@unlish.com> [Fri, 19 Sep 2014 14:26:55 +0200] rev 11506
DB-saved session data Related to #4291173
Tue, 02 Sep 2014 20:50:33 +0200 Handle properly the '/https/*' urls
Christophe de Vienne <christophe@unlish.com> [Tue, 02 Sep 2014 20:50:33 +0200] rev 11505
Handle properly the '/https/*' urls CW uses a url prefix to detect https behing a reverse-proxy. A more proper way to do that is documented here in the waitress documentation (waitress is the default pyramid wsgi server): https://waitress.readthedocs.org/en/latest/#using-behind-a-reverse-proxy A later version should implement this, or use waitress in the 'pyramid' command. Related to #4291181
Tue, 02 Sep 2014 20:49:57 +0200 Correctly pass the multiple parameters to the cubicweb request
Christophe de Vienne <christophe@unlish.com> [Tue, 02 Sep 2014 20:49:57 +0200] rev 11504
Correctly pass the multiple parameters to the cubicweb request When naively converted to a dict, the webob MultiDict will not set the multiple parameters (a same name with several values) in a way CW can understand. MultiDict.mixed() however, does exactly what CW needs: list values for keys with multiple values, and single value for the others. Related to #4291181
Thu, 28 Aug 2014 15:42:51 +0200 Add a wsgi application factory suitable for wsgi servers.
Christophe de Vienne <christophe@unlish.com> [Thu, 28 Aug 2014 15:42:51 +0200] rev 11503
Add a wsgi application factory suitable for wsgi servers. This factory can generate a wsgi application for a cubicweb instance. It reads the instance name from the CW_INSTANCE environment variable, and activates the debugmode if CW_DEBUG is defined in environment. It is usable by uwsgi as the 'module' parameter : CW_INSTANCE=test uwsgi --plugins python,http --http 0.0.0.0:8080 --module pyramid_cubicweb:wsgi_application()
Wed, 27 Aug 2014 19:26:44 +0200 If any cube has a 'includeme' attribute, call config.include on it
Christophe de Vienne <christophe@unlish.com> [Wed, 27 Aug 2014 19:26:44 +0200] rev 11502
If any cube has a 'includeme' attribute, call config.include on it Related to #4291181
Thu, 21 Aug 2014 21:55:58 +0200 Add a make_cubicweb_application function
Christophe de Vienne <christophe@unlish.com> [Thu, 21 Aug 2014 21:55:58 +0200] rev 11501
Add a make_cubicweb_application function This function will be used by the 'pyramid' cubicweb-ctl command. Related to #4291173
Thu, 21 Aug 2014 22:26:42 +0200 Fix session closing for cubicweb 3.19
Christophe de Vienne <christophe@unlish.com> [Thu, 21 Aug 2014 22:26:42 +0200] rev 11500
Fix session closing for cubicweb 3.19 Related to #4291173
Thu, 21 Aug 2014 21:43:24 +0200 Convert cubicweb.NotFound to HTTPNotFound
Christophe de Vienne <christophe@unlish.com> [Thu, 21 Aug 2014 21:43:24 +0200] rev 11499
Convert cubicweb.NotFound to HTTPNotFound Related to #4291173
Wed, 06 Aug 2014 19:06:32 +0200 Use registry['cubicweb.registry'] instead of registry['cubicweb.appli'].vreg because the application may not be present.
Christophe de Vienne <christophe@unlish.com> [Wed, 06 Aug 2014 19:06:32 +0200] rev 11498
Use registry['cubicweb.registry'] instead of registry['cubicweb.appli'].vreg because the application may not be present. Related to #4291173
Thu, 21 Aug 2014 22:16:51 +0200 Use a predicate based view selection for handling /login
Christophe de Vienne <christophe@unlish.com> [Thu, 21 Aug 2014 22:16:51 +0200] rev 11497
Use a predicate based view selection for handling /login This will allow easy addition of login handlers from the application or cubes Related to #4291173
Wed, 06 Aug 2014 19:04:25 +0200 Use a tween application instead of a catchall route.
Christophe de Vienne <christophe@unlish.com> [Wed, 06 Aug 2014 19:04:25 +0200] rev 11496
Use a tween application instead of a catchall route. Using a catchall route has some drawbacks. Especially, we have no mean to have a route that would match only if no other one does AND no view matches either. Said differently, our default handler cannot be plugged on the route level nor the view level, because it is has to be activated only if nothing else works in the pyramid application. Using a tween application allow to handle requests that raises a HTTPNotFound error, while having the pyramid error handler still active between our tween app and the outside world. Related to #4291173
Mon, 04 Aug 2014 15:52:04 +0200 Document the view problem hypothesis.
Christophe de Vienne <christophe@unlish.com> [Mon, 04 Aug 2014 15:52:04 +0200] rev 11495
Document the view problem hypothesis. Related to #4291173
Mon, 04 Aug 2014 13:06:32 +0200 If the postlogin_path is 'login', redirect to '/' instead
Christophe de Vienne <christophe@unlish.com> [Mon, 04 Aug 2014 13:06:32 +0200] rev 11494
If the postlogin_path is 'login', redirect to '/' instead Related to #4291173
Mon, 04 Aug 2014 13:04:19 +0200 Put the login view in a separate module.
Christophe de Vienne <christophe@unlish.com> [Mon, 04 Aug 2014 13:04:19 +0200] rev 11493
Put the login view in a separate module. Related to #4291173
Thu, 31 Jul 2014 17:48:32 +0200 Separate into 4 modules
Christophe de Vienne <christophe@unlish.com> [Thu, 31 Jul 2014 17:48:32 +0200] rev 11492
Separate into 4 modules * init_instance: load the cubicweb repository from the `pyramid_cubicweb.instance` configuration key * defaults: provides cw-like defaults for the authentication and session management * core: make cubicweb use the authentication and session management of pyramid. It assumes the application provides the auth policies and session factory, and that the `cubicweb.*` registry entries are correctly initialised. This is this only required module or pyramid_cubicweb, the other ones are optional if the application provides its own versions of what they do. * bwcompat: provides a catchall route that delegate the request handling to an old-fashion cubicweb publisher (ie using url_resolver and controllers). Related to #4291173
Tue, 22 Jul 2014 23:46:09 +0200 Update the TODO list
Christophe de Vienne <christophe@unlish.com> [Tue, 22 Jul 2014 23:46:09 +0200] rev 11491
Update the TODO list Related to #4291173
Tue, 22 Jul 2014 23:45:11 +0200 Provide instructions and a requirements list to quickly start the sample
Christophe de Vienne <christophe@unlish.com> [Tue, 22 Jul 2014 23:45:11 +0200] rev 11490
Provide instructions and a requirements list to quickly start the sample application. Related to #4291173
Tue, 15 Jul 2014 18:25:48 +0200 Use the pyramid session object as the cubiweb session.data (needs a patched cw 3.19)
Christophe de Vienne <christophe@unlish.com> [Tue, 15 Jul 2014 18:25:48 +0200] rev 11489
Use the pyramid session object as the cubiweb session.data (needs a patched cw 3.19) Related to #4291173
Tue, 15 Jul 2014 18:13:57 +0200 Add comments on parts we want to reconsider later
Christophe de Vienne <christophe@unlish.com> [Tue, 15 Jul 2014 18:13:57 +0200] rev 11488
Add comments on parts we want to reconsider later Related to #4291173
Tue, 15 Jul 2014 17:37:50 +0200 Skip core_handle, add a context manager to handle cubicweb errors
Christophe de Vienne <christophe@unlish.com> [Tue, 15 Jul 2014 17:37:50 +0200] rev 11487
Skip core_handle, add a context manager to handle cubicweb errors The context manager is also used to catch errors in render_view. It handles the 'external' errors raised by cubicweb code. The more internal errors, the one that should occur only in url resolving and cubicweb controllers, are handled directly in CubicWebPyramidHandler. ValidationError is handled by CubicWebPyramidHandler for now, but should probably be handled by cw_to_pyramid Related to #4291173
Tue, 15 Jul 2014 15:30:49 +0200 Documents dependencies on a ubuntu system
Christophe de Vienne <christophe@unlish.com> [Tue, 15 Jul 2014 15:30:49 +0200] rev 11486
Documents dependencies on a ubuntu system Related to #4291173
Tue, 15 Jul 2014 14:25:15 +0200 Use short-lived cubicweb sessions to let pyramid actually handle the web sessions
Christophe de Vienne <christophe@unlish.com> [Tue, 15 Jul 2014 14:25:15 +0200] rev 11485
Use short-lived cubicweb sessions to let pyramid actually handle the web sessions Related to #4291173
Wed, 09 Jul 2014 17:14:32 +0200 Isolate the default handler and extend its role
Christophe de Vienne <christophe@unlish.com> [Wed, 09 Jul 2014 17:14:32 +0200] rev 11484
Isolate the default handler and extend its role The handler now does the job of CubicWebPublisher.main_handle_request() and calls CubicWebPublisher.core_handle(). Instead of using config.add_notfound_view, a catchall route is defined and the handler plugged to it. Related to #4291173
Sun, 06 Jul 2014 18:25:31 +0200 Add a basic sample application
Christophe de Vienne <christophe@unlish.com> [Sun, 06 Jul 2014 18:25:31 +0200] rev 11483
Add a basic sample application Related to #4291173
Sun, 06 Jul 2014 18:06:10 +0200 Integration pyramid and cubicweb authentication.
Christophe de Vienne <christophe@unlish.com> [Sun, 06 Jul 2014 18:06:10 +0200] rev 11482
Integration pyramid and cubicweb authentication. We use pyramid sessions to store the cubicweb sessionid so we can reuse it when needed, or regenerate it if it was lost. The cubicweb sessionid is obtained from a login in the repo OR directly from the user identified by pyramid. Related to #4291173
Fri, 12 Sep 2014 09:28:32 +0200 [doc] Escape _ in README.md
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 12 Sep 2014 09:28:32 +0200] rev 11481
[doc] Escape _ in README.md So that the Markdown is okay.
Thu, 28 Aug 2014 11:20:57 +0200 Initial implementation
Christophe de Vienne <christophe@unlish.com> [Thu, 28 Aug 2014 11:20:57 +0200] rev 11480
Initial implementation Set up a default route that passes requests to a cubicweb instance. The requests are wrapped in an adequate adapter so that cubicweb works with no change. Related to #4291173
Wed, 02 Jul 2014 19:07:39 +0200 Project Structure
Christophe de Vienne <christophe@unlish.com> [Wed, 02 Jul 2014 19:07:39 +0200] rev 11479
Project Structure Related to #4291173
Fri, 23 Sep 2016 16:04:32 +0200 [tox] Have less test environments
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 23 Sep 2016 16:04:32 +0200] rev 11478
[tox] Have less test environments This is to reduce the load on CI server because of parallel clones of the repository in Docker containers. Only keep "server", and "web" environments separated. All other prior environments are in "misc". To avoid duplicate entries in requirements files, move them all in a "requirements" directory (this appears to be a "common" practice, see e.g. Celery). Adjustments in tests: * Rename cubicweb/hooks/test/unittest_notification.py so that it does not conflict with cubicweb/sobjects/test/unittest_notification.py during test discovery as they would have the same module name but different __file__ attribute. * Add "comment" cube to the list of expected cubes in unittest_cwconfig.py as this cube is pulled by requirements/test-mist.txt. Closes #15440662.
Thu, 26 May 2016 15:38:39 +0200 [repo] Don't crash on start when fs schema is missing some db schema entities
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 26 May 2016 15:38:39 +0200] rev 11477
[repo] Don't crash on start when fs schema is missing some db schema entities This occurs usually while developping and we don't want systematically to rebuild the database to start the instance or run e.g. i18ninstance.
Fri, 23 Sep 2016 13:36:06 +0200 Let configuration option be overridden by environment variables
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 23 Sep 2016 13:36:06 +0200] rev 11476
Let configuration option be overridden by environment variables Related to #13889793.
Fri, 23 Sep 2016 09:51:10 +0200 [tox] Add a dummy test-results.xml file in check-manifest and flake8 environments
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 23 Sep 2016 09:51:10 +0200] rev 11475
[tox] Add a dummy test-results.xml file in check-manifest and flake8 environments This is to work around Jenkins Junit plugin that does not apparently account for the absence of this file (though it accepts it to be empty).
Fri, 23 Sep 2016 09:50:16 +0200 [tox] Basic flake8 config
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 23 Sep 2016 09:50:16 +0200] rev 11474
[tox] Basic flake8 config
Thu, 15 Sep 2016 21:22:53 +0200 Use pkgutil.ImpLoader instead of a custom loader for cubes import redirection
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 15 Sep 2016 21:22:53 +0200] rev 11473
Use pkgutil.ImpLoader instead of a custom loader for cubes import redirection It just works fine (same implementation of load_module method as _CubesLoader introduced in d404fd8499dd) and is complete w.r.t. PEP 302 (all methods implemented). Related to #13001466.
Tue, 13 Sep 2016 10:16:00 +0200 [config] Make available_cubes aware of cubes installed as packages
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 13 Sep 2016 10:16:00 +0200] rev 11472
[config] Make available_cubes aware of cubes installed as packages For this add a "cubicweb.cubes" entry points group which will be scanned through to find out installed cubes. Entries in this group are expected to expose the module name of a cube (i.e. `cubicweb_foo`). Note that CubicWebConfiguration's available_cubes method will return the module name of cubes as packages (cubicweb_foo), so we had to add a special "key" sorting function to keep cubes sorted as before, despite possible different distribution schemes. This makes it possible to handle loading of CTL plugins in an almost similar manner as before (just tweaking the package name from cube name in load_cwctl_plugins method). I had to tweak (again?) the test_cubes_path method in unittest_cwconfig.py but did not find out why. Apart from unforeseen bugs and pending documentation, this finishes the work on porting cubes to standard Python packages. Closes #13001466.
Wed, 14 Sep 2016 17:12:37 +0200 [skeleton] Use distname directly in setup.py
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 14 Sep 2016 17:12:37 +0200] rev 11471
[skeleton] Use distname directly in setup.py distname is part of required metadata and modname cannot actually be used in place of it.
Wed, 14 Sep 2016 17:03:46 +0200 [skeleton] Fix modname in __pkginfo__
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 14 Sep 2016 17:03:46 +0200] rev 11470
[skeleton] Fix modname in __pkginfo__
Mon, 12 Sep 2016 09:13:22 +0200 [test] Use plain unittest in unittest_cwctl.py
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 12 Sep 2016 09:13:22 +0200] rev 11469
[test] Use plain unittest in unittest_cwctl.py
Mon, 12 Sep 2016 09:03:07 +0200 [devctl] Remove commented LiveServerCommand
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 12 Sep 2016 09:03:07 +0200] rev 11468
[devctl] Remove commented LiveServerCommand The code got commented in 2010 (changeset 5ab3f63b06ad)...
Mon, 12 Sep 2016 09:01:47 +0200 [pkg] Inline call to setup() in setup.py
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 12 Sep 2016 09:01:47 +0200] rev 11467
[pkg] Inline call to setup() in setup.py The point of having this "install" function, called in "main" mode is not clear. Better stick to standard practices.
Mon, 12 Sep 2016 08:41:33 +0200 [pkg] Drop old checks in setup.py
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 12 Sep 2016 08:41:33 +0200] rev 11466
[pkg] Drop old checks in setup.py
Tue, 13 Sep 2016 17:06:35 +0200 [tox] Exclude symlinks from check-manifest call
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 13 Sep 2016 17:06:35 +0200] rev 11465
[tox] Exclude symlinks from check-manifest call These are not handled by check-manifest, see https://github.com/mgedmin/check-manifest/issues/69.
Thu, 21 Jul 2016 15:32:36 +0200 Drop the only reference to an '__insert' form key
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 21 Jul 2016 15:32:36 +0200] rev 11464
Drop the only reference to an '__insert' form key
Fri, 08 Jul 2016 10:13:15 +0200 Drop bits from the past (no more dbapi isolated installation)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 08 Jul 2016 10:13:15 +0200] rev 11463
Drop bits from the past (no more dbapi isolated installation)
Mon, 29 Aug 2016 12:05:11 +0200 [devtools] CWTC.request is gone, don't attempt to use it in CWTC.view
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 29 Aug 2016 12:05:11 +0200] rev 11462
[devtools] CWTC.request is gone, don't attempt to use it in CWTC.view So one will have to provide at least one of `rset` or `req` argument of the `view` method.
Thu, 08 Sep 2016 11:40:50 +0200 Merge 3.22 into 3.23 3.23
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 08 Sep 2016 11:40:50 +0200] rev 11461
Merge 3.22 into 3.23 Some fixes there are necessary for client work depending on cubicweb 3.23.
Wed, 08 Jun 2016 21:59:34 +0200 [devtools] Handle i18ncube command for "cubes as packages"
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 08 Jun 2016 21:59:34 +0200] rev 11460
[devtools] Handle i18ncube command for "cubes as packages" And add a test so that both layouts are tested. Move the test cube into a package. Related to #13001466.
Tue, 07 Jun 2016 18:21:13 +0200 Handle cubes as packages in cwconfig
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 07 Jun 2016 18:21:13 +0200] rev 11459
Handle cubes as packages in cwconfig Rely on importlib.import_module in several places in cwconfig.py, so this would not work with python 2.6. Method available_cubes will not list cubes installed as package for now. I'm not sure it's worth implementing this method (used in `cubicweb-ctl list cubes` command) for new cubes layout as the same result can basically be obtained with `pip freeze | grep cubicweb_`. In unittest_cwconfig.py, duplicate CubicWebConfigurationTC test case to test both the "cubes as packages" layout and the "legacy cubes" layout. The former having a custom sys.path set (pointing to datapath('libpython') where all cubes' packages live) and the latter having the previous config attribute setup. All test data cubes are moved to packages in libpython directory and symlinks are introduced in the cubes directory. Related to #13001466.
Tue, 12 Jul 2016 16:17:57 +0200 [cwconfig] Reorder imports by alphabetic order
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 12 Jul 2016 16:17:57 +0200] rev 11458
[cwconfig] Reorder imports by alphabetic order
Wed, 31 Aug 2016 11:53:21 +0200 Add an import redirect hook from "cubes.<name>" to "cubicweb_<name>"
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 31 Aug 2016 11:53:21 +0200] rev 11457
Add an import redirect hook from "cubes.<name>" to "cubicweb_<name>" The hook consists of a finder and a loader implemented following PEP-302; it is responsible for loading cubes distributed as packages (i.e. installed as ``cubicweb_<name>`` in site-packages) but imported (in client code) as ``from cubes.<name> import ...``. So this is a transitional mechanism allowing cubes following the new layout to be used by old-style cubes/applications. The importer is installed upon calling CubicWebConfiguration's cls_adjust_sys_path method (also called in cubicweb.devtools.__init__.py, which is a prerequisite for importing any "legacy" cube. The loading of old-style cubes is still handled by the CubicWeb configuration, based on adjustment of sys.path etc. Related to #13001466.
Wed, 06 Jul 2016 17:46:39 +0200 [devtools] Update skeleton's setup.py to install cube as a package
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 06 Jul 2016 17:46:39 +0200] rev 11456
[devtools] Update skeleton's setup.py to install cube as a package Most of the prior logic of skeleton's setup.py gets dropped as installing a cube as a "classic package" (i.e. in site-packages) is just the default behavior of distutils. Also add a test checking installation of new cube. Related to #13001466.
Thu, 19 May 2016 14:57:41 +0200 [devtools] Adjust skeleton setup.py to have it read information from __pkginfo__.py
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 19 May 2016 14:57:41 +0200] rev 11455
[devtools] Adjust skeleton setup.py to have it read information from __pkginfo__.py Since the later is now installed in cubicweb_<CUBENAME> directory. Add a test ensuring that `python setup.py sdist` works on newly created cube (which should at least verify that setup.py is valid). Related to #13001466.
Thu, 19 May 2016 14:27:28 +0200 [devtools] Update skeleton and newcube command to cube as package layout
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 19 May 2016 14:27:28 +0200] rev 11454
[devtools] Update skeleton and newcube command to cube as package layout Related to #13001466.
Thu, 08 Sep 2016 11:57:46 +0200 [pkg] Add missing entries to MANIFEST.in
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 08 Sep 2016 11:57:46 +0200] rev 11453
[pkg] Add missing entries to MANIFEST.in Detected by running `check-manifest <https://github.com/mgedmin/check-manifest>`_. Add a tox environment accordingly. Closes #15229018.
Fri, 26 Aug 2016 14:31:25 +0200 [test] Add a test for toolsutils.read_config
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 26 Aug 2016 14:31:25 +0200] rev 11452
[test] Add a test for toolsutils.read_config
Fri, 26 Aug 2016 13:56:59 +0200 [test] Use plain unittest in unittest_toolsutils
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 26 Aug 2016 13:56:59 +0200] rev 11451
[test] Use plain unittest in unittest_toolsutils
Mon, 30 May 2016 21:35:50 +0200 [skeleton] Remove test/pytestconf.py
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 30 May 2016 21:35:50 +0200] rev 11450
[skeleton] Remove test/pytestconf.py
Wed, 08 Jun 2016 22:49:21 +0200 [pkg] Make it clearer which entries of __pkginfo__ are actually used
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 08 Jun 2016 22:49:21 +0200] rev 11449
[pkg] Make it clearer which entries of __pkginfo__ are actually used
Tue, 12 Jul 2016 15:30:07 +0200 [test] Avoid usage of lgc.testlib TestCase in unittest_cwconfig.py
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 12 Jul 2016 15:30:07 +0200] rev 11448
[test] Avoid usage of lgc.testlib TestCase in unittest_cwconfig.py
Mon, 18 Jul 2016 13:59:47 +0200 [test] Move setup of spa2rql tests into setUpClass method
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 18 Jul 2016 13:59:47 +0200] rev 11447
[test] Move setup of spa2rql tests into setUpClass method Thus avoiding cryptic errors upon unittest discovery.
Mon, 18 Jul 2016 20:08:48 +0200 [schema] Set CubicWebSchemaLoader's extrapath using config eponymous property
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 18 Jul 2016 20:08:48 +0200] rev 11446
[schema] Set CubicWebSchemaLoader's extrapath using config eponymous property
Tue, 16 Aug 2016 14:26:41 +0200 [doc] Document change of instances location in virtualenv installation 3.23
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 16 Aug 2016 14:26:41 +0200] rev 11445
[doc] Document change of instances location in virtualenv installation Closes #14789440.
Tue, 16 Aug 2016 14:16:10 +0200 [cwconfig] Do not override user-defined CW_MODE in virtualenv setup 3.23
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 16 Aug 2016 14:16:10 +0200] rev 11444
[cwconfig] Do not override user-defined CW_MODE in virtualenv setup And thus consider `_forced_mode` first. Related to #14789440.
Fri, 22 Jul 2016 19:02:52 +0200 Added tag 3.22.4, debian/3.22.4-1, centos/3.22.4-1 for changeset 92db0bb8e26d 3.22
David Douard <david.douard@logilab.fr> [Fri, 22 Jul 2016 19:02:52 +0200] rev 11443
Added tag 3.22.4, debian/3.22.4-1, centos/3.22.4-1 for changeset 92db0bb8e26d
Fri, 22 Jul 2016 18:26:17 +0200 [pkg] remove .dev0 from version 3.22 3.22.4 centos/3.22.4-1 debian/3.22.4-1
David Douard <david.douard@logilab.fr> [Fri, 22 Jul 2016 18:26:17 +0200] rev 11442
[pkg] remove .dev0 from version
Thu, 21 Jul 2016 21:03:25 +0200 [pkg] 3.22.4 3.22
David Douard <david.douard@logilab.fr> [Thu, 21 Jul 2016 21:03:25 +0200] rev 11441
[pkg] 3.22.4
Wed, 06 Jul 2016 20:14:55 +0200 [session] Ensure access to rql varmaker always mark the session as dirty 3.22
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 06 Jul 2016 20:14:55 +0200] rev 11440
[session] Ensure access to rql varmaker always mark the session as dirty When one accesses the rql_varmaker, that's usually to use it. The pb was that when the varmaker was already in page's data (which is stored as session data), session storage such as redis won't see that the session data is dirty and has to be stored back at the end of the request. To fix this, systematically call set_page_data. (grafted from 3432f0e2540d)
Wed, 16 Mar 2016 00:42:40 +0100 [test] fix test_printable_value_bytes with current pygments 3.22
Julien Cristau <julien.cristau@logilab.fr> [Wed, 16 Mar 2016 00:42:40 +0100] rev 11439
[test] fix test_printable_value_bytes with current pygments An empty span was added in https://bitbucket.org/birkenfeld/pygments-main/commits/164574c13533195a555181a2b9c685fea2470403 (grafted from 74b04a88d28a)
Tue, 19 Jul 2016 19:30:10 +0200 [webctl] set uid of file produced by gen-static-datadir (closes #11298794) 3.22
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 19:30:10 +0200] rev 11438
[webctl] set uid of file produced by gen-static-datadir (closes #11298794)
Tue, 19 Jul 2016 19:54:59 +0200 [webconfig] ensure uicache content has correct uid (related to #11298794) 3.22
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 19:54:59 +0200] rev 11437
[webconfig] ensure uicache content has correct uid (related to #11298794)
Tue, 19 Jul 2016 19:50:48 +0200 [cwconfig] add the CubicWebConfiguration.ensure_uid_directory() method (related to #11298794) 3.22
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 19:50:48 +0200] rev 11436
[cwconfig] add the CubicWebConfiguration.ensure_uid_directory() method (related to #11298794) that recursively enforce uid on files.
Tue, 19 Jul 2016 19:26:20 +0200 [cwconfig] extract uid file setting code from check_writeable_uid_directory (related to #11298794) 3.22
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 19:26:20 +0200] rev 11435
[cwconfig] extract uid file setting code from check_writeable_uid_directory (related to #11298794) into an ensure_uid() method
Tue, 19 Jul 2016 15:53:58 +0200 [web] Fix bug with usage of os.rename under windows environment 3.22
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 19 Jul 2016 15:53:58 +0200] rev 11434
[web] Fix bug with usage of os.rename under windows environment In 7c386161ebd6 we removed cache handling from property sheet and introduced usage of a tempfile + os.rename to get atomic generation of files. The pb is that this is not portable, since under windows os.rename will raise an exception if the file already exists (because there is no way to write a file atomatically in such case). This kind of thing should be out of the CW scope anyway, so implements a quick & dirty fix in the mean time. Closes #14214794
Wed, 06 Jul 2016 20:28:51 +0200 [migration] More resilient migration script 3.23
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 06 Jul 2016 20:28:51 +0200] rev 11433
[migration] More resilient migration script Query the information schema to retrieve existing constraint (primary key and unique) and drop them. Thus don't use anymore DROP CONSTRAINT IF EXISTS (not implemented by e.g. old versions of sqlserver). To do so a missing DISTINCT was necessary to avoid duplicates.
Wed, 06 Jul 2016 20:14:55 +0200 [session] Ensure access to rql varmaker always mark the session as dirty 3.23
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 06 Jul 2016 20:14:55 +0200] rev 11432
[session] Ensure access to rql varmaker always mark the session as dirty When one accesses the rql_varmaker, that's usually to use it. The pb was that when the varmaker was already in page's data (which is stored as session data), session storage such as redis won't see that the session data is dirty and has to be stored back at the end of the request. To fix this, systematically call set_page_data.
Wed, 20 Jul 2016 09:40:04 +0200 typo 3.22
David Douard <david.douard@logilab.fr> [Wed, 20 Jul 2016 09:40:04 +0200] rev 11431
typo
Wed, 20 Jul 2016 09:21:51 +0200 [native] Use cnx.system_sql instead of doexec method in syntax_tree_search
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 20 Jul 2016 09:21:51 +0200] rev 11430
[native] Use cnx.system_sql instead of doexec method in syntax_tree_search The latter handles connection issues and tries to reconnect. Method syntax_tree_search appears to be called from quite a few place where it seems useful to be resilient to connection issues (authentication for instance). This reconnection logic appears to have disappeared at some point when working on https://www.cubicweb.org/2919309. Could not find the exact reason though...
Wed, 20 Jul 2016 09:09:34 +0200 Remove usage of cnx.ensure_cnx_set context manager
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 20 Jul 2016 09:09:34 +0200] rev 11429
Remove usage of cnx.ensure_cnx_set context manager It has been deprecated since 3.21, no reason to keep using it internally.
Fri, 26 Jun 2015 10:26:00 +0200 [hooks/test/synschema] remove an unneeded skipTest.
Aurelien Campeas <aurelien.campeas@pythonian.fr> [Fri, 26 Jun 2015 10:26:00 +0200] rev 11428
[hooks/test/synschema] remove an unneeded skipTest. Related to #5557633.
Tue, 19 Jul 2016 10:47:29 +0200 [test] Check retcode of subprocesses in devctl tests
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 19 Jul 2016 10:47:29 +0200] rev 11427
[test] Check retcode of subprocesses in devctl tests And display decoded stdout in case of failure.
Wed, 20 Jul 2016 17:58:49 +0200 merge 3.23
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 20 Jul 2016 17:58:49 +0200] rev 11426
merge 3.23
Fri, 08 Jul 2016 13:40:50 +0200 [pkg] Bump version to 3.24.0.dev0
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 08 Jul 2016 13:40:50 +0200] rev 11425
[pkg] Bump version to 3.24.0.dev0
Wed, 29 Jun 2016 10:35:22 +0200 [pkg] Drop NO_SETUPTOOLS option
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 29 Jun 2016 10:35:22 +0200] rev 11424
[pkg] Drop NO_SETUPTOOLS option setuptools is the defacto standard nowadays. The only place where NO_SETUPTOOLS option was used is during packaging (RPM, Debian) and even in this context, it seems that setuptools is the way to go (see https://wiki.debian.org/Python/LibraryStyleGuide).
Tue, 12 Jul 2016 12:21:41 +0200 [debian] update cubicweb-dev.lintian-overrides 3.23
David Douard <david.douard@logilab.fr> [Tue, 12 Jul 2016 12:21:41 +0200] rev 11423
[debian] update cubicweb-dev.lintian-overrides cubicweb/skeleton/debian/rules.tmpl is now cubicweb/skeleton/debian/rules prevent lintian from complaining
Tue, 05 Jul 2016 13:27:19 +0200 [pkg] Properly export data files in setup.py and adjust "newcube" test 3.23
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 05 Jul 2016 13:27:19 +0200] rev 11422
[pkg] Properly export data files in setup.py and adjust "newcube" test With the new package layout (everything under "cubicweb" package), the custom install_lib rule which makes use of include_dirs defined in __pkginfo__.py did not prepend the package name to source directories to be copied. Fixing this. Also, in setup.py's export() function, the destination directories' path to be created during source tree walk was wrong. All this makes cubicweb/skeleton directory (which is not a package) properly installed by setup.py. The test in cubicweb/devtools/test/unittest_devctl.py wasn't properly implemented because it used an installation of cubicweb in "develop" mode which shadows such packaging issues. Also it used "python -m cubicweb" instead of directly "cubicweb-ctl" and the former appears to fall back to using the cubicweb package *from sources* instead of the installed one. Now that this test runs against the installed version of cubicweb, fix MANIFEST.in to include tox.ini files (cubicweb's and skeleton's) as this is expected from the test. Closes #14127941.
Tue, 05 Jul 2016 10:44:05 +0200 [pkg] Handle verbose option in setup.py's export function 3.23
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 05 Jul 2016 10:44:05 +0200] rev 11421
[pkg] Handle verbose option in setup.py's export function Make debugging easier.
Tue, 05 Jul 2016 10:20:33 +0200 [pkg] Drop unused EMPTY_FILE global variable 3.23
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 05 Jul 2016 10:20:33 +0200] rev 11420
[pkg] Drop unused EMPTY_FILE global variable
Tue, 05 Jul 2016 13:00:38 +0200 [tox] Do not install package in "develop" 3.23
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 05 Jul 2016 13:00:38 +0200] rev 11419
[tox] Do not install package in "develop" This might shadow so packaging issues. And user can still pass --develop to tox.
Tue, 05 Jul 2016 13:02:14 +0200 [pkg] Bump version to 3.23.2 3.23
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 05 Jul 2016 13:02:14 +0200] rev 11418
[pkg] Bump version to 3.23.2
Fri, 08 Jul 2016 09:59:18 +0200 pep8 bits
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 08 Jul 2016 09:59:18 +0200] rev 11417
pep8 bits
Fri, 08 Jul 2016 10:17:42 +0200 [schema] Add a method on yams constraints to compute its unique name
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 08 Jul 2016 10:17:42 +0200] rev 11416
[schema] Add a method on yams constraints to compute its unique name used to identify it in the DB backend.
Fri, 08 Jul 2016 10:17:14 +0200 [migration] Test and fix case of addition of an attribute with some serialized constraint
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 08 Jul 2016 10:17:14 +0200] rev 11415
[migration] Test and fix case of addition of an attribute with some serialized constraint It was crashing on attempt to remove an unexisting constraint. This code may be removed safely as it's expected to be handled by the constraint removal hook. Notice that adding a vocabulary on shortpara makes yams change the varchar max size. This is arguable but not the point of this test, so simply adapt the max size defined in the schema coherently so we don't have to bother with that at this point.
Thu, 07 Jul 2016 14:10:45 +0200 [test] Add a migration test for update of a static vocabulary constraint
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 07 Jul 2016 14:10:45 +0200] rev 11414
[test] Add a migration test for update of a static vocabulary constraint This is a constraint serialized to be checked by the DB backend, hence ensure the old constraint is dropped and the new one is created.
Thu, 30 Jun 2016 13:42:16 +0200 [schema2sql] Avoid "parsing" SQL statements for database initialization
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 30 Jun 2016 13:42:16 +0200] rev 11413
[schema2sql] Avoid "parsing" SQL statements for database initialization A big SQL string was generated, then splitted. This caused bug if some value in the schema (eg vocabulary, default) contained the separator (';'). To properly fix this, yield each individual statement instead of generating a string. Closes #14050899
(0) -10000 -3000 -1000 -112 +112 +1000 tip