Tue, 07 Feb 2017 13:47:03 +0100 Fix possible double import of cubes modules
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 07 Feb 2017 13:47:03 +0100] rev 11955
Fix possible double import of cubes modules When cubes using the new layout are imported with 'cubicweb_<cube>' and with 'cubes.<cube>', the same module is imported twice. Handle this by adding 'cubes.<cube>' to sys.modules when importing from 'cubicweb_<cube>'. Move load_module() to a sub class _CubesLoader to share informations computed in find_modules(). Don't handle subpackages in _CubesImporter and rely on normal import machinery instead. Add a test and use unittest from cubicweb.devtools.testlib which resolve to unittest2 on PY2 with assertLogs() method.
Wed, 08 Feb 2017 10:31:26 +0100 Make load_module() return existing module if present in sys.modules
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 08 Feb 2017 10:31:26 +0100] rev 11954
Make load_module() return existing module if present in sys.modules Otherwise the reload() builtin will not work correctly: https://www.python.org/dev/peps/pep-0302/#specification-part-1-the-importer-protocol
Mon, 06 Feb 2017 15:43:19 +0100 [server] Ignore computed relations in "relations" integrity checker
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 06 Feb 2017 15:43:19 +0100] rev 11953
[server] Ignore computed relations in "relations" integrity checker
Mon, 06 Feb 2017 15:40:39 +0100 [server] Use global registry variable of integrity checker functions
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 06 Feb 2017 15:40:39 +0100] rev 11952
[server] Use global registry variable of integrity checker functions Instead of querying globals() in checkintegrity.check(), we maintain a _CHECKERS dict mapping checker name to function in checkintegrity module. This is later used to build the list of available checkers in 'db-check' command help.
Tue, 07 Feb 2017 18:18:22 +0100 [doc] Add 3.25 release notes
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 07 Feb 2017 18:18:22 +0100] rev 11951
[doc] Add 3.25 release notes [ci skip]
Fri, 27 Jan 2017 18:09:56 +0100 [repository] possibility to disable connections pooling
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 27 Jan 2017 18:09:56 +0100] rev 11950
[repository] possibility to disable connections pooling Add a new configuration option 'connections-pooler-enabled' (default yes). If set to no, disable connection pooling and open new connections to the database on demand. This allow to use CubicWeb with other poolers (such as pgbouncer).
Thu, 02 Feb 2017 14:58:39 +0100 [js] Fix loading image URL 3.24
Florent Cayré <florent.cayre@logilab.fr> [Thu, 02 Feb 2017 14:58:39 +0100] rev 11949
[js] Fix loading image URL
Mon, 06 Feb 2017 11:21:31 +0100 [migration] Move pyramid-related migration after "entities" table modifications 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 06 Feb 2017 11:21:31 +0100] rev 11948
[migration] Move pyramid-related migration after "entities" table modifications Otherwise, we getting into `add_entity_type('CWSession')` we try to insert a CWEType without any 'asource' column (per 3.24's schema) whereas the backend still wants it. Closes #17054035.
Fri, 03 Feb 2017 13:37:32 +0100 Merge 3.24.5 into default branch
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 03 Feb 2017 13:37:32 +0100] rev 11947
Merge 3.24.5 into default branch
Tue, 10 Jan 2017 16:08:55 +0100 [entities] Introduce an IDublinCore adapter
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 10 Jan 2017 16:08:55 +0100] rev 11946
[entities] Introduce an IDublinCore adapter Move all dc_ methods from AnyEntity to the new IDublinCore adapter and proxy them through a __getattr__ method on AnyEntity. Current test suite should be enough. Closes #3119992.
Fri, 27 Jan 2017 11:05:07 +0100 [skeleton] Add an entry point and configuration for running a Pyramid application
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 27 Jan 2017 11:05:07 +0100] rev 11945
[skeleton] Add an entry point and configuration for running a Pyramid application We add a `pyramid_main` function in __init__.py that instantiate the WSGI application using "cubicweb.pyramid"; this is defined as an entry point (in setup.py) so that pserve_ can find it. Alongside comes a development.ini file which includes basic settings so that running a Pyramid+CubicWeb application works (only the "instance=<appid>" may be passed as a command-line argument). Logging is also configured there, but only includes the cube at stake and cubicweb (others could be added if needed). .. _perse: \ http://docs.pylonsproject.org/projects/pyramid/en/1.8-branch/pscripts/pserve.html
Fri, 27 Jan 2017 09:58:30 +0100 [cwconfig] Issue a warning when a "core" ctl plugin failed to load
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 27 Jan 2017 09:58:30 +0100] rev 11944
[cwconfig] Issue a warning when a "core" ctl plugin failed to load This is often because of a missing dependency, the warning would indicate this hopefully.
Fri, 27 Jan 2017 13:36:00 +0100 [dataimport] Fix "existing_relations" parameter name in ExtEntitiesImporter
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 27 Jan 2017 13:36:00 +0100] rev 11943
[dataimport] Fix "existing_relations" parameter name in ExtEntitiesImporter
Thu, 15 Jan 2015 18:01:28 +0100 [ical] Create ICal events or todos depending on component type returned by adapter
Olivier CAYROL (Logilab) <Olivier.Cayrol@logilab.fr> [Thu, 15 Jan 2015 18:01:28 +0100] rev 11942
[ical] Create ICal events or todos depending on component type returned by adapter
Tue, 31 Jan 2017 11:06:28 +0100 Added tag 3.24.5, debian/3.24.5-1, centos/3.24.5-1 for changeset 70d28e632206 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 31 Jan 2017 11:06:28 +0100] rev 11941
Added tag 3.24.5, debian/3.24.5-1, centos/3.24.5-1 for changeset 70d28e632206
Tue, 31 Jan 2017 10:41:04 +0100 Prepare 3.24.5 3.24 3.24.5 centos/3.24.5-1 debian/3.24.5-1
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 31 Jan 2017 10:41:04 +0100] rev 11940
Prepare 3.24.5
Mon, 30 Jan 2017 10:18:31 +0100 [devtools] Skip computed relations when attempting to auto-populate test database 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 30 Jan 2017 10:18:31 +0100] rev 11939
[devtools] Skip computed relations when attempting to auto-populate test database Fix the automatic database population underlying automatic test to avoid attempt to create computed relations.
Mon, 30 Jan 2017 18:14:45 +0100 [migration] Stop asking confirm to commit 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 30 Jan 2017 18:14:45 +0100] rev 11938
[migration] Stop asking confirm to commit
Mon, 30 Jan 2017 17:17:17 +0100 [migration] Fix crash on 3.24 migration 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 30 Jan 2017 17:17:17 +0100] rev 11937
[migration] Fix crash on 3.24 migration Some sql using a column droped the line above crash migration of cw < 3.24.
Mon, 30 Jan 2017 10:18:31 +0100 [devtools] Skip computed relations when attempting to auto-populate test database
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 30 Jan 2017 10:18:31 +0100] rev 11936
[devtools] Skip computed relations when attempting to auto-populate test database Fix the automatic database population underlying automatic test to avoid attempt to create computed relations.
Mon, 30 Jan 2017 11:23:13 +0100 [test] Use our BaseTestCase in unittest_rtags.py
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 30 Jan 2017 11:23:13 +0100] rev 11935
[test] Use our BaseTestCase in unittest_rtags.py We need it DeprecatedInstanceWithoutModule for assertWarns method. Use this instead of unittest2 directly with a try/except block to get rid of flake8 error about import not being one top of file.
Mon, 30 Jan 2017 10:22:23 +0100 [server] Add a blank line before _CnxSetPool to fix PEP8 error
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 30 Jan 2017 10:22:23 +0100] rev 11934
[server] Add a blank line before _CnxSetPool to fix PEP8 error
Mon, 30 Jan 2017 10:19:58 +0100 [pkg] Use logilab-common's master repository in dev requirements
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 30 Jan 2017 10:19:58 +0100] rev 11933
[pkg] Use logilab-common's master repository in dev requirements Should follow-up on 7b2247098f58 after integration on logilab-common side.
Fri, 20 Jan 2017 16:39:44 +0100 [rtags] pass module name to RegistrableInstance
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 20 Jan 2017 16:39:44 +0100] rev 11932
[rtags] pass module name to RegistrableInstance Instantiate a RegistrableInstance without passing the module name is deprecated in https://www.logilab.org/patch/10047069
Fri, 27 Jan 2017 17:42:16 +0100 [repository] move cnxset pool handling to a helper class
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 27 Jan 2017 17:42:16 +0100] rev 11931
[repository] move cnxset pool handling to a helper class The class has responsability to handle connections pool operations in a single public attribute 'cnxsets'. On Repository _get_cnxset() and _free_cnxset() are replaced by cnxsets.get() and cnxsets.release(). Drop multiple access to private attributes and methods from outside of Repository.
Fri, 27 Jan 2017 15:53:15 +0100 [pkg] Fix some error on building documentation
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 27 Jan 2017 15:53:15 +0100] rev 11930
[pkg] Fix some error on building documentation
Fri, 27 Jan 2017 16:26:09 +0100 Merge 3.24.4 into default branch
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 27 Jan 2017 16:26:09 +0100] rev 11929
Merge 3.24.4 into default branch
Fri, 27 Jan 2017 13:41:24 +0100 Added tag 3.24.4, debian/3.24.4-1, centos/3.24.4-1 for changeset 35fd54c0065d 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 27 Jan 2017 13:41:24 +0100] rev 11928
Added tag 3.24.4, debian/3.24.4-1, centos/3.24.4-1 for changeset 35fd54c0065d
Fri, 27 Jan 2017 13:30:24 +0100 Prepare 3.24.4 3.24 3.24.4 centos/3.24.4-1 debian/3.24.4-1
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 27 Jan 2017 13:30:24 +0100] rev 11927
Prepare 3.24.4
Fri, 20 Jan 2017 03:48:11 +0100 [source,native] Generalize the IntegrityError constraint parsing regex 3.24
Florent Cayré <florent.cayre@gmail.com> [Fri, 20 Jan 2017 03:48:11 +0100] rev 11926
[source,native] Generalize the IntegrityError constraint parsing regex This allows catching constraint-related errors that have been translated by psycopg2, replacing surrounding english quotes by french quotes + space for instance. Closes #17047951.
Wed, 18 Jan 2017 16:50:48 +0100 [pyramid] use pyramid.request `path_info` property instead of `path` 3.24
Samuel Trégouët <samuel.tregouet@logilab.fr> [Wed, 18 Jan 2017 16:50:48 +0100] rev 11925
[pyramid] use pyramid.request `path_info` property instead of `path` path is concatenation of SCRIPT_NAME and PATH_INFO we just need PATH_INFO here
Fri, 13 Jan 2017 11:36:51 +0100 [pyramid] fix login route with language-mode = url-prefix 3.24
Samuel Trégouët <samuel.tregouet@logilab.fr> [Fri, 13 Jan 2017 11:36:51 +0100] rev 11924
[pyramid] fix login route with language-mode = url-prefix
Fri, 18 Nov 2016 10:28:41 +0100 [devtools] Make timeout error in qunit tests configurable and use SkipTest in test_jscript.py 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 18 Nov 2016 10:28:41 +0100] rev 11923
[devtools] Make timeout error in qunit tests configurable and use SkipTest in test_jscript.py This is grafted from 87443f279b0f in default branch (got tired of CI failing because of these unreliable tests).
Thu, 26 Jan 2017 16:34:56 +0100 [web] Handle unspecified value in TZDatetimeField 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 26 Jan 2017 16:34:56 +0100] rev 11922
[web] Handle unspecified value in TZDatetimeField `field._ensure_correctly_typed(self, form, value)` should return None if value is None. Closes #17050181.
Thu, 26 Jan 2017 16:33:15 +0100 [web] Handle unspecified 'date' or 'time' in JQueryDateTimePicker.process_field_data() 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 26 Jan 2017 16:33:15 +0100] rev 11921
[web] Handle unspecified 'date' or 'time' in JQueryDateTimePicker.process_field_data() dict.get() may return None, which has no attribute strip.
Mon, 23 Jan 2017 15:35:19 +0100 [cwconfig] create a virtual "cubes" package
Philippe Pepiot <philippe.pepiot@logilab.fr> [Mon, 23 Jan 2017 15:35:19 +0100] rev 11920
[cwconfig] create a virtual "cubes" package _CubesImporter now handle import of "cubes" and return a virtual module so that "cubes" is always importable without having to create a __init__.py in CUBES_DIR and add CUBES_DIR/.. to sys.path. Drop custom code in setup.py used to create CUBES_DIR/__init__.py and drop now useless warning when cubicweb is installed in develop mode Update test_cubes_path() and ensure 'cubes.file' is not loaded before testing its import. This test seems to have mistakes because cubes are loaded automatically when discovering cw commands (cubes.<x>.ccplugin), not sure how this should be fixed definitely.
Fri, 20 Jan 2017 18:17:04 +0100 Change hooks control (deny_all_hooks_but / allow_all_hooks_but) to be more predictable
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 20 Jan 2017 18:17:04 +0100] rev 11919
Change hooks control (deny_all_hooks_but / allow_all_hooks_but) to be more predictable Prior to this, if one execute code like: with cnx.hooks.deny_all_hooks_but('metadata'): with cnx.hooks.deny_all_hooks_but(): # mycode 'metadata' hooks will be activated anyway in the inner block, which is rather unexpected (of course in real life you only see the latest hooks control statement, the former being higher in the call stack). This is due to the underlying usage of old `enable_hook_categories` / `disable_hook_categories` methods, which were introduced much before the now official context manager based API (with `cnx.[deny|all]_all_hooks_but(...)`). To move on, this patch drop the two legacy methods, rename and privatize related internal state on the connection (`hooks_mode` becomes `_hooks_mode`, `disabled_hook_cats` and `enabled_hook_cats` become `_hooks_categories`) and reimplement the `_hooks_control` context manager to simply update them. See the added unit test for details.
Tue, 24 Jan 2017 14:09:13 +0100 [cwconfig] make appobjects_cubes_modnames() public
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 24 Jan 2017 14:09:13 +0100] rev 11918
[cwconfig] make appobjects_cubes_modnames() public The method is used in cubicweb.cwvreg without underscore and outside of the config class, so let's make this method public. Fix autoreload with twisted.
Fri, 20 Jan 2017 15:16:18 +0100 Fix str(Unauthorized) 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 20 Jan 2017 15:16:18 +0100] rev 11917
Fix str(Unauthorized) which is really problematic on python 3 where __unicode__ is never called anymore. This was caused because in PY3, CubicWebException.__str__ was referencing __unicode__ implementation of CubicWebException, not of its subclass that implements it. Fix a flake8 style warning about lambda assignment as a bonus.
Fri, 20 Jan 2017 09:55:08 +0100 [test] avoid using a deprecated feature of yams
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 20 Jan 2017 09:55:08 +0100] rev 11916
[test] avoid using a deprecated feature of yams handle_file() now require a module name (yams@d9120d7)
Tue, 12 May 2015 22:14:24 +0200 [test] add some tests to web.views.baseviews
Alain Leufroy <alain@leufroy.fr> [Tue, 12 May 2015 22:14:24 +0200] rev 11915
[test] add some tests to web.views.baseviews
Mon, 23 Jan 2017 10:44:00 +0100 [tox] Drop "touch {envdir}/share/cubicweb/cubes/__init__.py" command on py34 env
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 23 Jan 2017 10:44:00 +0100] rev 11914
[tox] Drop "touch {envdir}/share/cubicweb/cubes/__init__.py" command on py34 env This was useful when we installed cubicweb in "develop" mode but we do not do this anymore.
Mon, 23 Jan 2017 11:02:21 +0100 Drop support for https-url in all-in-one.conf
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 23 Jan 2017 11:02:21 +0100] rev 11913
Drop support for https-url in all-in-one.conf This feature allowing an instance to have both anonymous and authenticated (https) url is not used anymore, let's drop it.
Fri, 20 Jan 2017 16:53:28 +0100 [test] use TemporaryDirectory context manager
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 20 Jan 2017 16:53:28 +0100] rev 11912
[test] use TemporaryDirectory context manager For consistency with others tests, use TemporaryDirectory from cubicweb.devtools.testlib.
Fri, 20 Jan 2017 14:32:34 +0100 [tox] Drop "exclude" option from flake8 config and adjust flake8-ok-files.txt accordingly
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 20 Jan 2017 14:32:34 +0100] rev 11911
[tox] Drop "exclude" option from flake8 config and adjust flake8-ok-files.txt accordingly Some files listed in flake8-ok-files.txt were excluded of flake8 run because of the "exclude" option in tox.ini. Some of them were non-existent files (moved), some others were actually non-flake8-compliant. In the latter case, we adjust trivial errors (blank lines, module import not on top of file) but remove others (like cubicweb/test/unittest_utils.py) from flake8-ok-files.txt.
Fri, 20 Jan 2017 10:31:04 +0100 [autoform] Go through guess_field even when field class is specified using uicfg
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 20 Jan 2017 10:31:04 +0100] rev 11910
[autoform] Go through guess_field even when field class is specified using uicfg guess_field does not only find the proper field class for some attribute/relation, but also do some basic configuration depending on e.g. constraints. Before this patch, if one was specifying explicitly the field class using uicfg.autoform_field, this automatic configuration wasn't happening. Change form.field_by_name and ff.guess_field so explicit class are also automatically configured now. Closes #14474840
Fri, 20 Jan 2017 03:54:43 +0100 [uilib] Fix incorrect serialization of python dicts into javascript objects 3.24
Florent Cayré <florent.cayre@gmail.com> [Fri, 20 Jan 2017 03:54:43 +0100] rev 11909
[uilib] Fix incorrect serialization of python dicts into javascript objects Valid javascript object keys must be surrounded by quotes unless they are valid javascript identifiers. Valid identifiers are a defined by complex and changing specs, so it is much simpler to always use quotes. Closes #17046704.
Thu, 12 Jan 2017 13:40:25 +0100 [repository] Fix connection-pool-size not set to 1 with quick_start enabled 3.24
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 12 Jan 2017 13:40:25 +0100] rev 11908
[repository] Fix connection-pool-size not set to 1 with quick_start enabled config.load_schema() and config.init_cube() reload configuration options from config file, so a manually set connections-pool-size (eg. when quick_start is enabled) wasn't working.
Thu, 19 Jan 2017 11:12:35 +0100 [migration] Enhance assertion message to get a chance to fix the problem 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 19 Jan 2017 11:12:35 +0100] rev 11907
[migration] Enhance assertion message to get a chance to fix the problem
Thu, 19 Jan 2017 11:12:07 +0100 [migration] Skip virtual rtypes when adding relation definition through add_cube 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 19 Jan 2017 11:12:07 +0100] rev 11906
[migration] Skip virtual rtypes when adding relation definition through add_cube Virtual rtypes should be skipped as they are added dynamically on loading schema. Those are skipped by e.g. schema serialisation or add_entity_type, do the same thing here.
Thu, 19 Jan 2017 11:10:47 +0100 [migration] Avoid unnecessary intermediary commit when migrating a schema 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 19 Jan 2017 11:10:47 +0100] rev 11905
[migration] Avoid unnecessary intermediary commit when migrating a schema Those are low-hanging fruit following changes in ac74476d686c (Fix addition of entity type including boundary constraints on its own attributes): this is no more necesary to commit the get a new relation type definition in the schema. At some point we could/should probably do more on this topic to avoid intermediary commit on e.g. entity type addition, but this requires more work.
Wed, 18 Jan 2017 15:04:27 +0100 [migration] Fix addition of entity type including boundary constraints on its own attributes 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 18 Jan 2017 15:04:27 +0100] rev 11904
[migration] Fix addition of entity type including boundary constraints on its own attributes This was failing because of the sequence of sql executing when adding an attribute: 1. add entity type <commit> 2. add relation type for attribute 1 <commit> 3. add attribute 1 and associated constraints <commit> etc. In the case of e.g. start/end constraint, we were trying to add the constraint before addition of the constrained attribute (e.g. add constraint on 'start' referencing 'end', but only 'start' has been added yet, not 'end'). This patch fix this by: * adding the relation type to the schema without having to commit, but keeping the operation to revert the addition if necessary - this allows to a single commit for all attributes of the entity type ; * using a LateOperation on constraint operation, so we ensure attributes are actually added before any constraint is added.
Thu, 19 Jan 2017 09:53:31 +0100 [schema sync] Refactor AfterAddCWRTypeHook and AfterAddCWComputedRTypeHook so the latter inherit from the former 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 19 Jan 2017 09:53:31 +0100] rev 11903
[schema sync] Refactor AfterAddCWRTypeHook and AfterAddCWComputedRTypeHook so the latter inherit from the former and enhance their docstring.
Wed, 18 Jan 2017 12:36:02 +0100 Drop embed-allowed option, gone away for a long time 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 18 Jan 2017 12:36:02 +0100] rev 11902
Drop embed-allowed option, gone away for a long time
Wed, 04 Jan 2017 10:02:05 +0100 Never record undo information for session or data import 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 04 Jan 2017 10:02:05 +0100] rev 11901
Never record undo information for session or data import for session, it may causes unlimited database size expansion while it makes no sense to undo this kind of changes. For data import, they are created programatically hence we may not want to undo this either.
Thu, 19 Jan 2017 14:53:05 +0100 [cwvreg] load registry using modules names instead of directories
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 19 Jan 2017 14:53:05 +0100] rev 11900
[cwvreg] load registry using modules names instead of directories Introspect cubicweb, cubes and apphome using pkgutil to generate the full list of modules names for loading registries. Avoiding using bogus logilab.common.modutils.modpath_from_file().
Thu, 19 Jan 2017 15:27:39 +0100 [schema] load schema from modules names instead of directories
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 19 Jan 2017 15:27:39 +0100] rev 11899
[schema] load schema from modules names instead of directories Introspect cubicweb, cubes and apphome using pkgutil to generate the full list of modules names for loading the schema. Keep historical behavior and check if source .py file exists if a module is found using python bytecode file (.pyc and .pyo) Loading schema from apphome require apphome to be present in sys.path and that "schema" module resolve to a file located in apphome. Update migraction tests to explicitely update sys.path when loading schema from different apps, use a contextmanager for this so it's more readable. Require updated logilab-common and yams
Wed, 18 Jan 2017 17:16:00 +0100 [devtools/test] Skip qunit tests in case of timeout
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 18 Jan 2017 17:16:00 +0100] rev 11898
[devtools/test] Skip qunit tests in case of timeout Follow-up on 87443f279b0f where other similar tests got adjusted not to fail (in particular in our CI environment).
Thu, 18 Feb 2016 14:22:07 +0100 [autoform] Avoid two calls to field.process_form for the same field in some cases
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 18 Feb 2016 14:22:07 +0100] rev 11897
[autoform] Avoid two calls to field.process_form for the same field in some cases when some entity is being created and data include non-inlined relations, the values for this relation are now stored for later usage, avoiding two calls to field's process_form method, which may be unexpected for custom fields. This has been discovered in saem_ref#f5444b1f9770. Reorganize imports in the test along the way.
Mon, 19 Dec 2016 17:22:48 +0100 [pyramid] Don't use unsafe_cnx_context_manager for write queries 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 19 Dec 2016 17:22:48 +0100] rev 11896
[pyramid] Don't use unsafe_cnx_context_manager for write queries we may have clumsy error that hide previous problems on attempting to commit the transaction. Closes #16753531
Wed, 14 Dec 2016 08:37:11 +0100 Repair database wrt indexes / unique constraints 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 14 Dec 2016 08:37:11 +0100] rev 11895
Repair database wrt indexes / unique constraints * recreate indexes dropped by 3.23 migration (but it's still unclear why) * attempt drop remaining extra indexes (there may be a bunch of these on old instances) * warn about missing expected indexes Closes #16666137
Wed, 14 Dec 2016 17:06:24 +0100 Enhance postgres index filter with values from real life 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 14 Dec 2016 17:06:24 +0100] rev 11894
Enhance postgres index filter with values from real life This has been found on fairly old instances of ours (cwo/elo). Dunno if we really want this in, it may lead to false negatives.
Wed, 14 Dec 2016 17:04:29 +0100 Extract functions to list expected/found database indexes from check_indexes 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 14 Dec 2016 17:04:29 +0100] rev 11893
Extract functions to list expected/found database indexes from check_indexes so they may be used from other contexts. Use consistent naming along the way: always use indexes, not indices.
Thu, 24 Nov 2016 15:36:26 +0100 Simplify and fix _cw.drop_entity_cache
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 24 Nov 2016 15:36:26 +0100] rev 11892
Simplify and fix _cw.drop_entity_cache * it's never called with an eid as argument, beside in a useless case in test (removed) * the only place where it's called from outside the tests is in full-text reindexation in server.checkintegrity: we could removed the request implementation and move it in unittest_rset, byt I decided to keep it for consistency with all other entity cache handling methods * get back a fix from Julien Cristau for the connection's implementation, quoting is commit message: When removing an entity from the transaction's cache, clear the entity's own cache May avoid issues where an entity object is still accessible somewhere else (e.g. an operation) after dropping it from the transaction's cache, with a stale attribute or relation cache.
Fri, 18 Nov 2016 17:50:56 +0100 [entity/optimization] Cache rset when entity.related is called with entities=False
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 18 Nov 2016 17:50:56 +0100] rev 11891
[entity/optimization] Cache rset when entity.related is called with entities=False If fail to see why we couldn't cache in this case, while this is important for optimization reason: when doing a single HTTP request, some queries are done two or three times because of predicates / uicfg or alike. Also always store tuple and not list in the cache, because: * else we get some regression * and inconsistent result type (tuple or list) * and it simply feels better to cache an unmutable object.
Wed, 14 Dec 2016 08:47:06 +0100 Ensure in 3.24 migration that entities from LDAP have consistent cwuri 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 14 Dec 2016 08:47:06 +0100] rev 11890
Ensure in 3.24 migration that entities from LDAP have consistent cwuri Closes #16666157
Wed, 14 Dec 2016 13:34:08 +0100 [doc/book] fix error in markup 3.24
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Wed, 14 Dec 2016 13:34:08 +0100] rev 11889
[doc/book] fix error in markup
Wed, 09 Nov 2016 16:14:17 +0100 [rtags] Allow to 'derive' rtags
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Nov 2016 16:14:17 +0100] rev 11888
[rtags] Allow to 'derive' rtags Since some releases, rtags (structure underlying uicfg) have selector and may be copied using something like: new_rtags = deepcopy(original_rtags) new_rtags.__module__ = __name__ new_rtags.__select__ = custom_selector The problem is that starting from that, both rtags wil diverge and changes in original_rtags won't be considered, while we usually want to set a few specific rules only in new_rtags. To fix this problem, this cset introduces the notion of "derivated/parent" rtag, eg: new_rtags = original_rtags.derive(__name__, custom_selector) Beside easier copying, when using the above method changes in original_rtags which are not overriden by new_rtags will be considered since it only hold its specific rules but look among its parent chain for non-found keys. Along the way, flake8 unittest_rtags. Closes #16164880
Wed, 09 Nov 2016 16:08:23 +0100 [test] Use bare unittest in unittest_rtags
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Nov 2016 16:08:23 +0100] rev 11887
[test] Use bare unittest in unittest_rtags
Wed, 09 Nov 2016 16:07:10 +0100 [rtags] Docstring fix
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Nov 2016 16:07:10 +0100] rev 11886
[rtags] Docstring fix
Wed, 09 Nov 2016 16:05:06 +0100 [cleanup] flake8 rtags.py
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Nov 2016 16:05:06 +0100] rev 11885
[cleanup] flake8 rtags.py
Wed, 14 Dec 2016 11:13:46 +0100 [pkg] Require passlib >= 1.7.0
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 14 Dec 2016 11:13:46 +0100] rev 11884
[pkg] Require passlib >= 1.7.0 Since bc9d901cb9e6 we use 1.7.0 API, update packaging accordingly.
Sun, 04 Dec 2016 23:45:52 +0100 [web/http_headers] do not crash when IfModifiedSince is empty string (closes #16527954) 3.24
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Sun, 04 Dec 2016 23:45:52 +0100] rev 11883
[web/http_headers] do not crash when IfModifiedSince is empty string (closes #16527954)
Wed, 07 Dec 2016 14:07:35 +0100 [pkg] Set an upper bound to passlib 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 07 Dec 2016 14:07:35 +0100] rev 11882
[pkg] Set an upper bound to passlib We're using a deprecated API and are getting the following deprecation warning: :: the method passlib.context.CryptContext.encrypt() is deprecated as of Passlib 1.7, and will be removed in Passlib 2.0, use CryptContext.hash() instead. So let's make sure we're getting a working library. [ci skip]
Fri, 09 Dec 2016 15:08:52 +0100 [cwconfig] Retrieve real path of cubes directory 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 09 Dec 2016 15:08:52 +0100] rev 11881
[cwconfig] Retrieve real path of cubes directory Since logilab-common 1.3.0, we have real path expansion modutils.modpath_from_file. But the extrapath parameter that is passed from cubicweb.schema reader may still have symlinks, so expand them here to hopefully have consistent comparison in modpath_from_file.
Wed, 07 Dec 2016 14:11:23 +0100 [server] Use CryptContext's hash method instead of deprecated encrypt method
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 07 Dec 2016 14:11:23 +0100] rev 11880
[server] Use CryptContext's hash method instead of deprecated encrypt method Getting rid of the following deprecation warning: :: the method passlib.context.CryptContext.encrypt() is deprecated as of Passlib 1.7, and will be removed in Passlib 2.0, use CryptContext.hash() instead.
Wed, 07 Dec 2016 14:13:20 +0100 Merge public heads 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 07 Dec 2016 14:13:20 +0100] rev 11879
Merge public heads
Thu, 22 Oct 2015 16:58:12 +0200 [cwctl] on upgrade, clear instance_md5_version cache
Julien Cristau <julien.cristau@logilab.fr> [Thu, 22 Oct 2015 16:58:12 +0200] rev 11878
[cwctl] on upgrade, clear instance_md5_version cache The generate-static-datadir depends on a correct config.instance_md5_version(), and we just invalidated it by upgrading the instance.
Tue, 15 Dec 2015 08:35:13 +0100 [twisted] add request error handler to avoid finishing it twice
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Tue, 15 Dec 2015 08:35:13 +0100] rev 11877
[twisted] add request error handler to avoid finishing it twice And avoid stack traces like:: Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 783, in __bootstrap self.__bootstrap_inner() File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner self.run() File "/usr/lib/python2.7/threading.py", line 763, in run self.__target(*self.__args, **self.__kwargs) --- <exception caught here> --- [...] File "/usr/lib/python2.7/dist-packages/twisted/python/threadpool.py", line 196, in _worker result = context.call(ctx, function, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext return self.currentContext().callWithContext(ctx, func, *args, **kw) File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext return func(*args,**kw) File "/home/me/envs/grshell-cw/cubicweb/statsd_logger.py", line 121, in __call__ return self.callable(*args, **kw) File "/home/me/envs/grshell-cw/cubicweb/etwist/server.py", line 131, in render_request code=500, twisted_request=request) File "/home/me/envs/grshell-cw/cubicweb/etwist/http.py", line 22, in __init__ self._finalize() File "/home/me/envs/grshell-cw/cubicweb/etwist/http.py", line 46, in _finalize self._twreq.finish() File "/usr/lib/python2.7/dist-packages/twisted/web/server.py", line 228, in finish return http.Request.finish(self) File "/usr/lib/python2.7/dist-packages/twisted/web/http.py", line 931, in finish "Request.finish called on a request after its connection was lost; " exceptions.RuntimeError: Request.finish called on a request after its connection was lost; use Request.notifyFinish to keep track of this.
Fri, 04 Sep 2015 18:05:51 +0200 [web/tests] Hide DeprecationWarnings
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 04 Sep 2015 18:05:51 +0200] rev 11876
[web/tests] Hide DeprecationWarnings
Thu, 19 Nov 2015 12:25:45 +0100 [web] remove next_tabindex()
Julien Cristau <julien.cristau@logilab.fr> [Thu, 19 Nov 2015 12:25:45 +0100] rev 11875
[web] remove next_tabindex() It's hard to see it work reliably in view of multiple server processes. If something like that is needed it should probably be built on the client (js) side.
Wed, 23 Nov 2016 17:19:51 +0100 [views/optimization] Ensure we call rset.possible_actions with the same argument
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 23 Nov 2016 17:19:51 +0100] rev 11874
[views/optimization] Ensure we call rset.possible_actions with the same argument rset.possible_actions (which should definitly not be an ResultSet method, but that's another story) has been designed to hold a cache to compute possible actions for a only once, since this may be a fairly costly operation (notably because of the 'has_editable_relations' predicates). But this has been broken by introduction of a new 'view' parameter which is not given by every call. To fix this, this cset adds the missing view argument where necessary and reimplements the rset's method to assert it's always called with the same key. Unfortunatly, those changes have to be ported to squareui and bootstrap cubes as well.
Fri, 18 Nov 2016 18:19:10 +0100 [schema/optimization] Ensure read permissions are deactivated when we're checking a permission
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 18 Nov 2016 18:19:10 +0100] rev 11873
[schema/optimization] Ensure read permissions are deactivated when we're checking a permission When called from a web request, since we *are* checking some permission, read permissions don't have to be introduced in this query. We may avoid that since there now more any differences between web and repo connections, so let's do it.
Fri, 18 Nov 2016 18:16:21 +0100 [web] Enhance query log file
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 18 Nov 2016 18:16:21 +0100] rev 11872
[web] Enhance query log file * Add an overall page generation time * Don't log URL without any query (e.g. static files)
Thu, 24 Nov 2016 14:26:12 +0100 [massive store] Don't store eids_seq_range as a store attribute
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 24 Nov 2016 14:26:12 +0100] rev 11871
[massive store] Don't store eids_seq_range as a store attribute since it's not considered after object's initialization.
Thu, 24 Nov 2016 16:58:50 +0100 Flake8 bits with some copyright updates
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 24 Nov 2016 16:58:50 +0100] rev 11870
Flake8 bits with some copyright updates
Thu, 24 Nov 2016 16:58:27 +0100 [test] Use plain unittest in unittest_views_forms.py
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 24 Nov 2016 16:58:27 +0100] rev 11869
[test] Use plain unittest in unittest_views_forms.py
Thu, 24 Nov 2016 16:32:14 +0100 Some py3k related fixes: use text_type instead of unicode
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 24 Nov 2016 16:32:14 +0100] rev 11868
Some py3k related fixes: use text_type instead of unicode
Thu, 24 Nov 2016 15:39:52 +0100 [cwctl] Kill deprecated ordered_instances method
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 24 Nov 2016 15:39:52 +0100] rev 11867
[cwctl] Kill deprecated ordered_instances method no need to keep bw compat for this.
Fri, 02 Dec 2016 10:10:58 +0100 [test/cleanup] Use plain unittest 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 02 Dec 2016 10:10:58 +0100] rev 11866
[test/cleanup] Use plain unittest
Fri, 02 Dec 2016 10:10:42 +0100 [test/cleanup] flake8 unittest_rqlannotation.py 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 02 Dec 2016 10:10:42 +0100] rev 11865
[test/cleanup] flake8 unittest_rqlannotation.py
Fri, 25 Nov 2016 13:10:10 +0100 [debian] logilab >= 1.2.2 in requires (only in build depends) 3.24
Arthur Lutz <arthur.lutz@logilab.fr> [Fri, 25 Nov 2016 13:10:10 +0100] rev 11864
[debian] logilab >= 1.2.2 in requires (only in build depends) Related to #16404515.
Fri, 25 Nov 2016 13:07:06 +0100 [debian] move unittest2 to requires not recommends closes #16404515 3.24
Arthur Lutz <arthur.lutz@logilab.fr> [Fri, 25 Nov 2016 13:07:06 +0100] rev 11863
[debian] move unittest2 to requires not recommends closes #16404515
Wed, 23 Nov 2016 17:25:31 +0100 [devtools] named context for boxes subTest for consistency 3.24
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 23 Nov 2016 17:25:31 +0100] rev 11862
[devtools] named context for boxes subTest for consistency
Wed, 23 Nov 2016 18:38:46 +0100 Added tag 3.24.3, debian/3.24.3-1, centos/3.24.3-1 for changeset bb5904cd284e 3.24
David Douard <david.douard@logilab.fr> [Wed, 23 Nov 2016 18:38:46 +0100] rev 11861
Added tag 3.24.3, debian/3.24.3-1, centos/3.24.3-1 for changeset bb5904cd284e
Wed, 23 Nov 2016 18:36:55 +0100 [pkg] 3.24.3 3.24 3.24.3 centos/3.24.3-1 debian/3.24.3-1
David Douard <david.douard@logilab.fr> [Wed, 23 Nov 2016 18:36:55 +0100] rev 11860
[pkg] 3.24.3
Wed, 23 Nov 2016 12:24:04 +0100 [cwconfig] ensure CubicWebNoAppConfiguration returns a typed value (closes #16364459) 3.24
David Douard <david.douard@logilab.fr> [Wed, 23 Nov 2016 12:24:04 +0100] rev 11859
[cwconfig] ensure CubicWebNoAppConfiguration returns a typed value (closes #16364459)
Fri, 18 Nov 2016 18:15:14 +0100 [views/optimization] Makes has_editable_relations predicate less costly by using generator
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 18 Nov 2016 18:15:14 +0100] rev 11858
[views/optimization] Makes has_editable_relations predicate less costly by using generator The `has_editable_relations` predicate is used to say if the 'modify' action should appear. To do so, it checks if anything is editable (ie. something in the attributes, relations or inlined section of the automatic form). This may be costly since it may have to check several permissions. To optimize this a bit, this cset turns list into generator so that we'll avoid unnecessary work as soon as we find a match.
Thu, 17 Nov 2016 11:03:19 +0100 [cwconfig] Trim down allowed exceptions in gettext language setting
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 17 Nov 2016 11:03:19 +0100] rev 11857
[cwconfig] Trim down allowed exceptions in gettext language setting I can't see any valid reason to pass on ImportError and AttributeError. In particular, the latter shadowed a Python 3 error until 4f43e64603ef.
Mon, 21 Nov 2016 14:52:33 +0100 [pkg] Configure "universal" wheel build
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 21 Nov 2016 14:52:33 +0100] rev 11856
[pkg] Configure "universal" wheel build According to https://packaging.python.org/distributing/#wheels, we should create universal wheels (no 2to3 step, no C extension). Configure this in setup.cfg. [ci skip]
Mon, 21 Nov 2016 15:17:32 +0100 [rqlrewrite] Test and fix potential NameError
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 21 Nov 2016 15:17:32 +0100] rev 11855
[rqlrewrite] Test and fix potential NameError We were referencing a loop variable, which may lead to a name error and show a potential error if there are several matching variables. To avoid this, introduce a list to hold every encountered variable and process all of them later.
Wed, 16 Nov 2016 15:55:35 +0100 flake8 uicfg
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 16 Nov 2016 15:55:35 +0100] rev 11854
flake8 uicfg
Wed, 16 Nov 2016 15:52:55 +0100 [uicfg] Remove unpredictability from autoform_section initialization
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 16 Nov 2016 15:52:55 +0100] rev 11853
[uicfg] Remove unpredictability from autoform_section initialization It was attempting to guess smart default values by looking at the opposite relation (neg_role), but depending on the (random) ordering of the schema, it may or may not have been set yet, leading to unpredictable result with varying hash seed. Remove those fuzzy lookup all at once, it may change some (unreliable) things in your app but at least it's still a bit easier to explain. Closes #16272968
Mon, 21 Nov 2016 14:55:27 +0100 [schema/optimization] Wrap rql expressions into EXISTS node when checking individual permissions
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 21 Nov 2016 14:55:27 +0100] rev 11852
[schema/optimization] Wrap rql expressions into EXISTS node when checking individual permissions Some RQL expression may retrieve several results. It makes sense to wrap them into an EXISTS node to optimized things a bit. This is already done by security insertion of 'read' rql expressions.
Fri, 18 Nov 2016 17:44:52 +0100 [views/optimization] Prefetch state'names and comment format in wfhistory component
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 18 Nov 2016 17:44:52 +0100] rev 11851
[views/optimization] Prefetch state'names and comment format in wfhistory component This will avoid later queries to retrieve them.
Fri, 18 Nov 2016 10:28:41 +0100 [devtools] Make timeout error in qunit tests configurable and use SkipTest in test_jscript.py
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 18 Nov 2016 10:28:41 +0100] rev 11850
[devtools] Make timeout error in qunit tests configurable and use SkipTest in test_jscript.py The reason is that the latter tests quite often fail in our CI environment, possibly due to concurrent execution of the browser, and this makes it hard to identify a truly failing build there. So skip tests with a timeout error.
Mon, 21 Nov 2016 14:18:43 +0100 Added tag 3.24.2, debian/3.24.2-1, centos/3.24.2-1 for changeset 296077513782 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 21 Nov 2016 14:18:43 +0100] rev 11849
Added tag 3.24.2, debian/3.24.2-1, centos/3.24.2-1 for changeset 296077513782 And drop erroneous 0.34.2 tag.
Mon, 21 Nov 2016 14:05:37 +0100 Added tag 0.34.2, debian/0.34.2-1, centos/0.34.2-1 for changeset 296077513782 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 21 Nov 2016 14:05:37 +0100] rev 11848
Added tag 0.34.2, debian/0.34.2-1, centos/0.34.2-1 for changeset 296077513782
Mon, 21 Nov 2016 13:47:03 +0100 [pkg] Version 3.24.2 3.24 3.24.2 centos/3.24.2-1 debian/3.24.2-1
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 21 Nov 2016 13:47:03 +0100] rev 11847
[pkg] Version 3.24.2
Mon, 21 Nov 2016 13:44:59 +0100 Merge with 3.23 head 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 21 Nov 2016 13:44:59 +0100] rev 11846
Merge with 3.23 head
Thu, 17 Nov 2016 17:26:49 +0100 [migration] Fix 3.23.0 migration script, broken by a703f00718c2 3.23
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 17 Nov 2016 17:26:49 +0100] rev 11845
[migration] Fix 3.23.0 migration script, broken by a703f00718c2 * first query use "IN" where it should use "=" -> crash * second query is missing an interpolation -> crash * third query is attempting to remove constraint that have already been removed by the second query -> crash
Mon, 21 Nov 2016 09:29:52 +0100 [doc] Add 3.24 release date and reference in index pages 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 21 Nov 2016 09:29:52 +0100] rev 11844
[doc] Add 3.24 release date and reference in index pages [ci skip]
Fri, 18 Nov 2016 17:08:35 +0100 Closing "oldstable" branch oldstable
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 18 Nov 2016 17:08:35 +0100] rev 11843
Closing "oldstable" branch We now release-based branch naming.
Fri, 18 Nov 2016 17:07:43 +0100 Closing "stable" branch stable
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 18 Nov 2016 17:07:43 +0100] rev 11842
Closing "stable" branch We now release-based branch naming.
Fri, 18 Nov 2016 15:42:10 +0100 Merge 3.24 branch
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 18 Nov 2016 15:42:10 +0100] rev 11841
Merge 3.24 branch
Thu, 17 Nov 2016 11:00:01 +0100 [pkg] Bump version to 3.25.0.dev0
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 17 Nov 2016 11:00:01 +0100] rev 11840
[pkg] Bump version to 3.25.0.dev0
Fri, 18 Nov 2016 15:00:43 +0100 Added tag 3.24.1, debian/3.24.1-1, centos/3.24.1-1 for changeset da52fda6f15b 3.24
David Douard <david.douard@logilab.fr> [Fri, 18 Nov 2016 15:00:43 +0100] rev 11839
Added tag 3.24.1, debian/3.24.1-1, centos/3.24.1-1 for changeset da52fda6f15b
Fri, 18 Nov 2016 14:58:58 +0100 [debian] update changelog's time tag 3.24 3.24.1 centos/3.24.1-1 debian/3.24.1-1
David Douard <david.douard@logilab.fr> [Fri, 18 Nov 2016 14:58:58 +0100] rev 11838
[debian] update changelog's time tag
Fri, 18 Nov 2016 13:55:12 +0100 [pyramid] Drop reference to pyramid_cubicweb in ctl command docstring 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 18 Nov 2016 13:55:12 +0100] rev 11837
[pyramid] Drop reference to pyramid_cubicweb in ctl command docstring [ci skip]
Thu, 17 Nov 2016 17:08:29 +0100 [debian] Rework split of cubicweb-ctl package 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 17 Nov 2016 17:08:29 +0100] rev 11836
[debian] Rework split of cubicweb-ctl package It does not appear simple to have the .install files work. So just copy cubicweb-ctl script in DESDIR of cubicweb-ctl binary package and remove .install files. Related to #16133259.
Fri, 18 Nov 2016 09:14:25 +0100 [skeleton] Rephrase long description of Debian package into something meaningful 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 18 Nov 2016 09:14:25 +0100] rev 11835
[skeleton] Rephrase long description of Debian package into something meaningful [ci skip]
Fri, 18 Nov 2016 08:42:10 +0100 [skeleton] Depends on python-cubicweb in debian packaging 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 18 Nov 2016 08:42:10 +0100] rev 11834
[skeleton] Depends on python-cubicweb in debian packaging [ci skip]
Fri, 18 Nov 2016 14:26:03 +0100 [debian] Have a single python-cubicweb binary for the library 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 18 Nov 2016 14:26:03 +0100] rev 11833
[debian] Have a single python-cubicweb binary for the library But keep distinct meta-packages for dependencies of the HTTP server (Twisted/Pyramid) and database backend. Related to #16133259.
Tue, 15 Nov 2016 10:13:47 +0100 [debian] Update debian packaging (closes #16133259) 3.24
David Douard <david.douard@logilab.fr> [Tue, 15 Nov 2016 10:13:47 +0100] rev 11832
[debian] Update debian packaging (closes #16133259) - use dh_python, pybuild and debhelper>=9, - refactor and simplify the debian/rules, - rename binary packages (but cubicweb-ctl) to python-xxx - remove daemon handling stuff (initscripts...) from cubicweb-ctl (one should now use a standard WSGI delivery method),
Thu, 17 Nov 2016 16:03:02 +0100 [pkg] Version 3.24.1 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 17 Nov 2016 16:03:02 +0100] rev 11831
[pkg] Version 3.24.1
Thu, 17 Nov 2016 16:14:21 +0100 [tox] Use `python -m check_manifest` instead of check-manifest program 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 17 Nov 2016 16:14:21 +0100] rev 11830
[tox] Use `python -m check_manifest` instead of check-manifest program To make sure we use Python from tox's virtualenv.
Mon, 14 Nov 2016 16:23:22 +0000 add debian buildpackage-generated files to hgignore 3.24
David Douard <david.douard@logilab.fr> [Mon, 14 Nov 2016 16:23:22 +0000] rev 11829
add debian buildpackage-generated files to hgignore
Tue, 15 Nov 2016 00:12:34 +0100 [test] Fix language negotiation test 3.24
Florent Cayré <florent.cayre@gmail.com> [Tue, 15 Nov 2016 00:12:34 +0100] rev 11828
[test] Fix language negotiation test At least when executed alone (there seems to be a test isolation problem which I could not figure out).
Thu, 10 Nov 2016 18:25:50 +0100 [pyramid] No more need for an internal connection when user is cached 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 10 Nov 2016 18:25:50 +0100] rev 11827
[pyramid] No more need for an internal connection when user is cached
Thu, 10 Nov 2016 18:23:45 +0100 [web] req.lang should be None or a non-empty string 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 10 Nov 2016 18:23:45 +0100] rev 11826
[web] req.lang should be None or a non-empty string
Thu, 17 Nov 2016 10:15:11 +0100 [web] Simplify a bit language handling 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 17 Nov 2016 10:15:11 +0100] rev 11825
[web] Simplify a bit language handling Drop `set_default_language` and `set_user_language` by considering that: * before being bound to the user, request will have the site's default language * cnx has the user's preferred language, hence get it back to the request when it's bound to a connection The first point requires some change to cubicweb's vreg faking so it doesn't break. That should be enough.
Thu, 17 Nov 2016 10:53:04 +0100 Fix AttributeError for "lang" on repo/client connections 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 17 Nov 2016 10:53:04 +0100] rev 11824
Fix AttributeError for "lang" on repo/client connections This is a regression introduced by b48020a80dc3, which removed call to set_language from the `req._set_user` method. This is fine, but we still want a language on connections, so we've to handle it if necesary in Connection.__enter__ (i.e. once connection is properly open). When using pyramid front-end, which has a users cache, we've to cache its language as well because we must not access its preferred_language method since it's not bound to a proper connection.
Thu, 17 Nov 2016 10:47:52 +0100 Alias ugettext to gettext method of cwGNUTranslations in Python 3 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 17 Nov 2016 10:47:52 +0100] rev 11823
Alias ugettext to gettext method of cwGNUTranslations in Python 3 The former does not exist in Python 3, but we rely on it. This fixes test_login_bad_password in cubicweb/pyramid/test/test_login.py which has never passed since being introduced in 6392f34fcdad.
Wed, 16 Nov 2016 14:38:11 +0100 [devctl] make i18n custom message extractors work with legacy layouts 3.24
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Wed, 16 Nov 2016 14:38:11 +0100] rev 11822
[devctl] make i18n custom message extractors work with legacy layouts distname needs to be "cubicweb_<cubename>", even with legacy layouts for pkg.load_entry_point() to work closes #16272177
Wed, 16 Nov 2016 17:12:09 +0100 Fix (new) flake8 errors 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 16 Nov 2016 17:12:09 +0100] rev 11821
Fix (new) flake8 errors They showed up on upgrade of flake8/pep8.
Tue, 15 Nov 2016 11:44:05 +0100 [pyramid] Try "eid" first when retrieving a subresource of ETypeResource 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 15 Nov 2016 11:44:05 +0100] rev 11820
[pyramid] Try "eid" first when retrieving a subresource of ETypeResource So that Pyramid traversal works as existing CubicWeb URL publishing.
Tue, 15 Nov 2016 12:20:02 +0100 Fix AttributeError on postcommit when db-create adds non-system CWSource entities 3.24
Florent Cayré <florent.cayre@logilab.fr> [Tue, 15 Nov 2016 12:20:02 +0100] rev 11819
Fix AttributeError on postcommit when db-create adds non-system CWSource entities In this case, `Repository.add_source` is called from an operation, not from `Repository.init_sources_from_database`, thus the attribute `sources_by_eid` does not exist. Closes #16251078.
Wed, 09 Nov 2016 23:00:00 +0100 [devctl] Optimize cleanup_sys_modules a bit 3.24
Florent Cayré <florent.cayre@gmail.com> [Wed, 09 Nov 2016 23:00:00 +0100] rev 11818
[devctl] Optimize cleanup_sys_modules a bit by moving out of a loop a costly computation that is constant. This at least benefits the `i18ncube` command. Related to #15789486.
Thu, 10 Nov 2016 10:05:14 +0100 [pyramid] Install file listing monitored files in application home 3.24
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 10 Nov 2016 10:05:14 +0100] rev 11817
[pyramid] Install file listing monitored files in application home Instead of using a temporary file, that never gets deleted. Closes #16159807.
Mon, 14 Nov 2016 17:48:10 +0100 [pyramid] Fix login error message language 3.24
Florent Cayré <florent.cayre@logilab.fr> [Mon, 14 Nov 2016 17:48:10 +0100] rev 11816
[pyramid] Fix login error message language Use http negotiation unless language is explicitly set for the site. Closes #16236485.
Mon, 14 Nov 2016 12:26:49 +0100 i18n update 3.24
Florent Cayré <florent.cayre@logilab.fr> [Mon, 14 Nov 2016 12:26:49 +0100] rev 11815
i18n update Pyramid-related messages were not translated. Closes #16236243.
Wed, 09 Nov 2016 11:46:03 +0100 [pyramid] Add action verb used in some messages displayed by the command 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Nov 2016 11:46:03 +0100] rev 11814
[pyramid] Add action verb used in some messages displayed by the command For instance we'll see 'instance started' instead of 'instance None', which is nicer.
Wed, 09 Nov 2016 11:45:19 +0100 [pyramid] No more need to check CW version since it's now shipped with it 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Nov 2016 11:45:19 +0100] rev 11813
[pyramid] No more need to check CW version since it's now shipped with it
Wed, 09 Nov 2016 11:44:27 +0100 [pyramid] Fix 404 handling 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Nov 2016 11:44:27 +0100] rev 11812
[pyramid] Fix 404 handling Avoid seeing a traceback in the UI by catching it before it reaches pyramid and restore usage of the '404' view. Closes #16159863
Wed, 09 Nov 2016 11:42:33 +0100 Fix broken flake8 configuration 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Nov 2016 11:42:33 +0100] rev 11811
Fix broken flake8 configuration and flake8 errors which were hidden by this breakage. flake8 --filename options doesn't work as expected: * it's expected to be a shell pattern, using stdlib's fnmatch.fnmatch function internally. This funciton thinks that 'cubicweb/x.py' doesn't match 'cubicweb/x.py' (there must be a reason but that's not the point), hence no file was actually checked ; * as this is a list of pattern, each encountered file is checked against each pattern, leading to run time explosion. So maintain list of files to check in a separated file and give this list to flake8 using unix's xarg command.
Tue, 30 Jun 2015 10:00:53 +0200 [entities] Fix typo in wfobjs debug message 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Jun 2015 10:00:53 +0200] rev 11810
[entities] Fix typo in wfobjs debug message
Wed, 09 Nov 2016 09:07:42 +0100 [doc] Add my 3.24 release notes 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Nov 2016 09:07:42 +0100] rev 11809
[doc] Add my 3.24 release notes
Tue, 08 Nov 2016 18:37:47 +0100 [migration] Drop cw_schema relation first 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 08 Nov 2016 18:37:47 +0100] rev 11808
[migration] Drop cw_schema relation first without this, we ends up with the traceback shown at https://www.cubicweb.org/ticket/16130960. This is not the proper fix, which I have not been able to find. It seems due to this very rare case of deletion of such relation linked to CWRType vs order of execution of operation (in this case, the operation deleting the entity table is run before some other queries using it). As forcing this relation to be deleted before the entity type fixes the problem while this case seems rare enough, IMO this patch is "good enough". Closes #16130960
Tue, 08 Nov 2016 18:34:22 +0100 [hooks] Delete some properties cached on entities schema on schema updates 3.24
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 08 Nov 2016 18:34:22 +0100] rev 11807
[hooks] Delete some properties cached on entities schema on schema updates cubicweb.schema add two additional @cachedproperty that should be cleared when in-memory schema is modified. This may leads to e.g. attempt to delete some already dropped relations. Related to #16130960
Sun, 06 Nov 2016 16:43:27 +0100 [doc] Add some words in changelog about pyramid support in core + fix its title 3.24
Florent Cayré <florent.cayre@gmail.com> [Sun, 06 Nov 2016 16:43:27 +0100] rev 11806
[doc] Add some words in changelog about pyramid support in core + fix its title Closes #16121152.
Sun, 06 Nov 2016 16:35:57 +0100 [pkg] Fix extra packages not installable 3.24
Florent Cayré <florent.cayre@gmail.com> [Sun, 06 Nov 2016 16:35:57 +0100] rev 11805
[pkg] Fix extra packages not installable For instance `pip install -e ".[pyramid]"` should install the pyramid dependencies. A typo caused all these extra packages to not be found by pip. Closes #16121322.
Fri, 04 Nov 2016 16:45:54 +0100 Added tag 3.24.0, centos/3.24.0-1 for changeset 9f7949b63ab2
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 04 Nov 2016 16:45:54 +0100] rev 11804
Added tag 3.24.0, centos/3.24.0-1 for changeset 9f7949b63ab2
Wed, 02 Nov 2016 10:15:42 +0100 [views] simplify and fix the TreeView (closes #16055814) 3.24.0 centos/3.24.0-1
David Douard <david.douard@logilab.fr> [Wed, 02 Nov 2016 10:15:42 +0100] rev 11803
[views] simplify and fix the TreeView (closes #16055814) Simplify the (internal) TreeView._init_params() method to get rid of the useless 'initial_thru_ajax' argument. The ajax tree view was not working properly when loaded via ajax, for instance from a lazy tab. This was due to the buggy protection against double javascript/ css inclusion, which is no more needed server-side as it is now implemented client-side. Deprecate use of the initial_thru_ajax argument of the TreeView.call() method.
Thu, 13 Oct 2016 15:39:48 +0200 [massive store] remove unused code
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Thu, 13 Oct 2016 15:39:48 +0200] rev 11802
[massive store] remove unused code
Fri, 04 Nov 2016 11:19:29 +0100 Drop a cw 3.24 warning
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 04 Nov 2016 11:19:29 +0100] rev 11801
Drop a cw 3.24 warning
Fri, 04 Nov 2016 11:19:11 +0100 Fix unexpected req.relative_path() when calling CWTC.app_handle_request with path argument
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 04 Nov 2016 11:19:11 +0100] rev 11800
Fix unexpected req.relative_path() when calling CWTC.app_handle_request with path argument The _deprecated_path_arg decorator can not be used in this case, since it won't ensure backward compat if path value has been specified and is not similar as req's path (which is generally the case). This problem has been introduced by 904ee9cd0cf9.
Fri, 04 Nov 2016 13:12:10 +0100 [req,web/request] Move language prefix handling into web request
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 04 Nov 2016 13:12:10 +0100] rev 11799
[req,web/request] Move language prefix handling into web request This changes part of d8830e2bd2e0 by unsetting "lang" attribute of RequestSessionBase in particular (because it appears to break many downstream applications). The new implementation relies on a new "build_url_path" method on RequestSessionBase that is overridden in _CubicWebRequestBase to handle the language prefix in URL. As a consequence build_url in RequestSessionBase is not aware of this prefix anymore (contrary previous implementation from d8830e2bd2e0). Move respected tests from unittest_req.py into unittest_request.py. Commenting out part of test_handle_request_no_lang_negotiation_fixed_language in unittest_application.py because it now fails because of some obscure bug that cannot be resolved at the moment. Related to #15743487.
Fri, 04 Nov 2016 11:57:09 +0100 [test] Use stdlib unittest instead of lgc.testlib in unittest_request.py
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 04 Nov 2016 11:57:09 +0100] rev 11798
[test] Use stdlib unittest instead of lgc.testlib in unittest_request.py
Fri, 04 Nov 2016 11:56:00 +0100 [test] Distinguish "request" tests from accept parser ones in unittest_request.py
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 04 Nov 2016 11:56:00 +0100] rev 11797
[test] Distinguish "request" tests from accept parser ones in unittest_request.py
Fri, 04 Nov 2016 09:21:10 +0100 [pkg] Add setuptools to RPM build requirements
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 04 Nov 2016 09:21:10 +0100] rev 11796
[pkg] Add setuptools to RPM build requirements
Thu, 03 Nov 2016 18:22:47 +0100 [pkg] Version 3.24.0
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 03 Nov 2016 18:22:47 +0100] rev 11795
[pkg] Version 3.24.0
Thu, 03 Nov 2016 15:00:01 +0100 [req,web] Make it possible to handle page language from URL prefix
Laura Médioni <laura.medioni@logilab.fr>, Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 03 Nov 2016 15:00:01 +0100] rev 11794
[req,web] Make it possible to handle page language from URL prefix Adding a short language prefix to URL (like "/en" or "/fr") changes the language the pages are displayed in. This prefix is kept during navigation. This way it is not necessary to do language negotiation, nor to use user preferences to determine which language to apply. This behavior is controlled through a new configuration option "language-mode", which replaces "language-negociation" option and which values may be "http-negotiation", "url-prefix" or "" (to disable language setting and force using "ui.language" property). Migration from previous option is not handled because I could not manage to have it working (users will get prompted with the configuration file diff anyways). Add some tests checking various scenarios. Closes #15743487
Wed, 02 Nov 2016 15:59:39 +0100 [config] fix the load_site_cubicweb() method for to 'new-style' cubes (closes #16059402)
David Douard <david.douard@logilab.fr> [Wed, 02 Nov 2016 15:59:39 +0100] rev 11793
[config] fix the load_site_cubicweb() method for to 'new-style' cubes (closes #16059402) We first try to load the site_cubicweb module from the cubicweb_<cube> package, and if it fails, revert back to old cube path.
Thu, 13 Oct 2016 15:31:02 +0200 [massive store] remove on_commit / on_rollback parameters
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Thu, 13 Oct 2016 15:31:02 +0200] rev 11792
[massive store] remove on_commit / on_rollback parameters No actual use of this was found in client code. If one wants to control this behaviour, he can always override the commit method and add a try / except around flush_entities in its own store
Thu, 13 Oct 2016 15:16:38 +0200 [massive store] master_init should commit by default
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Thu, 13 Oct 2016 15:16:38 +0200] rev 11791
[massive store] master_init should commit by default Default client usage is to create a master store to control slave ones. They need to access cwmassive_initialized from another transaction
Thu, 13 Oct 2016 15:12:33 +0200 [massive store] isolate SQL statements that one may want to customize
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Thu, 13 Oct 2016 15:12:33 +0200] rev 11790
[massive store] isolate SQL statements that one may want to customize i.e. provide public methods for meta data insertions
Thu, 06 Oct 2016 12:12:04 +0200 [massive store] Store entities in temporary table as well
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 06 Oct 2016 12:12:04 +0200] rev 11789
[massive store] Store entities in temporary table as well * on some entity type is encountered by a slave, create a dedicated table for insertion of entities of this type by this slave, similarly to what is done for relation - this should lower changes of conflicts in master/slaves mode ; * delay drop of constraints and indexes to `finish` method, where copy from temporary tables to regular table is done ; * insertion of metadata is done by scanning temporary tables, which may be way shorter than theier associated regular table ; * drop drop_metadata_constraints with its constraint_dropped friend attribute, there are no more necessary since this is done once in the `finish`. Related to #15538303
Tue, 11 Oct 2016 10:24:13 +0200 [massive store] Drop useless check for empty buffer
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 11 Oct 2016 10:24:13 +0200] rev 11788
[massive store] Drop useless check for empty buffer If something went wrong, an error will be raised.
Tue, 11 Oct 2016 10:23:44 +0200 [massive store] Docstring / comment cleanups
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 11 Oct 2016 10:23:44 +0200] rev 11787
[massive store] Docstring / comment cleanups
Tue, 11 Oct 2016 10:23:06 +0200 [massive store] Turn a runtime error into an assertion
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 11 Oct 2016 10:23:06 +0200] rev 11786
[massive store] Turn a runtime error into an assertion geting there is a bug.
Wed, 05 Oct 2016 09:27:25 +0200 [massive store] Delay metadata attributes and default values handling to flush_entities
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 05 Oct 2016 09:27:25 +0200] rev 11785
[massive store] Delay metadata attributes and default values handling to flush_entities This may be done once for all there, instead of for each entity in prepare_insert_entity.
Wed, 05 Oct 2016 09:38:05 +0200 [massive store] Use a slave specific table for relation insertion in the massive store
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 05 Oct 2016 09:38:05 +0200] rev 11784
[massive store] Use a slave specific table for relation insertion in the massive store * attribute a random id to the store * add a column containing this id in the cwmassive_initialized table * separate generic `master_init` which create the cwmassive_initialized table from rtype specific initialization which must be done in each slave now * delay removal of table indexes to `finish` * get back relations from each table on `finish` Similar work still has to be done for entities insertion - which will allow more cleanup to the constraints handling which is still rough for now. Related to #15538303
Tue, 04 Oct 2016 13:14:35 +0200 [massive store] docstring and __init__ cleanup
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 04 Oct 2016 13:14:35 +0200] rev 11783
[massive store] docstring and __init__ cleanup
Tue, 04 Oct 2016 13:14:18 +0200 [massive store] Drop dead code
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 04 Oct 2016 13:14:18 +0200] rev 11782
[massive store] Drop dead code This function is never used
Fri, 30 Sep 2016 17:34:59 +0200 [massive store] Reintroduce methods that are necessary to properly handle master/slave configuration
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 30 Sep 2016 17:34:59 +0200] rev 11781
[massive store] Reintroduce methods that are necessary to properly handle master/slave configuration Related to #15538303
Wed, 28 Sep 2016 09:02:14 +0200 [massive store] Follow configuration of the metadata generator
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 28 Sep 2016 09:02:14 +0200] rev 11780
[massive store] Follow configuration of the metadata generator Don't drop constraints and indexes for tables that are ignored by the metadata generator given to the store. One may now easily disable insertion of e.g. created_by / owned_by by removing them from the MetadataGenerator.META_RELATIONS set, in which case indexes for associated table won't be removed by the massive store.
Mon, 17 Oct 2016 16:53:28 +0200 [dataimport] make MetadataGenerator.META_RELATIONS customizable
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Mon, 17 Oct 2016 16:53:28 +0200] rev 11779
[dataimport] make MetadataGenerator.META_RELATIONS customizable This should be done on the instance rather than on the class
Wed, 28 Sep 2016 08:57:48 +0200 [massive store] Rework constraint/index handling
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 28 Sep 2016 08:57:48 +0200] rev 11778
[massive store] Rework constraint/index handling The basic idea is to keep the primary constraint on entities.eid since it's heavily used in metadata insertions. Other option would have been to drop / recreate but its very costly on big database, and the index is used for insertion into the entities table itself, so it's not worth droping it at a first glance. Also, keeping it avoids to systematically drop all constraints which depends on it. We may thus now lazily drop constraints, only on insertion of some etype/rtype for the related table. Related to #15538359
Tue, 27 Sep 2016 12:02:07 +0200 [massive store] Lazy removal of constraints and metadata indexes
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 27 Sep 2016 12:02:07 +0200] rev 11777
[massive store] Lazy removal of constraints and metadata indexes They should not be removed during store's init, because we may want to query the database with its index between store creation and call to prepare_insert* (e.g. to build the extid2eid map). Along the way: * rename drop_metadata_constraints into drop_metadata_indexes, because that's what it does * rework a bit impacted tests Closes #15538359
Mon, 17 Oct 2016 14:50:47 +0200 [repository] Drop the index on entities.type
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 17 Oct 2016 14:50:47 +0200] rev 11776
[repository] Drop the index on entities.type It should be now only used in maintenance queries in checkintegrity. Those are not worth maintaining it. Closes #15538317
Thu, 06 Oct 2016 12:11:23 +0200 [source] Drop source mapping handling
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 06 Oct 2016 12:11:23 +0200] rev 11775
[source] Drop source mapping handling It was only used by the cwxmlparser which has been deleted. This is too complex for litle benefit, we don't want to maintain that in cubicweb.
Wed, 05 Oct 2016 15:30:10 +0200 [repository] Drop the entities.extid column and associated cache
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 05 Oct 2016 15:30:10 +0200] rev 11774
[repository] Drop the entities.extid column and associated cache This was not necessary anymore with promoted usage of the new data import API. Turn repository's _type_extid_cache to _type_cache with only the entity's type as key. This introduces an backward incompatible change: entity_metas dict doesn't contains anymore the extid key, but it doesn't seem used at all anywhere, so this sounds acceptable. Closes #15538317
Fri, 30 Sep 2016 17:38:12 +0200 [repository] Drop the entities.asource column
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 30 Sep 2016 17:38:12 +0200] rev 11773
[repository] Drop the entities.asource column It not used anymore thanks to previous patches. Closes #15538288
Thu, 29 Sep 2016 22:54:26 +0200 [integrity check] Stop using entities.asource column in integrity checks
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 29 Sep 2016 22:54:26 +0200] rev 11772
[integrity check] Stop using entities.asource column in integrity checks Simply check if entities have a cw_source, and link it to the system source when not found. Related to #15538288
Mon, 17 Oct 2016 13:42:30 +0200 [rql2sql/test] Ensure test results predictability
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 17 Oct 2016 13:42:30 +0200] rev 11771
[rql2sql/test] Ensure test results predictability Without this, test were randomly failing within tox due to different order of solutions.
Thu, 06 Oct 2016 21:17:01 +0200 [rql2sql] Stop generating SQL query from RQL using entities.type
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 06 Oct 2016 21:17:01 +0200] rev 11770
[rql2sql] Stop generating SQL query from RQL using entities.type This was necessary in the "true multi-sources" time, it's not anymore, while maintaining this index is costly. Related to #15538317
Tue, 11 Oct 2016 10:30:59 +0200 [test] Remove some usages of lgc.testlib
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 11 Oct 2016 10:30:59 +0200] rev 11769
[test] Remove some usages of lgc.testlib
Thu, 06 Oct 2016 21:14:49 +0200 [test] Avoid pytest discovery warnings
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 06 Oct 2016 21:14:49 +0200] rev 11768
[test] Avoid pytest discovery warnings Having TestServerConfiguration and alike in the test module namespace causes pytest discovery errors, because it thinks it's a test class.
Fri, 30 Sep 2016 18:25:08 +0200 flake8 and all
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 30 Sep 2016 18:25:08 +0200] rev 11767
flake8 and all * update some copyright * drop most __docformat__ declaration * fix some flake8 warnings / errors
Wed, 05 Oct 2016 15:28:43 +0200 [schema2sql] Drop deprecated comment
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 05 Oct 2016 15:28:43 +0200] rev 11766
[schema2sql] Drop deprecated comment
Sat, 01 Oct 2016 11:56:27 +0200 [cnx] Use entity_type instead of entity_metas()['type']
Sylvain Thénault <sylvain.thenault@logilab.fr> [Sat, 01 Oct 2016 11:56:27 +0200] rev 11765
[cnx] Use entity_type instead of entity_metas()['type'] The latter is deprecated in favor of the former which has been introduced on cnx to replace it.
Thu, 06 Oct 2016 12:15:50 +0200 [entity] Reimplement and deprecate entity.cw_metainformation
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 06 Oct 2016 12:15:50 +0200] rev 11764
[entity] Reimplement and deprecate entity.cw_metainformation It shouldn't rely anymore on cnx.entity_metas which is itself deprecated, and the cw_metainformation API is similarly not needed anymore, access directly to cwuri / cw_source if needed. Related to #15538288
Fri, 30 Sep 2016 17:39:17 +0200 [repository] Drop type_and_source_from_eid and rename related cache
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 30 Sep 2016 17:39:17 +0200] rev 11763
[repository] Drop type_and_source_from_eid and rename related cache We don't want to handle anymore the entities.asource column so we shouldn't use those anymore. Also rename repository's _type_source_cache into _type_extid_cache as this is what it's containing now. Do similar renaming to the system source API. Related to #15538288
Fri, 30 Sep 2016 17:34:11 +0200 [entity] Stop returning source information in cw_metainformation()
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 30 Sep 2016 17:34:11 +0200] rev 11762
[entity] Stop returning source information in cw_metainformation() We should not need that. It has been introduced to handle things we should not do and probably don't do anymore (e.g. attempting to grasp recursive import of several sites). Related to #15538288.
Fri, 30 Sep 2016 17:04:42 +0200 [json] Stop serializing cw_source into default json representation of an entity
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 30 Sep 2016 17:04:42 +0200] rev 11761
[json] Stop serializing cw_source into default json representation of an entity Related to #15538288
Thu, 29 Sep 2016 23:11:38 +0200 Drop deprecated LDAP related script
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 29 Sep 2016 23:11:38 +0200] rev 11760
Drop deprecated LDAP related script both are relying on the 'entities.source' column which has been dropped in 3.19. They have been written with the old ldapsource in mind, which has been dropped at that time.
Fri, 30 Sep 2016 17:18:15 +0200 [entity] Stop linking to external site for external entities
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 30 Sep 2016 17:18:15 +0200] rev 11759
[entity] Stop linking to external site for external entities This behaviour was ok when we had "true" multi-sources but its rather painful with datafeed sources. Also, it makes absolute_url() costlier than what it should. Besides, it relies on cw_metainformation()['source'] that is pending for removal. Instead, add a link to the original object in the metadata view (the one that displays eid and source at the bottom right corner of the primary view). Related to #15538288.
Thu, 29 Sep 2016 22:23:16 +0200 [datafeed] Drop entity deletion handling in the default source / parser
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 29 Sep 2016 22:23:16 +0200] rev 11758
[datafeed] Drop entity deletion handling in the default source / parser This should be handled by specific parser to avoid using "entities.asource". Reimplement it in the ldap parser. Related to #15538288
Thu, 29 Sep 2016 11:44:19 +0200 [sources] Drop 'moved_entities' table handling
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 29 Sep 2016 11:44:19 +0200] rev 11757
[sources] Drop 'moved_entities' table handling This was clumsy and could be handled using exturi / cwsource, as the ldap source now does.
Fri, 30 Sep 2016 17:36:40 +0200 [repository] Drop deprecated extid2eid API and friends
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 30 Sep 2016 17:36:40 +0200] rev 11756
[repository] Drop deprecated extid2eid API and friends This will break cwxmlparser based sources. They should be rewritten using a specific parser, based on xml representation or on rqlio. This is harsh but allows a so big cleanup of the code base. Furthermore, it's necessary for asource/extid handling in the entities table which is costly for most app that don't care at all about that... In this cset, delete: * all extid2eid methods * repo._extid_cache handling * [before/after]_entity_insertion source callback * the cwxmlparser and update related tests, notably unittest_datafeed where 'repull' testing has been removed, since it's now handled by the dataimport API and should not be retested there. Related to #15538288 Closes #15538383
Fri, 30 Sep 2016 17:36:02 +0200 [ldap] Stop using entities table in ldap source authentication and parser
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 30 Sep 2016 17:36:02 +0200] rev 11755
[ldap] Stop using entities table in ldap source authentication and parser We may used cwuri for the same purpose, and do one more step towards deletion of entities.extid column. Related to #15538288
Wed, 26 Oct 2016 11:24:57 +0200 [test] Use stdlib unittest in unittest_webconfig.py
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 26 Oct 2016 11:24:57 +0200] rev 11754
[test] Use stdlib unittest in unittest_webconfig.py
Thu, 03 Nov 2016 12:15:42 +0100 [tox] Require ldap3 < 2 for server tests
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 03 Nov 2016 12:15:42 +0100] rev 11753
[tox] Require ldap3 < 2 for server tests Apparently we are using some constants that got dropped/moved in ldap3 >= 2.0.0 (which came out last week). So stay with version 1.4 until this gets sorted out.
Wed, 02 Nov 2016 11:11:01 +0100 [setup] fix CWDevelop to keep compat with python 2.7
David Douard <david.douard@logilab.fr> [Wed, 02 Nov 2016 11:11:01 +0100] rev 11752
[setup] fix CWDevelop to keep compat with python 2.7 in Python, 2.7, setuptools.command.develop.develop is an old style class, thus it cannot be called with super.
Wed, 26 Oct 2016 08:34:34 +0200 [devtools] Make dependency on backports.tempfile (Python2) optional
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 26 Oct 2016 08:34:34 +0200] rev 11751
[devtools] Make dependency on backports.tempfile (Python2) optional The package may not be available in all systems (e.g. no Debian package exist at the moment), and we should not crash with ImportError when importing testlib from client code. Follow up on a6dc650bc230 where the dependency was introduced.
Wed, 28 Sep 2016 22:17:36 +0200 [sources] Drop source support_entity / support_relation source API
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 28 Sep 2016 22:17:36 +0200] rev 11750
[sources] Drop source support_entity / support_relation source API this was used in the pre-datafeed area, it's not worth it anymore. Its only valid usage was in authentication to detect if the source was supporting CWUser, hence we now call it systematically and catch NotImplementedError.
Fri, 30 Sep 2016 18:24:17 +0200 [dataimport] Add a new NullStore
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 30 Sep 2016 18:24:17 +0200] rev 11749
[dataimport] Add a new NullStore This is useful to do some import tests where you only want to test steps prior to the database insertion, as well as "dry-run" commands. Use it as a documenting base class.
Fri, 30 Sep 2016 17:03:33 +0200 [devtools] Properly reraise the exception
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 30 Sep 2016 17:03:33 +0200] rev 11748
[devtools] Properly reraise the exception with previous implementation, the original exception wasn't visible in python 2.
Mon, 24 Oct 2016 14:41:36 +0200 [pkg] Do not install sql scripts in <prefix>/share/cubicweb/schemas
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 24 Oct 2016 14:41:36 +0200] rev 11747
[pkg] Do not install sql scripts in <prefix>/share/cubicweb/schemas These are already site-packages along with cubicweb package.
Mon, 24 Oct 2016 10:08:36 +0200 [devtools/qunit] Retain firefox process stdout to eventually print it
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 24 Oct 2016 10:08:36 +0200] rev 11746
[devtools/qunit] Retain firefox process stdout to eventually print it The bare RuntimeError that gets emitted upon timeout does not help much to diagnose the problem. Let's see if we can get more information from stdout by not dropping it.
Mon, 24 Oct 2016 09:45:38 +0200 [devtools/qunit] Turn FirefoxHelper into a context manager
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 24 Oct 2016 09:45:38 +0200] rev 11745
[devtools/qunit] Turn FirefoxHelper into a context manager So that stop() method always gets called. Also ensure temporary directory created on __init__ gets deleted as well upon exit.
Mon, 24 Oct 2016 09:31:55 +0200 [test] Replace logilab-common's with_tempdir by tempfile.TemporaryDirectory
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 24 Oct 2016 09:31:55 +0200] rev 11744
[test] Replace logilab-common's with_tempdir by tempfile.TemporaryDirectory logilab-common's with_tempdir decorator, which is considered harmful (see https://www.logilab.org/ticket/8267966). Rely on backports.tempfile to provide TemporaryDirectory on Python 2. Re-export it in testlib module for convenience.
Mon, 24 Oct 2016 09:29:08 +0200 [test] Use `with open` syntax in cwconfig "prefix" tests
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 24 Oct 2016 09:29:08 +0200] rev 11743
[test] Use `with open` syntax in cwconfig "prefix" tests
Mon, 24 Oct 2016 09:02:53 +0200 [test] Use stdlib unittest.main() in qunit
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 24 Oct 2016 09:02:53 +0200] rev 11742
[test] Use stdlib unittest.main() in qunit
Tue, 16 Aug 2016 16:00:32 +0200 [web] Clear "pending_others" session key after all relations got processed
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 16 Aug 2016 16:00:32 +0200] rev 11741
[web] Clear "pending_others" session key after all relations got processed The RelationField appends data to "pending_others" key while processing its posted information, but this key may already have been removed by the edit controller. So remove the key from session data only when all "others" relations have been processed using a while loop. A test case would be nice, but I could not build one easily unfortunately. Closes #4354551.
Wed, 28 Sep 2016 11:06:28 +0200 [datafeed] Complete the import log even if parser could not be found
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 28 Sep 2016 11:06:28 +0200] rev 11740
[datafeed] Complete the import log even if parser could not be found It happens that if the parser could not be found, _pull_data() would just return an empty dict without taking care to close the import log which it just opened. This leads to misleading information in the user interface where CWDataImport entities kept accumulating in the "imports" tab of CWSource primary view without anything else happening. So: * log an error message when parser cannot be found * always close (write logs and set "end_timestamp" attribute) import log when leaving _pull_data(). Closes #15505460.
Fri, 21 Oct 2016 18:03:06 +0200 [twconfig] Set default value for "interface" to 0.0.0.0
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 21 Oct 2016 18:03:06 +0200] rev 11739
[twconfig] Set default value for "interface" to 0.0.0.0 This value means "all IP addresses on this host", which seems to fit with "default to everywhere" that's documented. Closes #15135610.
Wed, 12 Oct 2016 17:03:02 +0200 [session] Allow self._open to be False in __enter__
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 12 Oct 2016 17:03:02 +0200] rev 11738
[session] Allow self._open to be False in __enter__ I do not understand why this assertion was there in the first place. And currently, it makes running any migration impossible. Hopefully, someone may be able to explain. See also commit b48020a80dc3 which mentions this assertion and suggests to remove it.
Fri, 21 Oct 2016 18:35:46 +0200 [pkg] Warn about "develop" command not installing legacy cubes directory
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 21 Oct 2016 18:35:46 +0200] rev 11737
[pkg] Warn about "develop" command not installing legacy cubes directory Not sure we can do better than a warning, which is better than nothing anyways. Closes #15785635.
Fri, 21 Oct 2016 18:43:13 +0200 [pkg] Cleanup MANIFEST.in from non-matching entries
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 21 Oct 2016 18:43:13 +0200] rev 11736
[pkg] Cleanup MANIFEST.in from non-matching entries This cleans up output of setup.py executions.
Fri, 21 Oct 2016 18:10:15 +0200 [devtools] make i18ncube customizable in a cube
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Fri, 21 Oct 2016 18:10:15 +0200] rev 11735
[devtools] make i18ncube customizable in a cube closes #15613724
Tue, 27 Sep 2016 12:28:39 +0200 [rql2sql] Drop deprecated __docformat__
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 27 Sep 2016 12:28:39 +0200] rev 11734
[rql2sql] Drop deprecated __docformat__ it causes flake8 error on some of its versions.
Thu, 22 Sep 2016 16:21:51 +0200 [rql2sql] Handle comparison of eid on variables from an subquery
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 22 Sep 2016 16:21:51 +0200] rev 11733
[rql2sql] Handle comparison of eid on variables from an subquery We don't want to force using 'identity' in this case which may be easily handled by detecting variable is a `ColumnAlias` and relation is 'eid'. Closes #15393583
Wed, 01 Jun 2016 17:04:33 +0200 Take care that cnx may not be set in error view
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 01 Jun 2016 17:04:33 +0200] rev 11732
Take care that cnx may not be set in error view
(0) -10000 -3000 -1000 -224 +224 tip