Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Feb 2017 17:45:50 +0100] rev 11980
[server] Replace server config's init_cnxset_pool attribute by a "bootstrap" parameter in Repository
This 'init_cnxset_pool' class attribute is actually used to control whether a
Repository instance should be "bootstraped" (see Repository.init_cnxset_pool()
for a definition of "bootstrap") or not. I seems clearer to me to have this
controlled by a boolean "bootstrap" initialization parameter in Repository.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Feb 2017 17:38:47 +0100] rev 11979
[server] Drop close/open steps in NativeSQLSource.restore()
The only place where this is called is in
ServerMigrationHelper.restore_database() where config.init_cnxset_pool is set
to False. So these steps appear to be useless.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 07 Feb 2017 10:37:37 +0100] rev 11978
[skel] Fix rpm's .spec file skeleton
It's broken for new-style packages since it doesn't consider (even remove) python packages.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Feb 2017 17:36:11 +0100] rev 11977
[server] Move "starting repository..." message where this actually happens
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Feb 2017 17:34:37 +0100] rev 11976
[server] Initialize Repository without a tasks manager in ServerMigrationHelper.restore_database()
We don't need a tasks manager here I think. Thus instantiate the Repository
from its class directly instead of using config.repository() which set a tasks
manager.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Feb 2017 17:34:12 +0100] rev 11975
[server] Fix a typo in log message in Repository.init_cnxset_pool()
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 24 Feb 2017 09:19:35 +0100] rev 11974
[cwconfig] Issue a warning if a configuration module cannot be loaded
We already do this when loading ctl plugin modules, so make things symmetrical
for config modules.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 24 Feb 2017 09:18:08 +0100] rev 11973
[ctl] Load available configurations in "cubicweb-ctl list"
Otherwise we rely on associated ctl plugins to be loaded which is arguably orthogonal to
configurations.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Feb 2017 08:54:01 +0100] rev 11972
[skeleton] Set cubicweb.bwcompat to False in development.ini
Quite a few things from the default web UI do not work when running the
application through pserve (in particular, data files are not apparently
served). So better disable the "bwcompat" mode until we are sure it works
properly (or it gets dropped ;)).
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Feb 2017 17:41:32 +0100] rev 11971
[pyramid] Use existing repo in PyramidCWTest
We thus do not make use of config_from_cwconfig() and build the configurator
instance by hand prior to include 'cubicweb.pyramid'.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Feb 2017 17:35:16 +0100] rev 11970
[pyramid] Make it possible to setup CubicWeb instance from an existing repo in includeme()
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Feb 2017 17:42:46 +0100] rev 11969
[pyramid] Move loading of pyramid_debugtoolbar later in includeme()
To gather cwconfig and repository instantiations.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Feb 2017 08:54:20 +0100] rev 11968
[skeleton,pyramid] Move pyramid app definition in cubicweb.pyramid module
The application definition is actually not specific to the final "cube" being
bootstrapped from skeleton. This patch thus move the pyramid application
function into cubicweb.pyramid module and let cubicweb register the
"paste.app_factory" entry point (instead of the bootstrapped cube).
Useless call to `config.scan` is dropped along the way.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 10 Feb 2017 17:13:44 +0100] rev 11967
[pyramid] Add a copyright and docstring to all modules
We add copyright statements for both UNLISH (original author) and LOGILAB.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 08 Feb 2017 17:54:16 +0100] rev 11966
[cwconfig] Strip "cubicweb_" prefix from cube name in available_cubes()
Closes #17054738.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 21 Feb 2017 10:12:47 +0100] rev 11965
[web] fix os.rename usage on windows when destination exists
os.rename on windows will raise OSError (or WindowsError subclass) when if
destination file already exists.
Also check that exception is EEXIST.
There is an attempt to fix in f6ba947c but using IOError instead of OSError.
Closes #14214794
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 25 Jan 2017 14:28:20 +0100] rev 11964
[web/views] show composite entities in delete view
Disabled by default, can be activated with show_composite = True Display first
level of composite entities in a treeview, limited to the current
(page_size - 1), so the maximum of displayed entities bump to
page_size * (page_size - 1).
Christophe de Vienne <christophe@unlish.com> [Mon, 11 May 2015 13:57:34 +0200] rev 11963
[workflow] Utilities for declarative definition of workflows
Closes #5337897
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 20 Feb 2017 15:56:07 +0100] rev 11962
[server] Remove pseudo-handling of exceptions in Repository._delete_cascade_multi()
It seems to me that we never want to pass on an exception here be it in "test"
mode or not, so remove the last `except Exception:` clause. For instance, the
actual implementation would pass on an IntegrityError and thus possibly hide
it in a log message.
Concerning the `except Unauthorized:`, as said by the log message this should
not happen because we are within a `security_enabled(write=False)` context. So
remove it as well.
As far as I can tell, this strange handling of exceptions dates from
37668bf302f5 and there is no clear justification to it.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 21 Feb 2017 10:12:47 +0100] rev 11961
[web] fix os.rename usage on windows when destination exists
os.rename on windows will raise OSError (or WindowsError subclass) when if
destination file already exists.
Also check that exception is EEXIST.
There is an attempt to fix in f6ba947c but using IOError instead of OSError.
Closes #14214794
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 09 Feb 2017 10:31:15 +0100] rev 11960
[skeleton] Add "cubicweb.session.secret" to development.ini
Commented as other "secret" settings.
At least, now all settings are present in the development.ini file.
[ci skip]
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 10 Feb 2017 16:55:23 +0100] rev 11959
[pyramid] Include 'cubicweb.pyramid.predicates' where it is used
It's only used in "rest_api" module.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 10 Feb 2017 16:33:16 +0100] rev 11958
[pyramid] Rename make_cubicweb_application function as config_from_cwconfig
And update its docstring.
This function does not actually "make a cubicweb application", it just builds
a pyramid.config.Configurator instance from a CubicWeb config object.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 08 Feb 2017 17:49:25 +0100] rev 11957
[server] Reprase messages of db-check to avoid using "system" and "sources"
And rather mention "entity type table" and "entities" table, which are
clearer references.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 20 Feb 2017 16:39:07 +0100] rev 11956
[predicates] Fix reference to has_related_entities in partial_has_related_entities docstring
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.
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
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 06 Feb 2017 15:43:19 +0100] rev 11953
[server] Ignore computed relations in "relations" integrity checker
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.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 07 Feb 2017 18:18:22 +0100] rev 11951
[doc] Add 3.25 release notes
[ci skip]
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).
Florent Cayré <florent.cayre@logilab.fr> [Thu, 02 Feb 2017 14:58:39 +0100] rev 11949
[js] Fix loading image URL
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.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 03 Feb 2017 13:37:32 +0100] rev 11947
Merge 3.24.5 into default branch
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.
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
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.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 27 Jan 2017 13:36:00 +0100] rev 11943
[dataimport] Fix "existing_relations" parameter name in ExtEntitiesImporter
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
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
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 31 Jan 2017 10:41:04 +0100] rev 11940
Prepare 3.24.5
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.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 30 Jan 2017 18:14:45 +0100] rev 11938
[migration] Stop asking confirm to commit
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.
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.
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.
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
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.
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
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.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 27 Jan 2017 15:53:15 +0100] rev 11930
[pkg] Fix some error on building documentation
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 27 Jan 2017 16:26:09 +0100] rev 11929
Merge 3.24.4 into default branch
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
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 27 Jan 2017 13:30:24 +0100] rev 11927
Prepare 3.24.4
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.
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
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
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).
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.
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.
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.
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.
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.
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.
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)
Alain Leufroy <alain@leufroy.fr> [Tue, 12 May 2015 22:14:24 +0200] rev 11915
[test] add some tests to web.views.baseviews
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.
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.
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.
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.
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
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.
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.
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
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.
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.
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.
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.
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
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.
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().
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
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).
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.
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
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
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.
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.
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.
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.
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
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Wed, 14 Dec 2016 13:34:08 +0100] rev 11889
[doc/book] fix error in markup
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
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Nov 2016 16:08:23 +0100] rev 11887
[test] Use bare unittest in unittest_rtags
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Nov 2016 16:07:10 +0100] rev 11886
[rtags] Docstring fix
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Nov 2016 16:05:06 +0100] rev 11885
[cleanup] flake8 rtags.py
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.
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)
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]
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.
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.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 07 Dec 2016 14:13:20 +0100] rev 11879
Merge public heads
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.
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.
Rémi Cardona <remi.cardona@logilab.fr> [Fri, 04 Sep 2015 18:05:51 +0200] rev 11876
[web/tests] Hide DeprecationWarnings
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.
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.
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.
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)
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.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 24 Nov 2016 16:58:50 +0100] rev 11870
Flake8 bits with some copyright updates
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
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
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.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 02 Dec 2016 10:10:58 +0100] rev 11866
[test/cleanup] Use plain unittest
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 02 Dec 2016 10:10:42 +0100] rev 11865
[test/cleanup] flake8 unittest_rqlannotation.py
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.
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
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 23 Nov 2016 17:25:31 +0100] rev 11862
[devtools] named context for boxes subTest for consistency
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
David Douard <david.douard@logilab.fr> [Wed, 23 Nov 2016 18:36:55 +0100] rev 11860
[pkg] 3.24.3
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)
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.
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.
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]
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.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 16 Nov 2016 15:55:35 +0100] rev 11854
flake8 uicfg
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
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.
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.
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.
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.
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
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 21 Nov 2016 13:47:03 +0100] rev 11847
[pkg] Version 3.24.2
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 21 Nov 2016 13:44:59 +0100] rev 11846
Merge with 3.23 head
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
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]
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.
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.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 18 Nov 2016 15:42:10 +0100] rev 11841
Merge 3.24 branch
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 17 Nov 2016 11:00:01 +0100] rev 11840
[pkg] Bump version to 3.25.0.dev0
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
David Douard <david.douard@logilab.fr> [Fri, 18 Nov 2016 14:58:58 +0100] rev 11838
[debian] update changelog's time tag
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]
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.
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]
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]
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.
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),
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 17 Nov 2016 16:03:02 +0100] rev 11831
[pkg] Version 3.24.1
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.
David Douard <david.douard@logilab.fr> [Mon, 14 Nov 2016 16:23:22 +0000] rev 11829
add debian buildpackage-generated files to hgignore
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).
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
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
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Jun 2015 10:00:53 +0200] rev 11810
[entities] Fix typo in wfobjs debug message
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 09 Nov 2016 09:07:42 +0100] rev 11809
[doc] Add my 3.24 release notes
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
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
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.
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.
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
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.
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Thu, 13 Oct 2016 15:39:48 +0200] rev 11802
[massive store] remove unused code
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 04 Nov 2016 11:19:29 +0100] rev 11801
Drop a cw 3.24 warning
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.
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.
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
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
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 04 Nov 2016 09:21:10 +0100] rev 11796
[pkg] Add setuptools to RPM build requirements
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 03 Nov 2016 18:22:47 +0100] rev 11795
[pkg] Version 3.24.0
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
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.
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
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
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
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
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.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 11 Oct 2016 10:23:44 +0200] rev 11787
[massive store] Docstring / comment cleanups
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.
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.
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
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 04 Oct 2016 13:14:35 +0200] rev 11783
[massive store] docstring and __init__ cleanup
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
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
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.
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
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
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
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
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.
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
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
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
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.
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
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 11 Oct 2016 10:30:59 +0200] rev 11769
[test] Remove some usages of lgc.testlib
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.
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
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 05 Oct 2016 15:28:43 +0200] rev 11766
[schema2sql] Drop deprecated comment
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.
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
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
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.
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
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.
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.
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
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.
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
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
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 26 Oct 2016 11:24:57 +0200] rev 11754
[test] Use stdlib unittest in unittest_webconfig.py
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 24 Oct 2016 09:02:53 +0200] rev 11742
[test] Use stdlib unittest.main() in qunit
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.
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.
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.
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.
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.
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.
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
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.
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
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
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 12 Oct 2016 10:59:18 +0200] rev 11731
[autoform] Ease overriding of inlined form renderer. Closes #15755515
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 19 Oct 2016 15:58:30 +0200] rev 11730
[ldapfeed] Use new MetadataGenerator api instead of deprecated MetaGenerator
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 19 Oct 2016 10:21:12 +0200] rev 11729
Fix typos
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Mon, 10 Oct 2016 14:27:24 +0200] rev 11728
[devctl] make sure i18ncube always delete its tempdir
closes #15613724
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Mon, 10 Oct 2016 14:34:41 +0200] rev 11727
i18ncube should ignore node_modules directory by default
related to #15613724
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Wed, 05 Oct 2016 16:16:33 +0200] rev 11726
refactor i18n messages extraction
This refactoring will ease later implementation of
i18n cube customization.
related to #15613724
Laura Médioni <laura.medioni@logilab.fr> [Fri, 21 Oct 2016 13:09:47 +0200] rev 11725
[web/application] remove `path` argument from CubicwebPublisher methods
Path can actually be accessed from `req` object. This allows to avoid duplicating
this information.
This cset prepares the next ones that aim at adding the language as a prefix of the
relative path.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 20 Oct 2016 18:28:46 +0200] rev 11724
Merge 3.23 branch
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 20 Oct 2016 18:45:40 +0200] rev 11723
[pkg] Fix recursive-include missing a "*" in MANIFEST.in
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 19 Oct 2016 22:31:32 +0200] rev 11722
Added tag 3.23.2, centos/3.23.2-1, debian/3.23.2-1 for changeset 8b287ad7b95b
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 19 Oct 2016 19:29:24 +0200] rev 11721
Release 3.23.2
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 19 Oct 2016 21:08:04 +0200] rev 11720
[test] Add test method required by d41832121b29
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 19 Oct 2016 15:57:52 +0200] rev 11719
[ldapfeed] Fix crash when user's password has to be generated
Binary isn't hashable hence can't be added to a set. Test added.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 19 Oct 2016 15:56:35 +0200] rev 11718
[test/ldapfeed] Drop unused constant
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 08 Jul 2016 10:17:14 +0200] rev 11717
[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.
Grafted from f87da59faea1 in default branch.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 05 Oct 2016 10:12:23 +0200] rev 11716
[skeleton] Properly format debian/changelog using current datetime and author information
Reformat "context" dict to have it PEP8 compliant along the way (only white
space changes).
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 12 Oct 2016 11:07:10 +0200] rev 11715
[utils] Encode Binary value in base64 for JSON export
In unittest_utils.py, use unittest2's TestCase instead of lgc.testlib one to
benefit from subTest API.
Closes #15409885.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 12 Oct 2016 11:09:08 +0200] rev 11714
[test] Make cubicweb/test/unittest_utils.py flake8-clean
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 07 Oct 2016 14:59:44 +0200] rev 11713
[skeleton] Set Debian distribution to "UNRELEASED" in changelog
So to as to make it clear that changelog needs to be edited
before the Debian package may be published.
Florent Cayré <florent.cayre@logilab.fr> [Thu, 13 Oct 2016 12:51:12 +0200] rev 11712
Fix log level parameter not taken into account in cwsource log table
An error in the jquery selector of the html widget controlling the log
level was the cause of this bug.
Closes #15772634
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 11 Oct 2016 14:48:27 +0200] rev 11711
[config] Ignore cubicweb-pyramid in available_cubes()
So that, in particular, its ccplugin.py does not get loaded (which would hide
the "pyramid" command in cubicweb).
Related to #14023058.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 06 Oct 2016 12:15:43 +0200] rev 11710
[config] Exclude "pyramid" cube when initializing application cubes
Related to #14023058.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 05 Oct 2016 16:20:52 +0200] rev 11709
[migration] Drop cubicweb-pyramid CWProperty in 3.24.0 migration
This does a partial "drop_cube('pyramid')" equivalent but only considering
CWProperty. We cannot just drop the cube since we have introduced some
mechanism to exclude pyramid cube from config's cubes list and that would make
MigrationHelper.cmd_drop_cube() call not return "pyramid" cube.
Related to #14023058.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 28 Sep 2016 08:48:20 +0200] rev 11708
[dataimport/test] Use minimal schema for massive import tests
Drop unused stuff.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 27 Sep 2016 12:23:19 +0200] rev 11707
[massive store] Drop deprecated code
This is not a desired part of the store API. Mapping between extid and eid
should be done by the importer.
This had been backported from the dataio cube, but not one seems to rely on it
yet, so don't provide any backward compat.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 27 Sep 2016 12:01:24 +0200] rev 11706
[flake8] cubicweb/dataimport/test/test_massive_store.py is now flake8 friendly
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 27 Sep 2016 12:00:42 +0200] rev 11705
[massive store] Drop buggy log call
PGHelper has no logger, the store has.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 27 Sep 2016 12:00:17 +0200] rev 11704
[massive store] Drop duplicated log
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 27 Sep 2016 11:23:51 +0200] rev 11703
[flake8] cubicweb/server/rqlannotation.py is now flake8 friendly
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 06 Oct 2016 14:25:18 +0200] rev 11702
[pyramid] Override cubicweb.hooks.syncsession.get_user_sessions() for Pyramid
Closes #13436818
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 06 Jun 2016 15:37:01 +0200] rev 11701
[pyramid] Retrieve user's groups using a custom RQL instead of user's groups property
With cubicweb 3.24, user.groups is set lazily and so retrieving it at this point
will cause a traceback because the connection is not yet entered.
Also, user doesn't accept anymore groups and properties arguments.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 06 Jun 2016 16:08:03 +0200] rev 11700
[hooks] Change get_user_sessions prototype, necessary for hijacking from other session implementations (e.g. pyramid)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 06 Jun 2016 15:26:49 +0200] rev 11699
Store user groups and properties as session data
* stop retrieving them systematically, only when need,
* reimplement session synchronization hooks with some cleanups along the way,
* cleanup call to set language: not needed from the base request nor from the
server side, only for the web request (on the server side, language is
necessary only for notification and such code should set it explicitly).
There is still a XXX remaining about one can only "enter" a connection once and
this is a problem in some cases. IMO, this restriction could be removed.
Closes #13500113.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 05 Oct 2016 10:17:39 +0200] rev 11698
[skeleton] Remove override_dh_python2
We do not ship files as "data files" anymore.
Related to #13001466.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 05 Oct 2016 09:56:26 +0200] rev 11697
[skeleton] Have setuptools install data files
Just add `include_package_data=True` as recommended by
`setuptools documentation`_ as this appears to be the simplest way to handle
this.
Related to #13001466.
.. _`setuptools documentation`: \
http://setuptools.readthedocs.io/en/latest/setuptools.html#including-data-files
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 05 Oct 2016 09:52:02 +0200] rev 11696
[skeleton] Update MANIFEST.in following new "package" layout
Related to #13001466.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 05 Oct 2016 09:32:25 +0200] rev 11695
[skeleton] Add python-setuptools to Debian Build-Depends
Related to #13001466.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 05 Oct 2016 09:26:59 +0200] rev 11694
[skeleton] Add dh-python to Debian Build-Depends
Related to #13001466.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 05 Oct 2016 09:23:07 +0200] rev 11693
[skeleton] Copy files mode bits (debian/rules in particular)
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 05 Oct 2016 08:55:02 +0200] rev 11692
[skeleton] Do not exclude setup.py from flake8 check in tox.ini
The file is flake8 compliant, actually.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 04 Oct 2016 11:04:34 +0200] rev 11691
Merge public heads
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 26 Sep 2016 10:42:19 +0200] rev 11690
[doc] Document configuration override by environment variables
Related to #13889793.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 26 Sep 2016 10:32:44 +0200] rev 11689
[doc] Update book sections about cubes being Python packages
Related to #1300146006.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 26 Sep 2016 09:57:15 +0200] rev 11688
[doc] Start filling changes/3.24.rst with recent changes
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 26 Sep 2016 10:17:10 +0200] rev 11687
[doc] Drop commented mention of "live-server" command
Follow-up for d83676aaea21.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 26 Sep 2016 18:21:43 +0200] rev 11686
[pyramid] Drop guard of old cubicweb version
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 26 Sep 2016 18:20:53 +0200] rev 11685
[pkg] Declare extras (optional) dependencies
This is primary to extract "pyramid" dependencies out of install_requires
as they are actually optional. Along the way, resurrect all things in
__pkginfo__.__recommends__ which were not used at all and convert them
into extra_requires.
It appears that __depends__ and __recommends__ in __pkginfo__.py are
not useful so drop them and inline dependencies as
install_requires/extra_requires in setup function call.
For pyramid tests to continue working, add respective dependencies to
test-misc.txt requirements file.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 29 Sep 2016 11:19:30 +0200] rev 11684
[tox] Exclude all files in symlinked directories from check-manifest call
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 28 Sep 2016 14:40:58 +0200] rev 11683
[tox] Get rid of "touch test-results.xml" for flake8 and check-manifest environments
CI server does not rely on this anymore.
Yann Voté <yann.vote@logilab.fr> [Mon, 26 Sep 2016 16:53:33 +0200] rev 11682
[debian] cubicweb-pyramid conflicts and replaces pyramid-cubicweb
Related to #14023058.
Yann Voté <yann.vote@logilab.fr> [Mon, 26 Sep 2016 16:45:30 +0200] rev 11681
Merge cubicweb-pyramid cube
Only keep the CWSession schema definition and the ctl command, now in
cubicweb/pyramid/pyramidctl.py
Related to #14023058.
Arthur Lutz <arthur.lutz@logilab.fr> [Thu, 02 Jun 2016 11:59:32 +0200] rev 11680
[ccplugin] flake8
Arthur Lutz <arthur.lutz@logilab.fr> [Thu, 02 Jun 2016 11:59:25 +0200] rev 11679
[ccplugin] docstring clarification
David Douard <david.douard@logilab.fr> [Wed, 11 May 2016 11:27:50 +0200] rev 11678
[doc] improve a bit the README to explain how to allow login in dev mode
David Douard <david.douard@logilab.fr> [Thu, 24 Mar 2016 14:09:29 +0100] rev 11677
Added tag 0.4.0, debian/0.4.0-1, centos/0.4.0-1 for changeset c0c98e5ba55e
David Douard <david.douard@logilab.fr> [Thu, 24 Mar 2016 13:57:47 +0100] rev 11676
[pkg] typo
David Douard <david.douard@logilab.fr> [Mon, 22 Feb 2016 16:06:00 +0100] rev 11675
[pkg] 0.4.0
David Douard <david.douard@logilab.fr> [Tue, 23 Feb 2016 11:14:22 +0100] rev 11674
[doc] add a bit more infos in the README
David Douard <david.douard@logilab.fr> [Mon, 22 Feb 2016 15:57:10 +0100] rev 11673
[cfg] remove the pyramid-{auth,session}-secret config options (closes #11027189)
these should now be set in the pyramid.ini config file.
David Douard <david.douard@logilab.fr> [Tue, 15 Dec 2015 12:14:47 +0100] rev 11672
[cc] add a dbglevel cmdline option to specify the DBG_XXX flags to set
also display the list of valid loglevel values in the help message.
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Thu, 18 Feb 2016 16:38:11 +0100] rev 11671
Added tag centos/0.3.2-1 for changeset c9daf54738fd
Samuel Trégouët <samuel.tregouet@logilab.fr> [Fri, 29 Jan 2016 15:32:52 +0100] rev 11670
[pkg] add spec file
Julien Cristau <julien.cristau@logilab.fr> [Wed, 23 Dec 2015 11:53:04 +0100] rev 11669
Added tag 0.3.2, debian/0.3.2-1 for changeset ab4c5509407f
Julien Cristau <julien.cristau@logilab.fr> [Wed, 23 Dec 2015 11:45:49 +0100] rev 11668
[pkg] fixup debian control metadata
add Homepage field, replace deprecated XS-Python-Version with
X-Python-Version.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 23 Dec 2015 11:41:52 +0100] rev 11667
[pkg] add debian watch file
Julien Cristau <julien.cristau@logilab.fr> [Wed, 23 Dec 2015 11:40:30 +0100] rev 11666
[pkg] don't remove egg_info from debian package
Julien Cristau <julien.cristau@logilab.fr> [Wed, 23 Dec 2015 11:32:15 +0100] rev 11665
[pkg] 0.3.2
Julien Cristau <julien.cristau@logilab.fr> [Tue, 22 Dec 2015 19:37:49 +0100] rev 11664
[ccplugin] get the cw repo from the wsgi app
Otherwise with cubicweb 3.22 we end up re-creating a new repo from
scratch, which ends up in tears.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 04 Nov 2015 16:41:36 +0100] rev 11663
[ccplugin] print_function
David Douard <david.douard@logilab.fr> [Thu, 30 Jul 2015 09:55:36 +0200] rev 11662
Move tag debian/0.3.1-1 on changeset ab68206f765b
David Douard <david.douard@logilab.fr> [Thu, 30 Jul 2015 09:55:03 +0200] rev 11661
[debian] typo in debian/changelog
David Douard <david.douard@logilab.fr> [Thu, 30 Jul 2015 09:51:39 +0200] rev 11660
Added tag 0.3.1, debian/0.3.1-1 for changeset 9d82848e82a7
David Douard <david.douard@logilab.fr> [Thu, 30 Jul 2015 09:49:15 +0200] rev 11659
[pkg] 0.3.1
David Douard <david.douard@logilab.fr> [Thu, 23 Jul 2015 16:59:46 +0200] rev 11658
[ccplugin] fix a bug introduced in e95725d7ce90 (closes #5731783)
David Douard <david.douard@logilab.fr> [Wed, 22 Jul 2015 17:41:40 +0200] rev 11657
Added tag 0.3.0, debian/0.3.0-1 for changeset 7fbeb77fe690
David Douard <david.douard@logilab.fr> [Wed, 22 Jul 2015 17:22:16 +0200] rev 11656
[pkg] 0.3.0
David Douard <david.douard@logilab.fr> [Wed, 22 Jul 2015 17:18:56 +0200] rev 11655
[debian] add missing dependency on pyramid-cubicweb and python-wsgicors
David Douard <david.douard@logilab.fr> [Wed, 22 Jul 2015 17:12:12 +0200] rev 11654
[pkg] depends on waitress (closes #5576180)
David Douard <david.douard@logilab.fr> [Wed, 22 Jul 2015 17:03:43 +0200] rev 11653
[pkg] update to dh9 and dh_python2
David Douard <david.douard@logilab.fr> [Thu, 25 Jun 2015 22:57:15 +0200] rev 11652
Allow to override config file options by cmdline arguments (closes #5724484)
For the sake of consistency with cw, the 'profile' option's short name has
been removed, so we can use the lower 'p' for this purpose (for consistency
with cubicweb).
Requires CubicWeb 3.21 to work.
Christophe de Vienne <christophe@unlish.com> [Wed, 21 Jan 2015 13:51:33 +0100] rev 11651
Added tag cubicweb-pyramid-version-0.2.0, cubicweb-pyramid-debian-version-0.2.0-1 for changeset 4c16305d5825
Christophe de Vienne <christophe@unlish.com> [Wed, 21 Jan 2015 13:28:36 +0100] rev 11650
set debian version 0.2.0-1
Christophe de Vienne <christophe@unlish.com> [Wed, 21 Jan 2015 11:02:33 +0100] rev 11649
Set version 0.2.0
And requires pyramid-cubicweb 0.2.0
Christophe de Vienne <christophe@unlish.com> [Sat, 03 Jan 2015 17:07:21 +0100] rev 11648
Add profiling options
Christophe de Vienne <christophe@unlish.com> [Sat, 03 Jan 2015 02:39:43 +0100] rev 11647
Monitor more configuration files
Closes #4811352
Christophe de Vienne <christophe@unlish.com> [Tue, 23 Dec 2014 10:19:12 +0100] rev 11646
Set version 0.1.1
Christophe de Vienne <christophe@unlish.com> [Tue, 23 Dec 2014 10:16:13 +0100] rev 11645
--debug now activates all debug options
Added a --debug-mode so the debug toolbar can be activated without switching
reload on.
Closes #4783342
Christophe de Vienne <christophe@unlish.com> [Thu, 06 Nov 2014 22:07:06 +0100] rev 11644
Move the cors middleware initialisation to pyramid-cubicweb to reduce code duplication
Christophe de Vienne <christophe@unlish.com> [Thu, 23 Oct 2014 17:30:15 +0200] rev 11643
Added tag cubicweb-pyramid-version-0.1.0, cubicweb-pyramid-debian-version-0.1.0-1 for changeset 3defbb0f147a
Christophe de Vienne <christophe@unlish.com> [Thu, 23 Oct 2014 16:38:28 +0200] rev 11642
Prepare release
Christophe de Vienne <christophe@unlish.com> [Fri, 19 Sep 2014 19:55:33 +0200] rev 11641
Add a --no-daemon option
Christophe de Vienne <christophe@unlish.com> [Fri, 19 Sep 2014 19:20:35 +0200] rev 11640
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.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 19 Sep 2014 18:23:57 +0200] rev 11639
Watch for i18n files changes for auto-reload
Christophe de Vienne <christophe@unlish.com> [Fri, 19 Sep 2014 11:44:13 +0200] rev 11638
Auto-reload now survives failed reload
When the server stops within the reloader and let a list of files that were
monitored, the reloader waits for any of these files to change and re-attempt
to start the server.
This work well when a syntax error is saved to a file: there is no need to
restart manually the server anymore.
Christophe de Vienne <christophe@unlish.com> [Thu, 18 Sep 2014 22:33:04 +0200] rev 11637
Implements auto-reload and daemon mode.
Heavily inspired by pyramid pserve, with pieces of code taken from it.
auto-reload
Start the server in a subprocess that auto-stops when a file is modified,
and exit with a specific code.
daemon mode
Uses some code from pserve, but use the cw configuratione so the command
is compatible with 'status' and 'stop' commands.
Christophe de Vienne <christophe@unlish.com> [Thu, 18 Sep 2014 12:03:25 +0200] rev 11636
Add the 'pyramid-auth-secret' option to all-in-one.conf
Christophe de Vienne <christophe@unlish.com> [Thu, 18 Sep 2014 11:17:57 +0200] rev 11635
Add the 'pyramid-session-secret' option to all-in-one.conf
This value is used by pyramid_cubicweb to initialize the cookie factory.
Christophe de Vienne <christophe@unlish.com> [Fri, 05 Sep 2014 18:48:33 +0200] rev 11634
Add a CWSession entity.
It is a subset of the CWSession that will be added to cubicweb in a future version.
Closes #4317363
Christophe de Vienne <christophe@unlish.com> [Fri, 05 Sep 2014 12:38:13 +0200] rev 11633
Implements the 'pyramid' command.
It load an instance config, and load in the pyramid scaffolding provided by pyramid_cubicweb.
The application is then served by a waitress server.
Closes #4317312
Christophe de Vienne <christophe@unlish.com> [Fri, 05 Sep 2014 12:32:03 +0200] rev 11632
Project structure
Yann Voté <yann.vote@logilab.fr> [Mon, 26 Sep 2016 14:52:12 +0200] rev 11631
Merge with pyramid-cubicweb
The following tasks have been done:
- merge packaging files
- merge documentation
- move pyramid_cubicweb package at cubicweb/pyramid and update imports
accordingly
- rename tests directory into test
- move pyramid-cubicweb README.rst into README.pyramid.rst until better idea
- add a test dependency on unreleased cubicweb-pyramid to have both py27 and
py34 tests pass
Closes #14023058.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 07 Jul 2016 14:30:32 +0200] rev 11630
Port to Python3 (closes #14159555)
Add py34 environments to tox configuration (only for CubicWeb >= 3.23).
And depend on hg version of cubicweb-pyramid since it is not currently
Python3-compatible.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 28 Jun 2016 11:03:20 +0200] rev 11629
Use opened connections as much as possible
instead of opening a new internal connection to set the session cookie or
retrieve the session data, which may exhaust the connection pools.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 01 Jun 2016 17:27:29 +0200] rev 11628
Test and fix status code and content of the login form on authentication error
The status code was 200 and is now fixed to 403, but the content part of the
test will fail until cset 02328f8cbd5c is integrated in cubicweb.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 28 Jun 2016 09:44:08 +0200] rev 11627
Added tag 0.7.0, debian/0.7.0-1, centos/0.7.0-1 for changeset 0cf2972d2011
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 28 Jun 2016 09:33:20 +0200] rev 11626
[pkg] Version 0.7.0
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 03 Jun 2016 17:59:49 +0200] rev 11625
retrieve session data in a single query
instead of two (one for the session object, the other for its cwsessiondata attribute).
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 28 Jun 2016 09:07:12 +0200] rev 11624
[tox] Update CubicWeb version targets
* In -release, no need to specify cubicweb dependency, its pulled by setup.py.
* Use 3.22 as -compat.
* Point to "default" branch for -dev.
Also remove test directory from posargs.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 16 Jun 2016 16:25:32 +0200] rev 11623
wsgi: clearer exception when CW_INSTANCE is missing
instance_name is mandatory for cwcfg.config_for()
Raise with a KeyError: 'CW_INSTANCE' instead of hard to read exception.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 03 Jun 2016 17:58:43 +0200] rev 11622
typo
David Douard <david.douard@logilab.fr> [Wed, 11 May 2016 11:26:16 +0200] rev 11621
[doc] update a bit the documentation
Also convert the README in rst (so it can be properly displayed on
cubicweb.org).
Arthur Lutz <arthur.lutz@logilab.fr> [Fri, 17 Jun 2016 17:57:11 +0200] rev 11620
split collecting setting before using them, so the function can be reused when inserting WSGI middlewares
Arthur Lutz <arthur.lutz@logilab.fr> [Thu, 02 Jun 2016 12:11:07 +0200] rev 11619
[bwcompat] log execption even when cubicweb.bwcompat.errorhandler = True (closes #13421901)
Samuel Trégouët <samuel.tregouet@logilab.fr> [Fri, 27 May 2016 10:49:27 +0200] rev 11618
[pkg] add spec file
David Douard <david.douard@logilab.fr> [Tue, 12 Apr 2016 16:17:06 +0200] rev 11617
Added tag 0.6.1, debian/0.6.1-1 for changeset 2621daafa10c
David Douard <david.douard@logilab.fr> [Tue, 12 Apr 2016 15:41:09 +0200] rev 11616
[pkg] 0.6.1
Julien Cristau <julien.cristau@logilab.fr> [Fri, 01 Apr 2016 16:50:12 +0200] rev 11615
[bwcompat] send 403 on authentication errors (closes #12219849)
200 is just wrong.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 01 Apr 2016 16:48:14 +0200] rev 11614
[bwcompat] set response headers on AuthenticationError (closes #12219860)
Turns out sending a response without a Content-Type header (among
others) is suboptimal. 5b36399b6b21 was not good enough.
David Douard <david.douard@logilab.fr> [Thu, 24 Mar 2016 12:08:59 +0100] rev 11613
Added tag 0.6.0, debian/0.6.0-1 for changeset 94d1a024b3bf
David Douard <david.douard@logilab.fr> [Fri, 18 Mar 2016 17:34:13 +0100] rev 11612
[pkg] 0.6.0
David Douard <david.douard@logilab.fr> [Tue, 22 Mar 2016 14:01:44 +0100] rev 11611
[tests] add a __main__ handler
the relative import in test_rest_api.py needs to be modified to prevent a
ValueError: Attempted relative import in non-package
David Douard <david.douard@logilab.fr> [Tue, 22 Mar 2016 13:58:38 +0100] rev 11610
[pkg] add a requirements-test.txt file
for test dependencies on WebTest and cubicweb-pyramid
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 18 Mar 2016 17:13:43 +0100] rev 11609
[login] fix the redirect url after login (closes #11689118)
redirecting to '/' by default after login doesn't work properly when a prefix
is used, whether we're sitting behind a PrefixMiddleware or not. To fix this,
rely on cubicweb's build_url to turn any relative path into an absolute url.
Adrien Di Mascio <Adrien.DiMascio@logilab.fr> [Tue, 08 Mar 2016 16:12:01 +0100] rev 11608
keep track of all traceback in error handling, not just the exception message (closes #11689093)
Julien Cristau <julien.cristau@logilab.fr> [Wed, 25 Nov 2015 12:32:59 +0100] rev 11607
[bwcompat] also set response headers in error cases
I had this sitting around in my local copy, I don't remember why I
needed this but it seems correct.
David Douard <david.douard@logilab.fr> [Mon, 29 Feb 2016 16:16:33 +0100] rev 11606
[config] move config of the secret used to encrypt session's data ID in pyramid.ini (closes #11689082)
Introduce a new config entry (in pyramid.ini) for this (cubicweb.session.secret)
to replace the (now deprecated) pyramid-session-secret (in all-in-one.conf).
So we have now 3 secrets to configure:
- cubicweb.session.secret: to encrypt session's data ID stored in a cookie,
- cubicweb.auth.authtkt.session.secret: to encrypt auth cookie
- cubicweb.auth.authtkt.persistent.secret: to encrypt persistent session auth cookie
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 07 Mar 2016 10:47:11 +0100] rev 11605
Document how to configure the "secure" flag for authentication policies
Closes #11376233.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 21 Jan 2016 15:20:55 +0100] rev 11604
[tox] Let posargs override py.test args
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 11 Dec 2015 17:21:58 +0100] rev 11603
[tox] Use py.test
Rename test view so that py.test does not consider it as a test function.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 25 Nov 2015 13:39:53 +0100] rev 11602
Add a tox configuration
Christophe de Vienne <cdevienne@gmail.com> [Wed, 16 Sep 2015 16:39:53 +0200] rev 11601
Register predicates from the predicates module
Rabah Meradi <rabah.meradi@logilab.fr> [Fri, 24 Jul 2015 13:39:18 +0200] rev 11600
[refactoring] Move MatchIsETypePredicate to a separate module
Rabah Meradi <rabah.meradi@logilab.fr> [Fri, 24 Jul 2015 13:40:36 +0200] rev 11599
[refactoring] Move EntityResource and ETypeResource to a separate module
Rabah Meradi <rabah.meradi@logilab.fr> [Mon, 15 Jun 2015 09:31:37 +0200] rev 11598
use CubicWeb request to execute RQL
rset should be retrieved with cw_request, as it's then bound to it and propagate to all entities created from this rset (._cw). From there it may reach code expecting a request, not a connection (view, selector, etc).
Rabah Meradi <rabah.meradi@logilab.fr> [Thu, 27 Aug 2015 11:25:42 +0200] rev 11597
[views] Rename entities to rest_api
Christophe de Vienne <christophe@unlish.com> [Tue, 09 Jun 2015 11:34:17 +0200] rev 11596
[routes] Add a 'cwentities' route with traversal
The route uses a factory that produces ETypeResource and EntityResource as
a context.
A 'delete' view serve as a test and demonstration.
The module being experimental, it has to be explicitely included.
Christophe de Vienne <cdevienne@gmail.com> [Wed, 16 Sep 2015 15:48:37 +0200] rev 11595
Added tag 0.5.0, debian/0.5.0-1 for changeset 61f69ac2d6bc
Christophe de Vienne <cdevienne@gmail.com> [Mon, 10 Aug 2015 17:42:47 +0200] rev 11594
[pkg] 0.5.0
Christophe de Vienne <cdevienne@gmail.com> [Fri, 07 Aug 2015 11:59:07 +0200] rev 11593
[auth] Authtkt http_only and secure by default
The test suite is now full 'https'.
Closes #4731765
Christophe de Vienne <cdevienne@gmail.com> [Fri, 07 Aug 2015 11:52:08 +0200] rev 11592
[auth] Make the configuration cookies completely configurable
Also transfert the secret setting from all-in-one.conf to pyramid.ini,
with backward compatibility.
Closes #5999625
Julien Cristau <julien.cristau@logilab.fr> [Mon, 03 Aug 2015 18:11:10 +0200] rev 11591
Added tag 0.4.1, debian/0.4.1-1 for changeset 398b2c840e14
Christophe de Vienne <christophe@unlish.com> [Mon, 03 Aug 2015 16:27:16 +0200] rev 11590
[pkg] 0.4.1
Christophe de Vienne <christophe@unlish.com> [Fri, 24 Jul 2015 16:59:13 +0200] rev 11589
[core] Adjust cw<3.21 compatibility
Most of cubibweb < 3.21 expects a ClientConnection as the main connection.
Related to #5731814
Closes #5878592
Christophe de Vienne <christophe@unlish.com> [Fri, 24 Jul 2015 14:21:13 +0200] rev 11588
[bwcompat] Make the error handler optional
Closes #5739625
Christophe de Vienne <christophe@unlish.com> [Mon, 06 Jul 2015 14:51:06 +0200] rev 11587
[doc] Document embedding in a pyramid app
Christophe de Vienne <christophe@unlish.com> [Mon, 06 Jul 2015 14:16:55 +0200] rev 11586
[config] Move most config code to a includeme()
The goal is to make it easier to use pyramid_cubicweb from a pyramid
application.
Christophe de Vienne <christophe@unlish.com> [Mon, 06 Jul 2015 13:17:07 +0200] rev 11585
[doc] Anonymous access is not mandatory anymore
Julien Cristau <julien.cristau@logilab.fr> [Thu, 23 Jul 2015 17:56:59 +0200] rev 11584
Added tag 0.4.0, debian/0.4.0-1 for changeset 897a149e8208
Julien Cristau <julien.cristau@logilab.fr> [Thu, 23 Jul 2015 17:56:32 +0200] rev 11583
[pkg] add debian/watch
Julien Cristau <julien.cristau@logilab.fr> [Thu, 23 Jul 2015 17:48:39 +0200] rev 11582
[pkg] 0.4.0
Julien Cristau <julien.cristau@logilab.fr> [Thu, 23 Jul 2015 17:45:37 +0200] rev 11581
[pkg] add python-pyramid-multiauth dependency to debian package
Closes #5576182
Julien Cristau <julien.cristau@logilab.fr> [Thu, 25 Jun 2015 09:51:32 +0200] rev 11580
[core] adjust cnx handling for cubicweb 3.21
Closes #5731814
Julien Cristau <julien.cristau@logilab.fr> [Tue, 30 Jun 2015 11:15:03 +0200] rev 11579
set httponly on session cookie
Julien Cristau <julien.cristau@logilab.fr> [Tue, 30 Jun 2015 11:15:54 +0200] rev 11578
[bwcompat] use cubicweb error views (closes #4545130)
David Douard <david.douard@logilab.fr> [Thu, 18 Jun 2015 10:49:34 +0200] rev 11577
Added tag 0.3.1, debian/0.3.1-1 for changeset 6df91cb85ecc
David Douard <david.douard@logilab.fr> [Thu, 18 Jun 2015 10:46:09 +0200] rev 11576
[pkg] 0.3.1
Denis Laxalde <denis@laxalde.org> [Wed, 29 Apr 2015 22:46:17 +0200] rev 11575
Handle absence of anonymous user
Set cw_session and then cw_cnx request attributes to None in case anonymous
connection is not allowed (i.e. no "anon" user in config).
Then catch AuthenticationError in CubicWebPyramidHandler and return the 'login'
view.
Closes #4751862.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 19 May 2015 08:38:08 +0200] rev 11574
[debian] Add python-wsgicors dependency as it is now available
Christophe de Vienne <christophe@unlish.com> [Mon, 11 May 2015 17:06:36 +0200] rev 11573
Update Changes for version 0.3.0
Christophe de Vienne <christophe@unlish.com> [Mon, 11 May 2015 15:45:14 +0200] rev 11572
Added tag pyramid-cubicweb-version-0.3.0, pyramid-cubicweb-debian-version-0.3.0-1 for changeset a80e076d3f42
Christophe de Vienne <christophe@unlish.com> [Mon, 11 May 2015 15:34:05 +0200] rev 11571
Fix debugtoolbar pkg name
Christophe de Vienne <christophe@unlish.com> [Mon, 11 May 2015 15:22:24 +0200] rev 11570
Set version 0.3.0
Christophe de Vienne <christophe@unlish.com> [Tue, 24 Feb 2015 17:19:58 +0100] rev 11569
[doc] update changes list
Christophe de Vienne <christophe@unlish.com> [Fri, 08 May 2015 11:38:07 +0200] rev 11568
Rollback 'uncommitable' cnx
Closes #5343870
Christophe de Vienne <christophe@unlish.com> [Wed, 29 Apr 2015 13:09:06 +0200] rev 11567
[debug] The debug mode now set pyramid.reload_templates
Christophe de Vienne <christophe@unlish.com> [Sat, 25 Apr 2015 20:50:57 +0200] rev 11566
Use pyramid flash queue for messages
Use a 'cubicweb' flash queue and make sure it contains only one message
so that the behavior is the same as cubicweb.
Also, the 'message' property now returns both the cubicweb flash queue and
the default flash queue.
One big difference with the former behaviour is that messages set with
set_message will survive a redirection, making set_redirect_message useless in
most case.
Closes #5298654
Christophe de Vienne <christophe@unlish.com> [Wed, 25 Feb 2015 22:40:39 +0100] rev 11565
[doc] Document the new authentication stack
Christophe de Vienne <christophe@unlish.com> [Tue, 28 Apr 2015 11:04:03 +0200] rev 11564
Allow tests to override pyramid_settings
Closes #5307426
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 29 Apr 2015 11:39:35 +0200] rev 11563
Make debug mode usable without pyramid_debugtoolbar
Add the latter in Debian recommends along the way.
Closes #5310434.
Christophe de Vienne <christophe@unlish.com> [Thu, 26 Feb 2015 00:56:32 +0100] rev 11562
[auth] Use a second authtkt policy for 'rememberme'
The former solution was buggy because the expire time of the auth cookie, if
set through 'remember', was lost on the first cookie reissuing.
The new approach, make possible thanks to multiauth, use two different cookies.
One for session bounded authentication (no 'rememberme'), and one for long
lasting authentication (w 'rememberme').
The choice between the two of them is done by adding a 'persistent' argument
to the top-level 'security.remember' call. Passing this argument will inhibate
a policy or the other.
The two policies are (a little) configurable through the
'cubicweb.auth.authtkt.[session|persistent].*' variables.
Related to #4985962
Christophe de Vienne <christophe@unlish.com> [Thu, 12 Feb 2015 19:21:39 +0100] rev 11561
[auth] Use pyramid_multiauth
It makes it easier to finely tune what parts of the default authentication stack
we want to use or not.
It also makes it possible for any cube to add its own policy in addition to the
others.
Related to #4985962
David Douard <david.douard@logilab.fr> [Thu, 09 Apr 2015 23:58:38 +0200] rev 11560
[auth] remove dead code (closes #5230746)
Christophe de Vienne <christophe@unlish.com> [Mon, 23 Feb 2015 17:17:43 +0100] rev 11559
[login] Test the login views
Christophe de Vienne <christophe@unlish.com> [Tue, 24 Feb 2015 17:19:37 +0100] rev 11558
Fix project homepage url
Christophe de Vienne <christophe@unlish.com> [Wed, 21 Jan 2015 14:31:30 +0100] rev 11557
Replace the '_' with '-' in the package name
The change was made manually on pypi (see
https://sourceforge.net/p/pypi/support-requests/459/)
Christophe de Vienne <christophe@unlish.com> [Tue, 10 Feb 2015 16:35:06 +0100] rev 11556
On exceptions from CW, copy headers
Closes #4939219
Christophe de Vienne <christophe@unlish.com> [Tue, 10 Feb 2015 10:23:20 +0100] rev 11555
[doc] fix pyramid-auth-secret conf sample
Christophe de Vienne <christophe@unlish.com> [Mon, 02 Feb 2015 13:46:28 +0100] rev 11554
[doc] Update change list
Christophe de Vienne <christophe@unlish.com> [Wed, 28 Jan 2015 00:00:05 +0100] rev 11553
[core] Protect session data from unwanted loading.
Use specialised Session and Connection types that forward their 'data' and
'session_data' attributes to the pyramid request.session attribute.
This forwarding is done with properties, instead of copying a reference, which
allow to access request.session (and the session factory) if and only if
Session.data or Connection.session_data is accessed.
In some cases, most notably the static resources requests, it can mean no
access the session during the request handling, which saves a request to the
session persistence layer.
Closes #4891437
Christophe de Vienne <christophe@unlish.com> [Mon, 26 Jan 2015 18:06:58 +0100] rev 11552
[core] Use tools.cached_user_build for better performances
Closes #4870347
Christophe de Vienne <christophe@unlish.com> [Mon, 26 Jan 2015 18:04:57 +0100] rev 11551
[doc] Document tools
Related to #4870347
Christophe de Vienne <christophe@unlish.com> [Mon, 26 Jan 2015 17:59:10 +0100] rev 11550
[tools] Provide a faster build_user
The main trick is to use a cache of user entities.
To do so, a few tools are needed since the entities are not supposed to be
copied around between connexions.
Related to #4870347
Christophe de Vienne <christophe@unlish.com> [Fri, 23 Jan 2015 14:00:02 +0100] rev 11549
Added tag pyramid_cubicweb-version-0.2.1, pyramid_cubicweb-debian-version-0.2.1-1 for changeset 1ae61c25299a
Christophe de Vienne <christophe@unlish.com> [Fri, 23 Jan 2015 12:57:16 +0100] rev 11548
Prepare version 0.2.1
Christophe de Vienne <christophe@unlish.com> [Wed, 21 Jan 2015 17:28:30 +0100] rev 11547
[cors] Fix 'headers' and 'methods' parameters
Closes #4849874
Christophe de Vienne <christophe@unlish.com> [Wed, 21 Jan 2015 15:14:11 +0100] rev 11546
Fix the 0.2.0 release date
Christophe de Vienne <christophe@unlish.com> [Wed, 21 Jan 2015 15:13:43 +0100] rev 11545
Change project url
Christophe de Vienne <christophe@unlish.com> [Wed, 21 Jan 2015 13:45:35 +0100] rev 11544
Added tag pyramid_cubicweb-version-0.2.0, pyramid_cubicweb-debian-version-0.2.0-1 for changeset cd8308245d20
Christophe de Vienne <christophe@unlish.com> [Wed, 21 Jan 2015 13:27:54 +0100] rev 11543
set debian version
Christophe de Vienne <christophe@unlish.com> [Wed, 21 Jan 2015 11:11:28 +0100] rev 11542
Prepare version 0.2.0
Christophe de Vienne <christophe@unlish.com> [Wed, 21 Jan 2015 10:24:42 +0100] rev 11541
Document the changes
Christophe de Vienne <christophe@unlish.com> [Fri, 16 Jan 2015 22:50:05 +0100] rev 11540
Fix configuration loading when 'cubicweb.includes' is not set
Closes #4849314
Christophe de Vienne <christophe@unlish.com> [Mon, 05 Jan 2015 15:54:12 +0100] rev 11539
pep8
Christophe de Vienne <christophe@unlish.com> [Sun, 04 Jan 2015 00:12:29 +0100] rev 11538
Provides requirements for rtd
Related to #4849313
Christophe de Vienne <christophe@unlish.com> [Sat, 03 Jan 2015 22:06:03 +0100] rev 11537
Initial documentation.
Closes #4849313
Christophe de Vienne <christophe@unlish.com> [Mon, 05 Jan 2015 12:02:01 +0100] rev 11536
Remove dead code
Christophe de Vienne <christophe@unlish.com> [Sat, 03 Jan 2015 16:51:32 +0100] rev 11535
[profile] Add a profiling tool
Christophe de Vienne <christophe@unlish.com> [Sat, 03 Jan 2015 02:36:06 +0100] rev 11534
[config] Read pyramid settings in a 'pyramid.ini' file
If a 'pyramid-debug.ini' file is present, it will be used
instead when debugmode is on.
Closes #4811298
Christophe de Vienne <christophe@unlish.com> [Sat, 03 Jan 2015 01:24:38 +0100] rev 11533
Move auth-related configuration to a dedicated module.
Christophe de Vienne <christophe@unlish.com> [Tue, 23 Dec 2014 10:22:49 +0100] rev 11532
Fix cors 'origin' parameter passing
Closes #4783343
Christophe de Vienne <christophe@unlish.com> [Sat, 03 Jan 2015 00:14:06 +0100] rev 11531
[auth] Fix the config option name in the warning message
Aurelien Campeas <aurelien.campeas@logilab.fr> [Tue, 02 Dec 2014 15:21:29 +0100] rev 11530
session -> cnx
Christophe de Vienne <christophe@unlish.com> [Mon, 08 Dec 2014 20:38:32 +0100] rev 11529
Added tag pyramid_cubicweb-debian-version-0.1.3-1, pyramid_cubicweb-version-0.1.3 for changeset 0a7769e583c2
Christophe de Vienne <christophe@unlish.com> [Mon, 08 Dec 2014 20:25:31 +0100] rev 11528
Set version 0.1.3
Christophe de Vienne <christophe@unlish.com> [Mon, 08 Dec 2014 20:21:55 +0100] rev 11527
Cookie 'max_age' must be a integer, not a string.
If not, the value is used verbatim for the 'expires' of the cookie, which is
invalid.
Closes #4731764.
Christophe de Vienne <christophe@unlish.com> [Sat, 15 Nov 2014 21:07:25 +0100] rev 11526
Added tag pyramid_cubicweb-version-0.1.2, pyramid_cubicweb-debian-version-0.1.2-1 for changeset 5eb4e27e9998
Christophe de Vienne <christophe@unlish.com> [Sat, 15 Nov 2014 20:26:15 +0100] rev 11525
Update debian changelog
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
Christophe de Vienne <christophe@unlish.com> [Thu, 06 Nov 2014 22:26:16 +0100] rev 11523
Set version to 0.1.2
Christophe de Vienne <christophe@unlish.com> [Thu, 06 Nov 2014 22:08:57 +0100] rev 11522
Provides a full wsgi cubicweb application builder
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
Christophe de Vienne <christophe@unlish.com> [Sun, 02 Nov 2014 23:31:34 +0100] rev 11520
Set version 0.1.1
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
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
Christophe de Vienne <christophe@unlish.com> [Thu, 23 Oct 2014 16:15:58 +0200] rev 11517
Add a description to the debian package
Christophe de Vienne <christophe@unlish.com> [Thu, 23 Oct 2014 15:41:43 +0200] rev 11516
Set version to 0.1.0
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.
Christophe de Vienne <christophe@unlish.com> [Wed, 22 Oct 2014 16:15:54 +0200] rev 11514
Move PyramidCWTest to pyramid_cubicweb.tests
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.
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.
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.
Christophe de Vienne <christophe@unlish.com> [Thu, 18 Sep 2014 17:18:09 +0200] rev 11510
Add requirements
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.
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.
Christophe de Vienne <christophe@unlish.com> [Thu, 18 Sep 2014 11:43:45 +0200] rev 11507
Use AuthTktAuthenticationPolicy
Christophe de Vienne <christophe@unlish.com> [Fri, 19 Sep 2014 14:26:55 +0200] rev 11506
DB-saved session data
Related to #4291173
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
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
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()
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
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
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
Christophe de Vienne <christophe@unlish.com> [Thu, 21 Aug 2014 21:43:24 +0200] rev 11499
Convert cubicweb.NotFound to HTTPNotFound
Related to #4291173
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
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
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
Christophe de Vienne <christophe@unlish.com> [Mon, 04 Aug 2014 15:52:04 +0200] rev 11495
Document the view problem hypothesis.
Related to #4291173
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
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
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
Christophe de Vienne <christophe@unlish.com> [Tue, 22 Jul 2014 23:46:09 +0200] rev 11491
Update the TODO list
Related to #4291173
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
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
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
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
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
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
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
Christophe de Vienne <christophe@unlish.com> [Sun, 06 Jul 2014 18:25:31 +0200] rev 11483
Add a basic sample application
Related to #4291173
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
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.
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
Christophe de Vienne <christophe@unlish.com> [Wed, 02 Jul 2014 19:07:39 +0200] rev 11479
Project Structure
Related to #4291173
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.
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.
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.
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).
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 23 Sep 2016 09:50:16 +0200] rev 11474
[tox] Basic flake8 config
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.
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.
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.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 14 Sep 2016 17:03:46 +0200] rev 11470
[skeleton] Fix modname in __pkginfo__
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 12 Sep 2016 09:13:22 +0200] rev 11469
[test] Use plain unittest in unittest_cwctl.py
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)...
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.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 12 Sep 2016 08:41:33 +0200] rev 11466
[pkg] Drop old checks in setup.py
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.
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
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)
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.
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.
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.
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.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 12 Jul 2016 16:17:57 +0200] rev 11458
[cwconfig] Reorder imports by alphabetic order
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.
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.
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.
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.
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.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 26 Aug 2016 14:31:25 +0200] rev 11452
[test] Add a test for toolsutils.read_config
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 26 Aug 2016 13:56:59 +0200] rev 11451
[test] Use plain unittest in unittest_toolsutils
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 30 May 2016 21:35:50 +0200] rev 11450
[skeleton] Remove test/pytestconf.py
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
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
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.
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
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.
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.
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
David Douard <david.douard@logilab.fr> [Fri, 22 Jul 2016 18:26:17 +0200] rev 11442
[pkg] remove .dev0 from version
David Douard <david.douard@logilab.fr> [Thu, 21 Jul 2016 21:03:25 +0200] rev 11441
[pkg] 3.22.4
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)
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)
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)
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)
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.
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
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
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.
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.
David Douard <david.douard@logilab.fr> [Wed, 20 Jul 2016 09:40:04 +0200] rev 11431
typo
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...
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.
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.
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.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 20 Jul 2016 17:58:49 +0200] rev 11426
merge 3.23
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 08 Jul 2016 13:40:50 +0200] rev 11425
[pkg] Bump version to 3.24.0.dev0
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).
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
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.
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.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 05 Jul 2016 10:20:33 +0200] rev 11420
[pkg] Drop unused EMPTY_FILE global variable
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.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 05 Jul 2016 13:02:14 +0200] rev 11418
[pkg] Bump version to 3.23.2
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 08 Jul 2016 09:59:18 +0200] rev 11417
pep8 bits
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.
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.
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.
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
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 30 Jun 2016 11:18:01 +0200] rev 11412
[schema2sql] Drop most of the DB DROP related code
This code is dead for a while, it has been superseded by
`sql_drop_all_user_tables`.
Related to #14050899
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 30 Jun 2016 11:00:08 +0200] rev 11411
[hooks] Use already imported module alias
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 13 Jul 2016 12:18:32 +0200] rev 11410
[schema2sql] Rename as_sql to constraint_value_as_sql
which is easier to grasp independantly of the context.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 13 Jul 2016 12:17:37 +0200] rev 11409
[schema2sql] Drop unused indent argument on aschema2sql
Related to #14050899
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 30 Jun 2016 13:26:36 +0200] rev 11408
[schema2sql] More docstrings and minor API improvements
Along the way, renamed local `column` variable to `attr` where we're NOT manipulating a DB
column name but a schema attribute.
Related to #14050899
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 30 Jun 2016 10:47:03 +0200] rev 11407
[schema2sql] inline eschema_attrs method
* not a public API
* doesn't makes things easier to grasp
-> useless
Related to #14050899
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 30 Jun 2016 13:25:43 +0200] rev 11406
[schema2sql] Give a rdef to check_constraint
This simplifies the API.
Related to #14050899
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 18:08:06 +0200] rev 11405
merge 3.20.16 in 3.22
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 16:13:12 +0200] rev 11404
merge 3.20.16 in 3.21
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 15:59:02 +0200] rev 11403
Added tag 3.20.16, debian/3.20.16-1, centos/3.20.16-1 for changeset e60a8e5d29ef
David Douard <david.douard@logilab.fr> [Tue, 12 Jul 2016 12:29:29 +0200] rev 11402
[debian] add a lintian override for source-is-missing about jquery.flot.js
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 12:49:19 +0200] rev 11401
[pkg] 3.20.16
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 12:47:28 +0200] rev 11400
[dataimport] fix count_lines function (closes #14407650)
ensure i allways exists whatever f content is
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 13:50:56 +0200] rev 11399
[captcha] improve a bit the redability of generated captcha images (closes #13500378)
David Douard <david.douard@logilab.fr> [Tue, 19 Jul 2016 13:56:40 +0200] rev 11398
3.20 branch
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 29 Jun 2016 15:07:55 +0200] rev 11397
merge 3.23 changes
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 29 Jun 2016 13:52:25 +0200] rev 11396
Added tag 3.23.1, centos/3.23.1-1, debian/3.23.1-1 for changeset 8f035d5d5953
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 29 Jun 2016 13:51:25 +0200] rev 11395
prepare 3.23.1
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 29 Jun 2016 11:06:25 +0200] rev 11394
[debian] Adjust symlink to cubicweb package so that documention builds fine
Broken since source tree re-organization.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 29 Jun 2016 09:12:02 +0200] rev 11393
[dataimport] Restore handling of Binary in ExtEntity's values
Broken since 62a7100d774b.
Closes #13973741.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 28 Jun 2016 15:02:04 +0200] rev 11392
[tox] Ensure virtualenv's python is used to build the documentation
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 28 Jun 2016 15:01:40 +0200] rev 11391
[doc] Reference 3.23 page in changelog
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 28 Jun 2016 15:02:04 +0200] rev 11390
[tox] Ensure virtualenv's python is used to build the documentation
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 27 Jun 2016 14:17:19 +0200] rev 11389
Backed out changeset b288debc6736
Only superusers can set lc_messages variable. This prevents connection in many
cases.
Closes #14010345.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 27 Jun 2016 13:51:58 +0200] rev 11388
Merge with 3.23
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 24 Jun 2016 13:08:52 +0200] rev 11387
[pkg] Bump version to 3.22.4.dev0
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 27 Jun 2016 09:45:46 +0200] rev 11386
Added tag 3.23.0, centos/3.23.0-1, debian/3.23.0-1 for changeset 4b07f2a79021
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 27 Jun 2016 09:12:00 +0200] rev 11385
[doc] Fix symlinks of sphinx theme images
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 24 Jun 2016 17:45:10 +0200] rev 11384
Added tag 3.23.0, centos/3.23.0-1, debian/3.23.0-1 for changeset 93b0f836cb07
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 24 Jun 2016 17:18:57 +0200] rev 11383
[debian] Move python-unittest2 >= 0.7.0 as runtime dependency
It seems to me that this is not used during Debian package build (tests are
not run), but should be needed at runtime with the cubicweb-dev package.
Also, at the moment, we have no pbuilder setting with this package available
and it blocks the release.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 24 Jun 2016 15:43:13 +0200] rev 11382
Symlink __pkginfo__.py at root
Maybe this will make apycot work again...
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 24 Jun 2016 13:35:58 +0200] rev 11381
[3.23] More release notes
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 24 Jun 2016 12:21:48 +0200] rev 11380
i18n update
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 24 Jun 2016 11:12:36 +0200] rev 11379
[doc/changes] CubicWebTC.set_description no longer available
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 24 Jun 2016 11:50:31 +0200] rev 11378
Add some release notes
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Jun 2016 16:29:03 +0200] rev 11377
[pkg] Version 3.23.0
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 24 Jun 2016 10:25:50 +0200] rev 11376
[pkg] Bump yams version in cubicweb-common Debian package
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Jun 2016 16:11:00 +0200] rev 11375
[tox] Drop yams from dev-requirements.txt
Yams 0.44.0 got released.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Jun 2016 15:52:04 +0200] rev 11374
Merge with 3.22
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Jun 2016 15:48:39 +0200] rev 11373
Merge with 3.21
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 21 Jun 2016 07:44:35 +0200] rev 11372
backport 3.21 changes
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 21 Jun 2016 07:42:30 +0200] rev 11371
backport 3.20 changes
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Jun 2016 08:53:21 +0200] rev 11370
[sobjects] Drop custom unique constraint checks in user registration service
This constraints (on unique CWUser's login and EmailAddress's login) are
handled by the backend.
This follows "[hooks/integrity] kill CheckUniqueHook".
Extend test for the ValidationError along the way.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Jun 2016 11:30:10 +0200] rev 11369
[test] Add a test for user registration unicity constraint on email
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Jun 2016 11:27:43 +0200] rev 11368
[test] Clarify user registration service tests
* split permissions test appart
* avoid usage of internal_cnx as this does not seem need
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 Jun 2016 11:05:31 +0200] rev 11367
[test/hooks] pep8 and unittest.main instead in unittest_hooks.py
Julien Cristau <julien.cristau@logilab.fr> [Mon, 13 Apr 2015 14:34:11 +0200] rev 11366
[hooks/integrity] kill CheckUniqueHook
It's the backend's job.
The noticeable consequence (as can be seen in tests updated here) is that
error message are a bit less user-friendly.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 20 Jun 2016 15:10:24 +0200] rev 11365
[migration] drop identity_relation if it exists
It has been generated erroneously for a while, then fixed but not properly deleted from old
databases.
Don't use IF EXISTS for sqlserver compat.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 22 Jun 2016 14:35:43 +0200] rev 11364
[migration] Reserialize all constraints since yams introduce new JSON serializing format
So we may drop support for older format in yams at some point.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 23 Jun 2016 15:45:30 +0200] rev 11363
[migration] Add IF EXISTS on DROP CONSTRAINT
problem encountered on migration of a legacy database
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 20 Jun 2016 18:00:00 +0200] rev 11362
[schema sync] Rename index when an entity type is renamed
So we may still find them later using their expected name, and avoid collisions.
Closes #13822045
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 17 Jun 2016 13:26:13 +0200] rev 11361
[c-c] Add a command to check database index
List indices expected by the schema but not in the database and vice-versa
Closes #13822027
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 22 Jun 2016 07:57:13 +0200] rev 11360
[sql gen] Control size of index name using an md5 hash
When using concatenation of table and column, we may hit the backend size limit
on index names, which results on truncated name (64 for postgres). Then we may
have conflict or be unable to find expected index on later synchronization
attempt.
This is done by monkeypatching lgdb for now to avoid dependancy problems.
Unique and primary key indices of entity types handling is left to the backend,
as they are not explicitly named.
See https://www.logilab.org/ticket/4789189
Closes #13821949
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 20 Jun 2016 17:59:43 +0200] rev 11359
[sql gen] Explicitly name unique index
This patch hotfix logilab database for https://www.logilab.org/6662663 and fix
database creation to stop using UNIQUE in the table schema but rather create the
index later on, so its name is under control.
Also consider this change in schema synchronization hooks.
This is preliminary work related to #13822045
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 22 Jun 2016 17:13:10 +0200] rev 11358
Update to yams 0.44 API
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 20 Jun 2016 17:56:49 +0200] rev 11357
[test] Fix randomness in tests
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 22 Jun 2016 07:56:51 +0200] rev 11356
[test] Drop unused import
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 22 Jun 2016 11:38:53 +0200] rev 11355
[serverctl] allow to sync multiple and all sources in source-sync command
Breaking change: by default source are not synced anymore if it is fresh
(regards to synchronization-interval). To get the previous behavior an option
--force is added.
Closes #13886467
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 22 Jun 2016 15:57:17 +0200] rev 11354
[tox] Split migractions tests from server environment
These are the longest tests in this environment, so running them apart (in
parallel of others) would hopefully speed up the whole suite.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 23 Jun 2016 10:24:11 +0200] rev 11353
[dataimport] Fix rdef loopup in importer
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 22 Jun 2016 16:23:11 +0200] rev 11352
[py3k] left-over unicode() in authobjs.py
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 10 May 2016 16:09:34 +0200] rev 11351
[server] Improve massive deletion of entities
sqlserver is limited on the "IN" array size and produce an error "The query
processor ran out of internal resources and could not produce a query plan".
The exact limitation is unclear but can occur with > 10000 item in the array.
See https://support.microsoft.com/en-us/kb/288095
Now we process the deletion by batch of 10000, some quick benchmarks show that
there is no performance impact:
delete_in(50000): 46.765182972
delete_in_batch(50000): 46.3242430687
delete_in(100000): 62.2969429493
delete_in_batch(100000): 61.8402349949
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 06 Jun 2016 15:18:12 +0200] rev 11350
[hooks] Add a bunch of tests for session synchronization
And change unicode into six.text_type in authobjs.py spotted by new tests.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 06 Jun 2016 15:17:23 +0200] rev 11349
[entities] Drop very old backward compat
from erudi time (even the standard datetime type didn't exist at that time)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 06 Jun 2016 15:28:35 +0200] rev 11348
pep8 + docstrings and comments improvments
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 06 Jun 2016 21:17:33 +0200] rev 11347
[server] some pep8 in rql2sql
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Jun 2016 17:51:11 +0200] rev 11346
[dataimport] Deprecate SQLGenObjectStore
Closes #10338709.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 18 Feb 2016 17:51:12 +0100] rev 11345
[datafeed] attempt to acquire synchronization lock even when force is given
instead of the implementation in e717da3dc164, raise an error if the lock is
already grabbed and catch this error in the caller.
See discussion on https://www.cubicweb.org/revision/10790765
Closes #10451635
Philippe Pepiot <philippe.pepiot@logilab.fr> [Mon, 30 May 2016 17:41:12 +0200] rev 11344
[schema] Cache RQL expressions on schema loading
Add a mapping rql string to rql statement
Deserializing schema is ~36% faster with a lot (> 4000) expressions like those
generated by cubicweb-container.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 07 Jun 2016 12:04:21 +0200] rev 11343
[schema] Avoid parsing RQL expressions twice on schema loading
Kill full_rql (unnecessary)
Use snippet_rql rather than rqlst when possible
Don't access to rqlst cachedproperty from __init__
Deserializing schema is ~40% faster with a lot (> 4000) expressions like those
generated by cubicweb-container.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 22 Jun 2016 10:22:37 +0200] rev 11342
[dataimport] Handle Bytes data in ExtEntity and convert them to Binary
Closes #13887276.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Jun 2016 18:11:40 +0200] rev 11341
[test] Avoid assertCountEqual in unittest_syncschema.py
It's not clear why this happens, but it seems that assertCountEqual does
strange things with unittest2 on Python 2 for equality comparison (trying to
sort constraint objects, even though BaseConstraint raise NotImplemented in
__lt__ from Yams 0.43).
So just avoid using it to get this test passing.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 22 Jun 2016 11:01:16 +0200] rev 11340
[packaging] Bump version number
David Douard <david.douard@logilab.fr> [Mon, 29 Feb 2016 17:07:56 +0100] rev 11339
[web/session] make sure not to modify an inner value of session.data (closes #11217958)
When we modify a mutable value stored in the session's data (dict-like object)
we prevent an alternative session data handler (eg. pyramid-redis-session)
from detecting this update and synchronizing it in its backend (like redis).
David Douard <david.douard@logilab.fr> [Fri, 19 Feb 2016 12:11:31 +0100] rev 11338
[book] improve a bit the documentation of the database setup
also remove the MySQL section.
Alexandre Richardson <alexandre.richardson@logilab.fr> [Tue, 22 Dec 2015 11:26:49 +0100] rev 11337
[doc] add documentation for specializing translation of other cubes in an application cube
Arthur Lutz <arthur.lutz@logilab.fr> [Fri, 21 Aug 2015 11:25:50 +0200] rev 11336
[doc] fix some URLs (cs to test jenkins autobuild )
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 26 May 2016 15:37:28 +0200] rev 11335
[uicfg] Fix typo in set_fields_order
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 23 May 2016 17:40:31 +0200] rev 11334
[forms] We don't want cwjs-edition-cancel class on reledit's cancel button
Else it's bound to a js function that collides with onclick provided by reledit
code.
Closes #13120795
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 21 Jun 2016 13:49:32 +0200] rev 11333
[test] Prefer unittest.main
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 21 Jun 2016 13:49:15 +0200] rev 11332
[test] py.test related fix
We ought not import a concrete test case from a sibling module, else it ends up
partially initialized at some point and later raise assertion error in
setUpClass.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 02 Feb 2016 12:08:49 +0100] rev 11331
[dataimport] add a bit of extra-documentation on the massive store
about prepare_insert_relation limitation on inlined relation and lack of
full-text indexation.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 29 Jan 2016 18:57:30 +0100] rev 11330
[dataimport] no need to call .keys()
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 01 Feb 2016 17:50:05 +0100] rev 11329
[dataimport] drop massive store's flush_metadata method
This method handle a temporary table which sounds useless, and even buggy in
some cases (metadata for a single entity types will be only flushed once even if
flush is called several time). Instead, simply call the method-doing-the job
after entities have been inserted (and make it private along the way).
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 02 Feb 2016 12:10:42 +0100] rev 11328
[dataimport] test and fix external source support for the massive store
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 21 Jun 2016 13:51:19 +0200] rev 11327
[dataimport] add new test for nohook store importing in a custom source
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 01 Feb 2016 17:29:59 +0100] rev 11326
[dataimport] introduce usage of MetadataGenerator into the massive store
This allows more flexibility and code sharing w/ nohook store.
Closes #10338621
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 18:14:27 +0100] rev 11325
[dataimport] rename massive store's metagen_push_relation method
to _insert_meta_relation.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 18:14:55 +0100] rev 11324
[dataimport] meta_data -> metadata
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 16:08:08 +0100] rev 11323
[dataimport] use sql shortcut
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 18:16:47 +0100] rev 11322
[dataimport] move cwmassive_constraint temporary table handling to the PGHelper class
with consistent renaming and some rationalization to avoid doing things several
times and have code slightly easier to grasp.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 18:17:08 +0100] rev 11321
[dataimport] inline some methods of the massive store
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 15:25:32 +0100] rev 11320
[dataimport] move everything related to the "URI handling" feature of the massive store together
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 15:13:39 +0100] rev 11319
[dataimport] test for a value is in a set and insertion in a set should live together
also inline some methods on the way, in the hope to make the public api clearer
at some point, and only put valuable values in those sets so we don't have to
endlessly test for consistency.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 15:08:16 +0100] rev 11318
[dataimport] use a single _initialized set instead of _entities / _rtypes
and rework a bit methods using them so that 'in' test and set insertion leave in
the same method.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 14:34:47 +0100] rev 11317
[dataimport] drop massive store etype to eid index
and fix potential problem with is_instance_of relation insertion in case where
the class of inserted entity has some (yams) parent.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 14:00:50 +0100] rev 11316
[dataimport] add a .schema shortcut attribute on the massive store
also rephrase a bit a method along the way
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 13:41:39 +0100] rev 11315
[dataimport] rework massive store's __init__
* _cnx is set by the parent class
* count_cwuri is not used
* group related things together
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 18:18:20 +0100] rev 11314
[dataimport] rework PGHelper class
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 18:18:44 +0100] rev 11313
[dataimport] flake8
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 14:02:31 +0100] rev 11312
[dataimport] enhance a bit sql queries readability
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 14:14:57 +0100] rev 11311
[dataimport] use IF EXISTS when possible
it's better than try/except and avoid potential concurrency problems.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 11:32:12 +0100] rev 11310
[dataimport] PGHelper should be responsible to retrieve the database schema
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 01 Feb 2016 17:31:35 +0100] rev 11309
[dataimport] introduce a new MetadataGenerator to replace former MetaGenerator
with a similar-but-different API that will allow its usage by the massive store
(no more entity object manipulation), while making it a bit more flexible for
customization by subclasses (experience taken from client code).
Related to #10338621
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 21 Jun 2016 16:37:17 +0200] rev 11308
[dataimport] Prefer now(pytz.utc) to utcnow
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 29 Jan 2016 15:08:13 +0100] rev 11307
[dataimport] rename nohook store .source attribute
so it's clearly not the samething as metagenerator.source. Also add a bit of doc
along the way.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 11:17:31 +0100] rev 11306
[dataimport] make rql store test easier to read and test a few more thing, then reuse it to test nohook start which had no tests at all
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 27 Jan 2016 21:59:34 +0100] rev 11305
[dataimport] remove useless assignment in massive store
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 27 Jan 2016 08:42:28 +0100] rev 11304
[dataimport] move eid attribution from the metagenerator back to the nohook store
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 27 Jan 2016 08:38:04 +0100] rev 11303
[dataimport] rephrase minor bits of the meta generator
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Jun 2016 15:25:36 +0200] rev 11302
[pkg] Depends on logilab-common >= 1.2.2
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Jun 2016 16:35:21 +0200] rev 11301
Merge with 3.22.3
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Jun 2016 14:13:54 +0200] rev 11300
[pkg] Depends on yams >= 0.43
RPM spec file and debian/control got updated previously.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Jun 2016 16:21:07 +0200] rev 11299
Added tag 3.22.3, debian/3.22.3-1, centos/3.22.3-1 for changeset b1e7de000536
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Jun 2016 15:32:51 +0200] rev 11298
[pkg] Version 3.22.3
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Jun 2016 13:45:12 +0200] rev 11297
[pkg] Depends on yams < 0.43
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 01 Jun 2016 15:17:09 +0200] rev 11296
Define BASE_URL and DATA_URL js variables in the login template. Closes #13385185
Those are expected to be defined in almost every js files. They were not before
this patch because login form doesn't use the regular main template.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 10 Jun 2016 13:21:31 +0200] rev 11295
[web] Remove some unused imports in editforms
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 10 Jun 2016 13:21:13 +0200] rev 11294
Fix cancel action on deletion confirmation form
Currently crashed with RequestError: invalid action '__action_cancel'.
It's broken as of https://hg.logilab.org/master/cubicweb/rev/cb217b2b3
This fix is similar as the one done in
https://hg.logilab.org/master/cubicweb/rev/9f1c89e7426d
Closes #13521493
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 06 Jun 2016 21:19:04 +0200] rev 11293
[rql2sql] Test and fix some case of sql generation
when an unstable variable (ie whose type change from one solution to another) is
used in an EXISTS node but belongs to an outer scope.
Closes #13518646.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 21 Jun 2016 13:22:00 +0200] rev 11292
[test] Add missing os import in unittest_migractions.py
Dropped in ^ merge.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 20 Jun 2016 15:04:14 +0200] rev 11291
backport 3.22 changes
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 15 Apr 2016 10:20:34 +0200] rev 11290
[entity] Make it possible to specify sorting terms in cw_related_rqlst method
Closes #12306543.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 16 Jun 2016 17:45:16 +0200] rev 11289
[sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Unique was previously detected in a loop triggered only for String columns.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 17 Jun 2016 14:44:59 +0200] rev 11288
[server] some pep8 changes
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 16 Jun 2016 17:35:39 +0200] rev 11287
pep8 schema2sql
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 02 Jun 2016 17:52:43 +0200] rev 11286
[migration] Drop custom "readfunc" for code.interact in shell
As the referenced bug http://bugs.python.org/issue1288615 got fixed in Python
2.6, this is no longer needed. Furthermore the implementation is not Python 3
compatible (raw_input, unicode).
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 02 Jun 2016 09:41:24 +0200] rev 11285
[tox] Put development dependencies into a dev-requirements.txt file
The latter being sourced in tox.ini.
For now this contains references to hg repositories for some dependencies but
under normal circumstances it should only contain pytest.
This is useful when developping cubicweb itself without using tox but working
with a virtualenv so that one can simply do:
::
$ virtualenv --system-site-packages venv
$ . venv/bin/activate
$ pip install -r dev-requirements.txt
$ python setup.py develop
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 02 Jun 2016 10:27:34 +0200] rev 11284
[py3k] Fix config-level comparison in "cubicweb-ctl create" command
dict.get -> None, and None cannot compare to an int in Python 3.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 06 Jun 2016 09:19:38 +0200] rev 11283
[pkg] PEP8 fixes in __pkginfo__.py
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 06 Jun 2016 09:17:06 +0200] rev 11282
[pkg] Drop "support" of unused subpackage_of option in setup.py
__pkginfo__ does not declare subpackage_of.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 16 Jun 2016 17:09:11 +0200] rev 11281
Add missing import, eaten by previous merge
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 01 Jun 2016 17:05:16 +0200] rev 11280
Only access once to _cw.message in the login form
else the first access may pop the message and the second won't get anything to
display. This works on default message implementation but doesn't on the
pyramid's one, leading to no message displayed on erroneous authentication
attempt, which is not very user friendly.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 16 Jun 2016 15:53:01 +0200] rev 11279
backport 3.22 changes
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 16 Jun 2016 14:19:20 +0200] rev 11278
backport changes from 3.21
Alexandre Richardson <alexandre.richardson@logilab.fr> [Fri, 10 Jun 2016 16:45:20 +0200] rev 11277
[server,bfss] fix bfss migration test for python 3 (related #13519541)
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 10 Jun 2016 13:23:54 +0200] rev 11276
[pkg] Use io.open with utf-8 encoding to read long description from README
This forces decoding so that this is consistent between Python 2 and 3 as, in
Python 3, decoding which would occur anyways and may fail depending on the
environment locale settings.
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Wed, 04 May 2016 23:52:36 +0200] rev 11275
[dataimport] order of ExtEntities should be irrelevant (closes #13117472)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 01 Jun 2016 15:36:18 +0200] rev 11274
Test and fix "pickleability" of Binary objects
which has been recently broken while some cubes rely on this (eg fastimport).
Do some licensing/pep8 cleanup along the way.
Closes #13385274
Alexandre Richardson <alexandre.richardson@logilab.fr> [Tue, 07 Jun 2016 10:05:30 +0200] rev 11273
[server,bfss] fix storage migration when Bytes attributes is None (closes #13519541)
When a Bytes attributes is None before the BFSS storage migration,
the migration crashes. A Bytes attribute can be None, when the attribute
is not required and there is no default value. In this case, the attributes
should remained None after migration and no file is stored on the disk.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 25 May 2016 09:51:51 +0200] rev 11272
Let hg Ignore py.test's .cache directory
And drop rule for .svn along the way.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 15 Apr 2016 08:59:53 +0200] rev 11271
[entity] Add a cw_related_rqlst method returning the RQL select node of cw_related method
This is useful if one wants to modify the query before execution.
A bit a PEP8 style fix in tests along the way.
Related to #12306543.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 20 May 2016 17:05:39 +0200] rev 11270
[devtools] set .config in setUpClass instead of using a cache in a classproperty
This is much clearer and avoid problem with py.test introspection that triggered
creation and caching of the configuration before actual test execution. This
caused pb in unittest_postgres.PostgresStatementTimeoutTC where configuration
was built before module's setup, hence source configuration was missing
information about where to find the pg cluster.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 20 May 2016 12:01:42 +0200] rev 11269
[devtools] Simplify test configuration's init
Specify module's __file__ instead of apphome. __file__ is saved on the class as
it will be used later (eg to find the proper pg cluster without relying on
shared dictionnary modifications).
This will require some tests update, but it should be less common in cubes than
in cubicweb itself.
Rémi Cardona <remi.cardona@logilab.fr> [Thu, 11 Sep 2014 14:22:02 +0200] rev 11268
[web] Have the LoginController return 403 on failed auth (closes #11569950)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 20 May 2016 11:32:23 +0200] rev 11267
[devtools] Drop old init_test_database backward compat
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 20 May 2016 14:43:19 +0200] rev 11266
[devtools] show DeprecationWarning during test execution
They are not shown by default since python 2.7
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 20 May 2016 11:09:46 +0200] rev 11265
[devtools] deprecate usage of sources file for test
This is old support which clutters the code and should no more be used.
As this is rarely used (if it is) and test only, it feels ok to drop support at
once without a deprecation phase.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 20 May 2016 13:07:21 +0200] rev 11264
[devtools] Set dumb value for postgres's db-host to avoid unexpected connection to a local server
Currently, if something goes wrong (eg config built before call to
startpgcluster) while a pg server is running on localhost, it may connect to
this server and run the test in there unexepectedly.
David Douard <david.douard@logilab.fr> [Wed, 25 May 2016 17:19:14 +0200] rev 11263
[ldapfeed] ldap3 do not raise an exception in case of failure of cnx.bind()
but return 'False' instead.
David Douard <david.douard@logilab.fr> [Wed, 25 May 2016 17:43:53 +0200] rev 11262
[test] add a test to ensure we get an AuthenticationError with ldapfeed
when using (correct login, wrong password) credentials
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 22 Apr 2016 16:16:09 +0200] rev 11261
[entity] Exclude computed relations from Entity.copy_relations
Closes #12481591.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 19 May 2016 10:51:33 +0200] rev 11260
[pkg] Set version to 3.22.2.dev0
So that cubes used in test dependencies do not install a released CubicWeb.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 20 May 2016 12:05:29 +0200] rev 11259
[devtools] pep8 a bit package's __init__
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 19 May 2016 17:57:43 +0200] rev 11258
[test/server] Only use configcls with statement timeout when needed
Other tests in PostgresFTITC class apparently do not make use of this
particular configuration.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 19 May 2016 17:55:26 +0200] rev 11257
[server/test] Add an assertion in test_statement_timeout
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 01 Jul 2015 08:58:39 +0200] rev 11256
[datafeed] minor cleanups to cwxml parser
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 23 Sep 2015 10:59:56 +0200] rev 11255
[datafeed] don't allow arbitrary kwargs on DatafeedParser initializer
else they will be handled nicely by appobject base class, while we rather want an
error in the case of a source parser (arguable).
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 01 Jul 2015 08:53:29 +0200] rev 11254
[datafeed] gives information about moved entities to the parser
Also, don't support anymore arbitrary parameters at parser initialization.
Related to #5414754
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 01 Jul 2015 08:45:29 +0200] rev 11253
[datafeed] simplify SQL query used to retrieve information about entities from an external source
no need to join on cw_source
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 01 Jul 2015 08:42:44 +0200] rev 11252
[datafeed] rename parser.sourceuris to source_uris
Its more readable. Also, uniformize related method and local identifier names.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 30 Jun 2015 10:05:46 +0200] rev 11251
[datafeed] move process_urls to the parser
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Jan 2016 17:14:16 +0100] rev 11250
[tox] Use py.test to run tests
In unittest_rqlrewrite.py and repotest.py, rename utility functions so that
they are not considered as "test functions" by py.test.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 19 May 2016 14:21:21 +0200] rev 11249
[test] Fix devtools unittest_i18n when ran without pytest
There is currently some weird error, requiring both to hack cubicweb.__path__
and to stop using load_module_from_name to load the registry.
Introduce a dependency on to-be-released version of logilab common integrating
fix for https://www.logilab.org/ticket/6085650
Do some extra import cleanups along the way.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 05 Feb 2016 14:48:23 +0100] rev 11248
[server] explicitly set postgres LC_MESSAGES variable to C on connection
We parse some error messages so we need them to be in English. It's not
clear to me exactly when that's not the case, but this fixes running
unittest_postgres' "test_constraint_validationerror" with py.test for
Sylvain.
Julien Cristau <julien.cristau@logilab.fr> [Thu, 19 Mar 2015 21:19:52 +0100] rev 11247
[web] cleanup xmlrss view
Don't trigger exceptions unnecessarily, and add line breaks to the
output.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 17 Feb 2016 14:01:35 +0100] rev 11246
[migration] add rollback when replace_eid_sequence_with_eid_numrange fails
If we get here, the current transaction is aborted, so if we are to
assume everything is fine and continue we need to rollback first.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 17 Feb 2016 14:03:56 +0100] rev 11245
[migration] move CWComputedRType later
The ordering in this file is a mess, and things don't actually work this
way (when upgrading from 3.17).
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 19 May 2016 09:18:56 +0200] rev 11244
docstring fix
David Douard <david.douard@logilab.fr> [Tue, 12 Apr 2016 10:35:06 +0200] rev 11243
[cwctl] make cwctl not depends on cubicweb.wsgi (closes #12210063)
cubicweb.wsgi may not be available at all on Debian.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 07 Oct 2015 18:24:49 +0200] rev 11242
[hooks/workflow] pass eids, not entities, from hooks to operations
Passing entity objects around runs the risk of getting out of date data
from caches.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 09 Mar 2016 14:53:33 +0100] rev 11241
[web/httpcache] fix Last-Modified generation
time.mktime takes a time tuple in *local* time. We have an UTC datetime coming
from the last_modified method, which we were interpreting as local time,
leading to hilarity. Use calendar.timegm instead.
Add tests for Last-Modified generation of the 'download' and 'manage'
views.
Florent Cayré <florent.cayre@logilab.fr> [Wed, 04 May 2016 17:07:41 +0200] rev 11240
[forms] Fix edition of TZDatetime attributes
Parse the submitted web form values into a timezone-aware datetime
(by default, UTC) when such an attribute is edited. This is done using
an automatically-selected (by `web.formfield.guess_field`) field named
`TZDatetimeField`.
Closes #12666598.
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Mon, 02 May 2016 17:14:43 +0200] rev 11239
[doc] fix abstract and example of data import
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Sun, 01 May 2016 22:00:14 +0200] rev 11238
[doc] fix abstract of data import
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 29 Apr 2016 12:39:08 +0200] rev 11237
[repository] drop remanescence of old multi-sources code
we don't use anymore this inputmap/varmap thing.
David Douard <david.douard@logilab.fr> [Mon, 09 May 2016 17:24:03 +0200] rev 11236
Added tag 3.20.15, debian/3.20.15-1, centos/3.20.15-1 for changeset 636a83e65870
David Douard <david.douard@logilab.fr> [Mon, 09 May 2016 17:05:14 +0200] rev 11235
[pkg] 3.20.15
David Douard <david.douard@logilab.fr> [Wed, 20 Apr 2016 14:43:48 +0200] rev 11234
[views] do not eat the self._cw.message in LogFormView (closes #12421177)
accessing self._cw.message now(?) eat the message, so don't call
"self._cw.message" twice.
David Douard <david.douard@logilab.fr> [Tue, 19 Apr 2016 13:57:12 +0200] rev 11233
[server] make InternalManager.name() return an empty string (closes #12418708)
Otherwise the notification emails sent via an internal_session never honor the
EMAIL.sender-name configuration option.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 21 Mar 2016 17:10:08 +0100] rev 11232
[test/migractions] work around drop_cube not deleting final etypes
Closes #10096736
Julien Cristau <julien.cristau@logilab.fr> [Mon, 21 Mar 2016 17:09:41 +0100] rev 11231
[hooks] deleting a final entity type shouldn't try dropping an sql table
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 05 Apr 2016 09:10:17 +0200] rev 11230
[tox] Use a revision on proper branch for Yams
"default" is not good when some bug fix release suddenly comes out...
Julien Cristau <julien.cristau@logilab.fr> [Tue, 29 Mar 2016 14:35:28 +0200] rev 11229
[webconfig] disable generate-staticdir by default
Its side effects mean it can be inconvenient, and using it requires
manual (web server) config changes anyway, so there's no reason it needs
to be enabled by default.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 21 Mar 2016 15:24:17 +0100] rev 11228
[test] Skip test_deserialization_base (unittest_repository.SchemaDeserialTC)
See ticket #10096736.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 29 Mar 2016 17:00:13 +0200] rev 11227
[devtools] drop unused DumbOrderedDict2 class
Julien Cristau <julien.cristau@logilab.fr> [Tue, 29 Mar 2016 16:56:59 +0200] rev 11226
[devtools] fix sorting in ExecutionPlan._check_permissions on python3
Sort lists instead of dict_items objects to get predictable results.
With this change, unittest_querier.UtilsTC.test_preprocess_security
passes every time instead of once in a blue moon. Closes #11759133.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 21 Mar 2016 13:55:29 +0100] rev 11225
[test] assertItemsEqual → assertCountEqual in unittest_repository.py
Julien Cristau <julien.cristau@logilab.fr> [Thu, 24 Mar 2016 09:43:25 +0100] rev 11224
merge 3.20.14 in 3.21 branch
Julien Cristau <julien.cristau@logilab.fr> [Mon, 21 Mar 2016 18:08:47 +0100] rev 11223
Added tag 3.20.14, debian/3.20.14-1, centos/3.20.14-1 for changeset f66a4895759e
Julien Cristau <julien.cristau@logilab.fr> [Mon, 21 Mar 2016 17:59:40 +0100] rev 11222
[pkg] 3.20.14
Julien Cristau <julien.cristau@logilab.fr> [Mon, 21 Mar 2016 10:53:44 +0100] rev 11221
[tox] use master URL for yams repository
No need to clone from review. This should help get consistent results.
Laura Médioni <laura.medioni@logilab.fr> [Tue, 19 Jan 2016 16:11:16 +0100] rev 11220
[pylint] Avoid invalid-name on schema relation class names
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 20 Jan 2016 08:26:30 +0100] rev 11219
[pylint] more work on the pylint support
* uniformize usage of ClassDef and simplify related import
* don't insert in the ast a python function but an astroid representation of that function
* ignore __pkginfo__ file
* drop attr-rgx, variable-rgx and argument-rgx, put the name in good-names instead
* drop additional-builtins
* add cell_call to the list of methods for which we don't want 'abstract-method'
Laura Médioni <laura.medioni@logilab.fr> [Tue, 19 Jan 2016 14:07:59 +0100] rev 11218
[pylint] remove abstract-method warning
This kind of message is targeted:
"Method 'entity_call' is abstract in class 'EntityView' but is not overridden (abstract-method)"
For now, only "entity_call" and "render_body" are dealt with, the list can be extended.
Laura Médioni <laura.medioni@logilab.fr> [Tue, 19 Jan 2016 11:43:52 +0100] rev 11217
[pylint] upgrade pylintext plugin
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 19 Jan 2016 13:24:44 +0100] rev 11216
update and enhance pylintrc
Julien Cristau <julien.cristau@logilab.fr> [Wed, 16 Mar 2016 11:56:32 +0100] rev 11215
[schema] use json to serialize constraints
Require yams 0.43: constraints are serialized to json, which means we
need to recreate the actual checks in the database on upgrade.
Temporary deps in tox.ini to pull respective changes in yams.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 16 Mar 2016 17:59:10 +0100] rev 11214
[pkg] fix cubicweb.spec syntax
(grafted from 3309ddb970594cd54529f5c205d1ea5b5da4131e)
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 16 Mar 2016 10:06:18 +0100] rev 11213
[pkg] Use Twisted < 16.0.0
We have some test failures with 16.0.0, such as:
- test_put_content (unittest_server.ETwistHTTPTC)
- test_base_url (unittest_httptest.TwistedCWAnonTC)
(grafted from 10c12f31d0fe38c2e8814176fc42bf2ea210efdf)
Julien Cristau <julien.cristau@logilab.fr> [Wed, 16 Mar 2016 17:59:10 +0100] rev 11212
[pkg] fix cubicweb.spec syntax
Julien Cristau <julien.cristau@logilab.fr> [Wed, 16 Mar 2016 15:55:56 +0100] rev 11211
[cwconfig] Use imp.load_source instead of exec() to load site_cubicweb.py from apphome
Lets us return a module object and go back to the previous code in
CubicWebConfiguration._load_site_cubicweb.
Rémi Cardona <remi.cardona@logilab.fr> [Tue, 15 Mar 2016 11:24:51 +0100] rev 11210
[cwconfig] Stop using lgc.modutils to load *config.py and *ctl.py files
Rémi Cardona <remi.cardona@logilab.fr>, Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 16 Mar 2016 13:53:03 +0100] rev 11209
[cwconfig] Stop using lgc.modutils to load site_cubicweb.py files
config.load_site_cubicweb function now takes a list of cubes (instead of
paths) and default to all known cubes.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 16 Mar 2016 11:31:40 +0100] rev 11208
[test] Use a Popen in i18n tests
Instead of check_call, so that we clearly see the failure.
A bit of flake8 along the way.
Vladimir Popescu <vladimir.popescu@logilab.fr> [Tue, 06 May 2014 17:45:37 +0200] rev 11207
[forms] Fix HTableFormRenderer _render_fields method behavior when display_label is False.
Indeed, now the extra <tr><th>...</th></tr> are not inserted anymore unless
display_label is True.
Closes #3811325.
Aurelien Campeas <aurelien.campeas@logilab.fr> [Tue, 17 Mar 2015 15:21:29 +0100] rev 11206
[connection] remove a dead counter
Related to #1381328.
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 16 Jul 2014 17:34:21 +0200] rev 11205
[session] drop .is_repo_in_memory
This is deader than a dead dog's bone buried down a blind alley off a
dead-end street in a ghost town.
Related to #1381328.
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 16 Mar 2016 11:39:24 +0100] rev 11204
[session] drop session-as-a-context-manager
It made little sense in the 3.19 - session-as-cnx-bw-compat era, maybe.
Related to #1381328.
Aurelien Campeas <aurelien.campeas@logilab.fr> [Thu, 12 Jun 2014 18:37:29 +0200] rev 11203
[devtools/repotest] use the RepoAccess object
Quite better than playing tricks with the Repo._sessions.
Related to #1381328.
Aurelien Campeas <aurelien.campeas@logilab.fr> [Tue, 01 Jul 2014 18:25:20 +0200] rev 11202
[devtools] adapt stresstester to current APIs
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 16 Mar 2016 12:11:18 +0100] rev 11201
[session] retire session.vreg
Related to #1381328.
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 16 Jul 2014 16:26:16 +0200] rev 11200
[session] fix super call in Connection.__init__
The vile hacks in test fixtures are fixed.
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 16 Jul 2014 15:30:16 +0200] rev 11199
[session,repo] remove last trace of "cnxprops"
Related to #1381328.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 16 Mar 2016 10:06:18 +0100] rev 11198
[pkg] Use Twisted < 16.0.0
We have some test failures with 16.0.0, such as:
- test_put_content (unittest_server.ETwistHTTPTC)
- test_base_url (unittest_httptest.TwistedCWAnonTC)
Julien Cristau <julien.cristau@logilab.fr> [Tue, 15 Mar 2016 16:58:50 +0100] rev 11197
[web/views] stop using cwaction='cancel'
It's broken as of https://hg.logilab.org/master/cubicweb/rev/cb217b2b3
Julien Cristau <julien.cristau@logilab.fr> [Wed, 16 Mar 2016 00:42:40 +0100] rev 11196
[test] fix test_printable_value_bytes with current pygments
An empty span was added in
https://bitbucket.org/birkenfeld/pygments-main/commits/164574c13533195a555181a2b9c685fea2470403
Aurelien Campeas <aurelien.campeas@logilab.fr> [Thu, 12 Jun 2014 15:54:44 +0200] rev 11195
[session, repository] deprecate repo.connect and move .close reponsibility to session object
Repository.new_session just returns a plain session object, and
`.connect` (which returns a sessionid) is deprecated.
For .close::
session.close() # done !
The session will bear the responsibility to call the "session_close"
event but that's better than the previous idiom::
repo.close(session.sessionid)
which involves both objects.
Related to #1381328.
Related to #2919309.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 09 Mar 2016 14:11:47 +0100] rev 11194
[web/test] fix typo in doc string
Julien Cristau <julien.cristau@logilab.fr> [Wed, 09 Mar 2016 19:00:09 +0100] rev 11193
[web/httpcache] send weak ETags
There's no way we can provide a strong validator in general (especially
considering how ETags are generated by the current EtagHTTPCacheManager
and EntityHTTPCacheManager). So mark our entity-tags as weak.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 04 Mar 2016 12:17:58 +0100] rev 11192
[server] print backend exception if we fail to execute an sql script
It's more useful to see
could not open extension control file "/usr/share/postgresql/9.4/extension/postgis.control": No such file or directory
rather than merely
-> ERROR, skipping /usr/share/cubicweb/cubes/postgis/schema/_ext.postgres.sql
Julien Cristau <julien.cristau@logilab.fr> [Tue, 15 Mar 2016 14:59:24 +0100] rev 11191
[cwctl] drop unnecessary admincnx call from 'shell'
The connection is done by the migration helper.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 07 Mar 2016 17:51:30 +0100] rev 11190
[serverctl] allow schema-diff when db and fs are not in sync
Aurelien Campeas <aurelien.campeas@logilab.fr> [Wed, 09 Jul 2014 16:33:08 +0200] rev 11189
[cwctl] remove networked remote shell
This was a dbapi leftover.
Related to #3933480.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 15 Mar 2016 14:30:21 +0100] rev 11188
[web/calendar] fix regression in previous changeset
"Enables css customization in CalendarView" was untested, and introduced a crash:
TypeError: not all arguments converted during string formatting
Laura Médioni <laura.medioni@logilab.fr> [Mon, 17 Mar 2014 15:21:47 +0100] rev 11187
Enables css customization in CalendarView
now a custom css class can be set on the calendar div (closes #3654043).
Alexandre Richardson <alexandre.richardson@logilab.fr> [Thu, 17 Sep 2015 12:47:39 +0200] rev 11186
refactor a bit breadcrumbs to ease overriding of the root's display
Julien Cristau <julien.cristau@logilab.fr> [Wed, 14 Jan 2015 13:35:22 +0100] rev 11185
Add migration helper function to delete entity types faster
Bypasses all hooks and (for now) ignores any composite relations.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 14 Mar 2016 15:38:03 +0100] rev 11184
[testlib] Import nocoverage from logilab.common.testlib
This depends on a change in logilab-common 1.2.0
Julien Cristau <julien.cristau@logilab.fr> [Mon, 14 Mar 2016 21:28:44 +0100] rev 11183
[web/test] replace unicode with six.text_type
Some uses of unicode reappeared when merging changes from 3.19.14.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 18 Feb 2016 10:23:05 +0100] rev 11182
[devtools/testlib] Issue a RuntimeError when a generative tests is detected
Otherwise, generative tests *Ã la logilab-common* in CubicWebTC test cases
would silently not run (at least using logilab.common.pytest runner).
Julien Cristau <julien.cristau@logilab.fr> [Thu, 18 Feb 2016 09:30:58 +0100] rev 11181
[devtools] stop using lgc.testlib.TestCase
It's become incompatible with unittest(2).TestCase due to generative
tests. Just keep the datadir/datapath and assertCountEqual bits in our
BaseTestCase.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 03 Mar 2016 10:25:32 +0100] rev 11180
[test] Replace remaining generative tests by subtests
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 14 Mar 2016 18:15:09 +0100] rev 11179
[tox] Enable all applicable py34 environments
All except etwist.
Comes with a few tricks in tox.ini:
* add ``-e.`` to force installing of cubicweb in development because
dependency cubes would otherwise install cubicweb 3.22 (the latest release),
which is not python3 installable.
* "install" cubes/__init__.py because the file is not installed in
develop mode; maybe this file should be managed by cubes themselves...
Julien Cristau <julien.cristau@logilab.fr> [Wed, 09 Mar 2016 17:01:42 +0100] rev 11178
[migration/3.10] fix AttributeError
'Connection' object has no attribute 'HOOKS_DENY_ALL'
Julien Cristau <julien.cristau@logilab.fr> [Mon, 07 Mar 2016 17:53:20 +0100] rev 11177
[server/sources] Fix authenticate on pre-3.10 database
When migrating from a pre-3.10 database, the CWSource entity type and
cw_source relation type are not known, but authenticate should still
work to be able to add them.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 29 Jan 2016 17:11:17 +0100] rev 11176
[test] Add a test ensuring new cube built from skeleton is flake8-compliant
And make skeleton files actually flake8-compliant henceforth.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 25 Jan 2016 08:28:16 +0100] rev 11175
[skeleton] Ship a tox.ini file upon new cube
Julien Cristau <julien.cristau@logilab.fr> [Thu, 10 Mar 2016 13:47:20 +0100] rev 11174
[web] fix headers on 304 responses (closes #11466875)
The response MUST include the following header fields:
[...]
- ETag and/or Content-Location, if the header would have been sent
in a 200 response to the same request
https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5
Unfortunately we weren't copying headers from what would have been the
200 response, but from the request.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 09 Mar 2016 18:01:44 +0100] rev 11173
[web/httpcache] GMTOFFSET no longer exists
Julien Cristau <julien.cristau@logilab.fr> [Thu, 10 Mar 2016 13:47:20 +0100] rev 11172
[web] fix headers on 304 responses (closes #11466875)
The response MUST include the following header fields:
[...]
- ETag and/or Content-Location, if the header would have been sent
in a 200 response to the same request
https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5
Unfortunately we weren't copying headers from what would have been the
200 response, but from the request.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 29 Feb 2016 12:32:52 +0100] rev 11171
[rset] fix infinite recursion introduced in c1eb5a676c80
The mechanism to avoid loops in c1eb5a676c80 "[rset] Always complete
attribute/relation caches in ResultSet.get_entity" breaks down: we would
loop forever if two entities that were already in the cache were linked
by a relation with ? or 1 cardinality in both directions. To avoid
that, keep a set of already-considered columns. Related to #9942503.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 17 Feb 2016 10:02:03 +0100] rev 11170
pep8 unittest_application and unittest_formfields
Alexandre Richardson <alexandre.richardson@logilab.fr> [Tue, 12 Jan 2016 14:31:14 +0100] rev 11169
[rset] Always complete attribute/relation caches in ResultSet.get_entity
RQL queries are often designed to fill up the ORM's caches when fetching
entities out of the result set. Until now, if an entry already existed
in the entity cache, ResultSet.get_entity would return it unchanged,
not using the new ResultSet's contents to update the attribute cache,
breaking expectations (if the attributes are needed, they'd then be
fetched later one at a time, one entity at a time), resulting in loads
of DB accesses.
So we change ResultSet.get_entity so that:
* if the entity is already cached and has been instantiated from the
same rset, it is returned as-is (to avoid loops)
* if the entity is not yet cached, it is instantiated
* if the entity is cached via another rset, its attribute/relation
caches are completed
Closes #9942503
Alexandre Richardson <alexandre.richardson@logilab.fr> [Tue, 12 Jan 2016 17:36:28 +0100] rev 11168
[rset] refactoring of _build_entity method
define a method for entity instantiation and storage in cache
(related to #9942503)
Julien Cristau <julien.cristau@logilab.fr> [Thu, 25 Feb 2016 09:28:21 +0100] rev 11167
[entity] comparing two entities returns NotImplemented
Fixes a test when using some versions of unittest2, where
assertItemsEqual tries a sort and expects TypeError, which it doesn't
get if we directly raise NotImplementedError. The NotImplemented value
is treated specially by the interpreter:
https://docs.python.org/3.4/library/constants.html#NotImplemented
Julien Cristau <julien.cristau@logilab.fr> [Thu, 18 Feb 2016 09:24:43 +0100] rev 11166
[test] replace one use of lgc.testlib.unittest_main with unittest.main
Julien Cristau <julien.cristau@logilab.fr> [Thu, 18 Feb 2016 09:23:18 +0100] rev 11165
[test] stop using TestCase.set_description
It's a lgc-ism.
Julien Cristau <julien.cristau@logilab.fr> [Thu, 18 Feb 2016 09:20:57 +0100] rev 11164
[test] convert a lgc-style generative test into unittest2-style
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 16:10:22 +0100] rev 11163
[web/application] fix query log handling on python3
Writing bytes to a file opened in text mode doesn't work.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 16:32:36 +0100] rev 11162
[devtools/test] duplicate CubicWebServerTC tests for CubicWebWsgiTC
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 16:32:07 +0100] rev 11161
[devtools/test] fix bytes vs text in test_base_url
Needed for python3 with the next changeset
Julien Cristau <julien.cristau@logilab.fr> [Wed, 24 Feb 2016 17:34:56 +0100] rev 11160
[devtools] skip CubicWebServerTC on python3
People should migrate to wsgi if they're going to use CubicWeb on
python3.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 16:10:51 +0100] rev 11159
[web/test] switch unittest_web from twisted to wsgi
And make it pass on python3 while at it.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 24 Feb 2016 17:31:56 +0100] rev 11158
[devtools] add CubicWebWsgiTC
Similar to CubicWebServerTC, except using wsgiref instead of twisted as
an http server.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 15:37:52 +0100] rev 11157
[web/test] return the hash of uploaded files in FileUploadTC instead of their contents
json must be unicode, which doesn't go well with arbitrary file
contents. Compute the file hash instead, as we know the hexdigest is
(ascii) text.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 15:29:06 +0100] rev 11156
[web/test] open() as a context manager
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 15:28:14 +0100] rev 11155
[web/test] json.loads expects text, not bytes
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 16:39:51 +0100] rev 11154
[wsgi] fix handling of multiple posted files
We were only keeping the last received file.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 05 Feb 2016 18:23:00 +0100] rev 11153
[web/test] Reword doc string for fileupload ajaxfunc
David Douard <david.douard@logilab.fr> [Tue, 03 Mar 2015 12:26:47 +0100] rev 11152
[skeleton] do not import the __pkginfo__.py module to make cubes installable via setuptools
When using a simple "import" statement, running 'python setup.py install' for
a cube fails in a fresh virtualenv due to the fact the install of the
dependencies (here cubicweb iteself) is done by the python process doing the
cube's installation, so the __pkginfo__ module from the cube is already
loaded (thus used) when installing cubicweb...
So we apply the third technique from:
https://packaging.python.org/en/latest/single_source_version.html
Julien Cristau <julien.cristau@logilab.fr> [Tue, 23 Feb 2016 12:18:47 +0100] rev 11151
merge changes from 3.22.2
Julien Cristau <julien.cristau@logilab.fr> [Tue, 23 Feb 2016 12:09:01 +0100] rev 11150
Added tag 3.22.2, debian/3.22.2-1, centos/3.22.2-1 for changeset 1b93ff37755b
Julien Cristau <julien.cristau@logilab.fr> [Tue, 23 Feb 2016 11:45:54 +0100] rev 11149
[pkg] 3.22.2
Samuel Trégouët <samuel.tregouet@logilab.fr> [Fri, 19 Feb 2016 11:23:11 +0100] rev 11148
[pkg] fix centos install
David Douard <david.douard@logilab.fr> [Fri, 19 Feb 2016 11:03:32 +0100] rev 11147
[datafeed] do NOT call commit in DataFeedXMLParser.process() (closes #10928592)
and so, remove more useless code.
Doing a commit in DataFeedXMLParser.process() is a bad idea because this method
is called for every imported/updated entity, before handling deletions. So if
we commit here, odds are quite high that we're violating some integrity
constraint and end up with a ValidationError.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 17 Feb 2016 14:00:39 +0100] rev 11146
[schema] restore constraint checking when running on old sqlite
Old sqlite3 doesn't provide CHECK constraint names in error messages,
preventing us from translating a backend integrity error into a
ValidationError. This was added in 2012, but the sqlite3 version in
RHEL6 is older; so if we run on old sqlite, keep checking the
constraints in python rather than only in SQL.
Closes #10927494
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 17 Feb 2016 17:20:29 +0100] rev 11145
[web/autoform] fix regression introduced by #5758ba784ebd
The changes from cset 5758ba784ebd "[autoform] when building inlined-form view
for a relation, consider related entities intead of other views" lead to
an unexpected 'add new' link on creation of an entity with inlined form for
a relation of cardinality 1. To avoid this, we should consider formviews and not
existing relations when the entity is being created.
Closes #10860258
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 22 Dec 2015 09:23:00 +0100] rev 11144
[tox] Generate test environments for Python 2.7 and 3.4
Test commands for each environment are written down explicitly since I could
not find a way to extract the "package" name (e.g. "hooks") from the
environment name (e.g. "py34-hooks").
For Python 3.4 interpreter, only environments (subpackages) that do not depend
on cubes for their tests are listed since those test dependency cubes are not
yet installable with Python 3.x. etwist is also not included since the Python
3 port is not complete at the moment.
From local testing, py34 tests pass for the following subpackages:
- dataimport
- entities
- ext
- hooks
- wsgi
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 26 Jan 2016 18:04:00 +0100] rev 11143
[notification] avoid using InternalManager when we've got a CWUser
This will avoid potential information leak due to missed security restriction
and is more compatible with legacy code (pb encountered in some client code).
Closes #10294761
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 27 Jan 2016 08:35:51 +0100] rev 11142
[dataimport] rename .time to .now attribute of meta generator
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 18 Feb 2016 14:36:39 +0100] rev 11141
[pkg] Set version to 3.22.2.dev0
So that cubes used in test dependencies do not install a released CubicWeb.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 29 Jan 2016 15:08:34 +0100] rev 11140
[dataimport] cleanup a bit nohook store, mostly protecting some attributes
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 03 Feb 2016 11:13:51 +0100] rev 11139
[dataimport] add a filter function to not fail if some extentity has several values for an attribute of final relation
the function will simply record a warning in the import log and keep a value
randomly.
Notice the function has to be explicitly inserted in the transformation stream.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 03 Feb 2016 11:12:09 +0100] rev 11138
[sources] synchronize source asynchronously when started from the UI
and redirect to the forthcoming import log, for a better user experience (there
is still a lot more to do there though).
Closes #10468967
Julien Cristau <julien.cristau@logilab.fr> [Fri, 19 Feb 2016 12:35:22 +0100] rev 11137
[test] fix unittest_devctl on python3.4
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 21 Jan 2016 09:24:04 +0100] rev 11136
[test] Make sure that newcube command test produces expected files
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 29 Jan 2016 10:04:35 +0100] rev 11135
[server] remove some pre 3.10 compat
Let's assume nobody will try upgrading an instance from pre-3.10
cubicweb to 3.23+. If they do, they're setting themselves up for a lot
of pain anyway.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 17 Feb 2016 10:25:51 +0100] rev 11134
[pkg] use https URLs to pypi.{python.org,debian.net}
Julien Cristau <julien.cristau@logilab.fr> [Wed, 17 Feb 2016 10:19:14 +0100] rev 11133
[pkg] use https URL for www.cubicweb.org
Julien Cristau <julien.cristau@logilab.fr> [Wed, 17 Feb 2016 10:18:34 +0100] rev 11132
README: use https URLs for docs.cubicweb.org
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 11 Feb 2016 10:03:51 +0100] rev 11131
pep8 bits
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 11 Feb 2016 10:03:31 +0100] rev 11130
[i18n] enhance text formats french translation
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 17 Feb 2016 13:45:34 +0100] rev 11129
Merge with 3.22 branch
The merge was clean, just dropped cubicweb/web/data/cubicweb.goa.js.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 11 Feb 2016 21:59:49 +0100] rev 11128
[dataimport] update example to use standard importer
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 19:18:37 +0100] rev 11127
merge changes from 3.21.6
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 02 Feb 2016 17:19:13 +0100] rev 11126
flake8 serverctl
Sylvain Thénault <sylvain.thenault@logilab.fr> [Tue, 16 Feb 2016 10:52:00 +0100] rev 11125
c-c source-sync now actually force synchronization
as advertized by its help message. This was because "force" argument wasn't
considered by acquire_synchronization_lock().
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 19:15:48 +0100] rev 11124
Added tag 3.21.6, debian/3.21.6-1, centos/3.21.6-1 for changeset b3cbbb7690b6
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 18:53:27 +0100] rev 11123
[pkg] 3.21.6
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 18:41:40 +0100] rev 11122
merge changes from 3.20.13
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 18:17:35 +0100] rev 11121
Added tag 3.20.13, debian/3.20.13-1, centos/3.20.13-1 for changeset 8c5dabbcd4d9
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 17:54:17 +0100] rev 11120
[pkg] 3.20.13
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 04 Jan 2016 10:43:35 +0100] rev 11119
[pkg] Yams >= 0.42 breaks CubicWeb < 3.21
Closes #9720390.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 17:16:45 +0100] rev 11118
merge changes from 3.19.14
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 14:52:28 +0100] rev 11117
Added tag 3.19.14, debian/3.19.14-1, centos/3.19.14-1 for changeset 72a0f70879ac
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 11:02:04 +0100] rev 11116
[pkg] 3.19.14
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 11:01:09 +0100] rev 11115
[sources/native] remove extra space before colon
This isn't French.
Julien Cristau <julien.cristau@logilab.fr> [Tue, 16 Feb 2016 10:52:38 +0100] rev 11114
[web/views] fix editcontroller regression
unittest_views_basecontrollers.py's
EditControllerTC.test_edit_mandatory_inlined3_object regressed with
changeset dcbb64d3a1d9 because it relied on POSTing nonexisting eids.
This seems like a silly idea, but let's keep the behaviour unchanged.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 12 Feb 2016 16:13:43 +0100] rev 11113
Added tag 3.22.1, debian/3.22.1-1, centos/3.22.1-1 for changeset d0d86803a804
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Feb 2016 15:31:48 +0100] rev 11112
fix test broken by #012e6c7d02ef
Julien Cristau <julien.cristau@logilab.fr> [Fri, 12 Feb 2016 15:21:21 +0100] rev 11111
[pkg] Attempt to fix rhel6 build
I don't know what I'm doing, but this seems to work.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 12 Feb 2016 15:19:59 +0100] rev 11110
[dataimport/test] fix python2.6 syntax error
Don't use braces for set literals.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 12 Feb 2016 14:09:38 +0100] rev 11109
Remove unused import in entity.py
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Feb 2016 10:09:13 +0100] rev 11108
[migration] don't ask confirm for those sql queries
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Feb 2016 10:06:03 +0100] rev 11107
quick fix which closes #0673348 - see comment for more info
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 12 Feb 2016 10:39:24 +0100] rev 11106
[migration] test if entity type has been in the deleted in the transaction should protect both clauses
else we may attempt to execute the UPDATE query on a table which has been
deleted.
Closes #10692374
Julien Cristau <julien.cristau@logilab.fr> [Fri, 12 Feb 2016 10:39:14 +0100] rev 11105
[pkg] 3.22.1
David Douard <david.douard@logilab.fr> [Mon, 06 Jul 2015 11:04:42 +0200] rev 11104
[cwctl] remove support for startorder file in /etc/cubicweb.d (closes #5618947)
It's now useless.
Arthur Lutz <arthur.lutz@logilab.fr> [Wed, 10 Feb 2016 14:43:05 +0100] rev 11103
[exceptions] fix string conversion for Unauthorized exception
changeset 3cb87b61b067 changed CubicWebException to define __unicode__
as the main entry point for string conversion, but left Unauthorized's
__str__ definition unchanged, leading to a mismatch. Closes #10646396.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 08 Feb 2016 11:01:46 +0100] rev 11102
Fix Binary on python < 2.7.4 (closes #10593811)
Before the fix for http://bugs.python.org/issue10211 we can't pass a
buffer object to BytesIO, so keep using StringIO in that case. And
because StringIO is an old-style class, we can't use super().
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 11 Feb 2016 22:00:48 +0100] rev 11101
[migration] fix crash on 3.22 upgrade if entity type doesn't exist in fsschema (pending removal)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 04 Feb 2016 12:00:23 +0100] rev 11100
[autoform] when building inlined-form view for a relation, consider related entities intead of other views
by considering previous form-views, we may miss that there exists related
entities but which are not editable.
Closes #10495602
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 29 Jan 2016 17:22:25 +0100] rev 11099
Add a __main__ to cubicweb
This avoids calling cubicweb-ctl relatively in tests and could be useful
in virtualenv.
This is just a copy of bin/cubicweb-ctl file, which should probably be
generated from a setuptools entry points.
Julien Cristau <julien.cristau@logilab.fr> [Wed, 03 Feb 2016 15:12:32 +0100] rev 11098
merge 3.19 heads
Getting an unexpected test error though:
ERROR: test_edit_mandatory_inlined3_object (unittest_views_basecontrollers.EditControllerTC)
Christophe de Vienne <christophe@unlish.com> [Sat, 30 Jan 2016 23:06:18 +0100] rev 11097
[cwvreg] Fix propertyvalues hot updates
When CWProperty instances are touched, the corresponding value gets
updated in vreg['propertyvalues'], but their type was ignored.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 05 Feb 2016 16:49:22 +0100] rev 11096
[pkg] remove useless python >= 3.4 dependency
python is python2 is never >= 3.4.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 05 Feb 2016 16:32:20 +0100] rev 11095
[dataimport/test] fix test failures since 35b29f1eb37a
The index name changed, so we need to follow suit.
Samuel Trégouët <samuel.tregouet@logilab.fr> [Fri, 05 Feb 2016 12:26:28 +0100] rev 11094
[pkg] do not include toplevel directories in rpm (closes #10362119)
Our spec file conflicts with the filesystem package in centos7: we set
permissions to 0755 for /usr/bin and /usr/lib whereas filesystem sets
them to 0555.
So to be compatible with both centos7 and others we simply ignore these
directories.
Julien Cristau <julien.cristau@logilab.fr> [Fri, 05 Feb 2016 10:30:01 +0100] rev 11093
[devtools] fix config.repository signature
Its argument is called 'vreg', not 'x'. Closes #10515113.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 03 Feb 2016 16:23:34 +0100] rev 11092
[predicates] fix paginated_rset when the class has no page_size_property
Fixes test failure introduced by 70733b2dfd2a, which assumed paginated_rset
would only be called on a class with a page_size_property attribute.
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 03 Feb 2016 14:23:17 +0100] rev 11091
[repository] drop usage of no more necessary eschema_eid function
since the previous cset, we are guaranteed that repository's entity schema will
have their eid attribute properly set, so we don't have anymore to check
everytime if some entity schema's .eid attributes is set or not (and retrieve it
if not).
Related to #10450092
Sylvain Thénault <sylvain.thenault@logilab.fr> [Thu, 28 Jan 2016 18:17:30 +0100] rev 11090
[repository] set .eid on eschema when schema is loaded from the filesystem
enforcing the contract that a repository's schema should have .eid attribute of
entity schema set to the eid of the entity used to serialize them in the db.
Before this cset, this was not true during tests or for some c-c commands where
'quick_start' is set (eg db-restore, i18ncube...).
The change in server __init__ makes this assumption true during instance
creation: the serializing code was actually setting eid on schema object, but a
reference to a previously built schema was given instead of the one for the
latest created repository.
Closes #10450092
Sylvain Thénault <sylvain.thenault@logilab.fr> [Fri, 29 Jan 2016 10:06:36 +0100] rev 11089
[dataimport] simplify SQLGenSourceWrapper.add_info
At this point 'CWSource' is a thing (we're not in the middle of a
migration), and source.eid won't be None (we read it from the db)
Sylvain Thénault <sylvain.thenault@logilab.fr> [Mon, 01 Feb 2016 15:10:35 +0100] rev 11088
ensure .tox is blacklisted when recursing on the fs to get some files
among others, avoid crash when using 'c-c i18ncube' on a cube using tox.
Closes #10429317
Sylvain Thénault <sylvain.thenault@logilab.fr> [Wed, 03 Feb 2016 11:12:58 +0100] rev 11087
drop a note about usage of sqls_create_multicol_unique_index and avoid a lgdb warning
Julien Cristau <julien.cristau@logilab.fr> [Thu, 21 Jan 2016 16:08:17 +0100] rev 11086
[devtools] don't auto-populate virtual relations
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 29 Jan 2016 16:48:58 +0100] rev 11085
[skeleton] Restore verbose output in setup.py
This part of commit fdadf59be612 missing the integration window.