Philippe Pepiot <ph@itsalwaysdns.eu> [Tue, 31 Mar 2020 18:12:20 +0200] rev 12965
[server] Enhance connections-pooler-enabled documentation
Philippe Pepiot <ph@itsalwaysdns.eu> [Tue, 31 Mar 2020 16:17:14 +0200] rev 12964
[server] move connection pooler initialization logic to get_cnxset()
This avoid complex logic in Repository initialization.
Philippe Pepiot <ph@itsalwaysdns.eu> [Mon, 30 Mar 2020 15:46:12 +0200] rev 12963
[server] dynamically close idle database connections
When pool hasn't been empty for `idle_timeout` time, start closing connections.
Philippe Pepiot <ph@itsalwaysdns.eu> [Mon, 30 Mar 2020 15:45:40 +0200] rev 12962
[server] implement dynamic database pooler
Opening too much database connection has a cost at startup and also PostgreSQL
as a maximum number of connection (100 by default).
This get worse when starting multiple wsgi processes, since each process has
its own database pool.
Instead of opening `connections-pool-size` connections to the database at
startup, just open one and open more only when needed.
Philippe Pepiot <ph@itsalwaysdns.eu> [Mon, 30 Mar 2020 15:30:02 +0200] rev 12961
[server] use a LifoQueue in _CnxSetPool
In postgresql, some cache is attached to the connection. Using a LifoQueue
(last-in, first-out) makes a few connections to get the most load which give
best performance.
Philippe Pepiot <ph@itsalwaysdns.eu> [Mon, 30 Mar 2020 15:23:56 +0200] rev 12960
[server] extract creating a new cnxset in a _new_cnxset() helper
So we can move logic specific to _CnxSetPool here.
Philippe Pepiot <ph@itsalwaysdns.eu> [Mon, 30 Mar 2020 15:19:23 +0200] rev 12959
[server] avoid a possible race condition on _CnxSetPool.close()
The pool could become empty between time to check and time to use.
Philippe Pepiot <ph@itsalwaysdns.eu> [Mon, 30 Mar 2020 15:17:10 +0200] rev 12958
[server] extract "no pooler" CnxSet class to a _BaseCnxSet class
So we get rid of "if self._queue is None" in each method of _CnxSetPool
Also add helper get_cnxset(source, size) to instantiate the correct pooler class.
Philippe Pepiot <ph@itsalwaysdns.eu> [Tue, 31 Mar 2020 19:15:03 +0200] rev 12957
[server] prevent returning closed cursor to the database pool
In since c8c6ad8 init_repository use repo.internal_cnx() instead of
repo.system_source.get_connection() so it use the pool and we should not close
cursors from the pool before returning it back. Otherwise we may have
"connection already closed" error.
This bug only trigger when connection-pool-size = 1. Since we are moving to use
a dynamic pooler we need to get this fixed.
This does not occur with sqlite since the connection wrapper instantiate new
cursor everytime, but this occur with other databases.
Laurent Wouters <lwouters@cenotelie.fr> [Fri, 20 Mar 2020 14:34:07 +0100] rev 12931
[rql] Store selected variables for RQL select queries in ResultSet (#17218476)
By storing the name of the selected variables for RQL select queries in the
ResultSet (within the "variables" attribute), the information can be passed
down to specific protocols, e.g. rqlio that may wish to pass is down further
to clients.
In turn, clients can then choose to present the results of RQL select queries
as symbolic bindings using the names used in the query's projection, instead of
ordinal arrays.
Simon Chabot <simon.chabot@logilab.fr> [Thu, 12 Mar 2020 15:38:51 +0100] rev 12930
[debugtoolbar] Make SQL and RQL tables sortable
It's usefull to sort query by duration for instance.
Simon Chabot <simon.chabot@logilab.fr> [Thu, 12 Mar 2020 15:37:59 +0100] rev 12929
[debugtoolbar] Do not render CW controller panel when no controller got collected
This can happen on pure pyramid applications for instance.
Elodie Thieblin <ethieblin@logilab.fr> [Wed, 18 Mar 2020 11:30:05 +0100] rev 12928
[doc] Fix bugs in code examples
Elodie Thieblin <ethieblin@logilab.fr> [Wed, 18 Mar 2020 11:29:30 +0100] rev 12927
[doc] Remove zone cube which causes to crash on install
The zone cube is not compatible with python3.
Elodie Thieblin <ethieblin@logilab.fr> [Wed, 18 Mar 2020 11:45:35 +0100] rev 12926
[doc] Precise which component to modify in gallery tutorial
Elodie Thieblin <ethieblin@logilab.fr> [Wed, 18 Mar 2020 10:20:29 +0100] rev 12925
[doc] Fix example about Community view customization
Elodie Thieblin <ethieblin@logilab.fr> [Wed, 18 Mar 2020 09:58:05 +0100] rev 12924
[doc] Add command pip install of new cube
Elodie Thieblin <ethieblin@logilab.fr> [Wed, 18 Mar 2020 09:57:48 +0100] rev 12923
[doc] update cubicweb version
Elodie Thieblin <ethieblin@logilab.fr> [Wed, 18 Mar 2020 09:24:02 +0100] rev 12922
[doc, blog tutorial] Remove cubicweb-dev from pip dependencies
This pip package does not exist
Elodie Thieblin <ethieblin@logilab.fr> [Wed, 18 Mar 2020 09:22:45 +0100] rev 12921
[doc] Add requirement for gettext and graphviz
When running the tutorial from scratch, I had errors because these
two packages were not installed.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 18 Mar 2020 13:18:21 +0100] rev 12920
Added tag 3.27.3, debian/3.27.3-1 for changeset 85284f028266
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 18 Mar 2020 13:18:04 +0100] rev 12919
[pkg] version 3.27.3
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 17 Mar 2020 13:36:27 +0100] rev 12918
[pkg] require python >= 3.6 in debian packaging
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 17 Mar 2020 13:34:54 +0100] rev 12917
[pkg] merge 3.27
Require python >= 3.6 since recent typing notations require >= 3.6
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 17 Mar 2020 13:31:50 +0100] rev 12916
[pkg] add python3 only pypi specifiers
This is only for pypi statistics purposes.
Also add 'Programming Language :: Python', looks obvious but seems to be sane to have this as well.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 17 Mar 2020 13:30:50 +0100] rev 12915
[pkg] the wheel is no longer universal
Since we're only py3 compatible. In practice this changes nothing since we
don't upload cubicweb wheels to pypi.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 17 Mar 2020 13:29:08 +0100] rev 12914
[pkg] require python >= 3.4
This avoid pip pulling a version that does not run on python2 when using a
python2 environment.
Since we already released some 3.27 releases in pypi, I think we should release
3.27.3 and remove releases 3.27.2, 3.27.1 and 3.27.0 from pypi.
Fabien Amarger <fabien.amarger@logilab.fr> [Wed, 11 Mar 2020 11:18:40 +0100] rev 12913
merge public heads
Fabien Amarger <fabien.amarger@logilab.fr> [Tue, 10 Mar 2020 17:37:43 +0100] rev 12912
[web.views] add Link alternate in HTTP response header in HTML view
Team: famarger, schabot, nchauvat, fferry, ethieblin
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Tue, 10 Mar 2020 23:47:50 +0100] rev 12911
[pyramid] add routes /{eid} and /{etype}/{eid} to return RDF when rdf mimetype in Accept HTTP headers
* simplify pyramid/resources.py by making the classmethod that returns a closure
a simple function and removing the EntityResource and ETYpeResource classes
that are barely used
* replace predicate MatchIsETypePredicate with MatchIsETypeAndEIDPredicate
Team: famarger, schabot, nchauvat, fferry, ethieblin
Elodie Thieblin <ethieblin@logilab.fr> [Tue, 10 Mar 2020 23:44:45 +0100] rev 12910
[entities] simplify rdf generation and add a generic rdf adapter
Team: famarger, schabot, nchauvat, fferry, ethieblin
Simon Chabot <simon.chabot@logilab.fr> [Thu, 05 Mar 2020 17:50:00 +0100] rev 12909
Added tag 3.26.17, debian/3.26.17-1 for changeset 5c6d242069b6
Simon Chabot <simon.chabot@logilab.fr> [Thu, 05 Mar 2020 17:49:34 +0100] rev 12908
[pkg] version 3.26.17
Simon Chabot <simon.chabot@logilab.fr> [Thu, 05 Mar 2020 16:03:26 +0100] rev 12907
[fix, calendar] Ensure that the buffer is a string
'unicode' is not defined in python3
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 05 Mar 2020 10:41:30 +0100] rev 12906
Added tag 3.26.16, debian/3.26.16-1 for changeset fb6aecd654a3
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 05 Mar 2020 10:41:14 +0100] rev 12905
[pkg] version 3.26.16
Julien Tayon <julien.tayon@logilab.fr> [Tue, 25 Feb 2020 23:31:30 +0100] rev 12904
[ldapfeed] add option to enable starttls on ldap servers
Modern ldap servers connection often use, or even require starttls.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 25 Feb 2020 23:30:32 +0100] rev 12903
[ldapfeed] re-enable ldap tests for python 3.7
This was disabled because ldap3<2 wasn't compatible with python 3.7
While I'm here, drop unseless newline.
Julien Tayon <julien.tayon@logilab.fr> [Tue, 25 Feb 2020 23:22:58 +0100] rev 12902
[ldapfeed] make code compatible with ldap3>=2
* Some constants have been renamed.
* Directly bind when data-cnx-dn/data-cnx-password are provided, some servers,
including ours require this.
* Use raise_exceptions=True to avoid ignored ldap errors
* raise in case of failed anonymous bind
* do not search for "dn" attribute because this raise an "invalid attribute"
with new ldap3 versions
* Password is now returned as bytes, so no longer need to encode them before crypt.
* modification_date is now returned as a datetime object
Co-Authored-By: Philippe Pepiot <philippe.pepiot@logilab.fr>
Closes #16073071
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 25 Feb 2020 22:45:42 +0100] rev 12901
[ldapfeed] use LDAP_SCOPES to find user-scope
We already have LDAP_SCOPES dict defining possible scopes, this avoid possible code injection from config...
Thus we can drop global variables already defined in LDAP_SCOPES since they are not used directly anymore.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 05 Mar 2020 10:15:38 +0100] rev 12900
Merge 3.27
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 05 Mar 2020 09:54:49 +0100] rev 12899
Added tag 3.27.2, debian/3.27.2-1 for changeset e731c31eaed0
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 05 Mar 2020 09:54:35 +0100] rev 12898
[pkg] version 3.27.2
Julien Tayon <julien.tayon@logilab.fr> [Tue, 25 Feb 2020 23:31:30 +0100] rev 12897
[ldapfeed] add option to enable starttls on ldap servers
Modern ldap servers connection often use, or even require starttls.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 25 Feb 2020 23:30:32 +0100] rev 12896
[ldapfeed] re-enable ldap tests for python 3.7
This was disabled because ldap3<2 wasn't compatible with python 3.7
While I'm here, drop unseless newline.
Julien Tayon <julien.tayon@logilab.fr> [Tue, 25 Feb 2020 23:22:58 +0100] rev 12895
[ldapfeed] make code compatible with ldap3>=2
* Some constants have been renamed.
* Directly bind when data-cnx-dn/data-cnx-password are provided, some servers,
including ours require this.
* Use raise_exceptions=True to avoid ignored ldap errors
* raise in case of failed anonymous bind
* do not search for "dn" attribute because this raise an "invalid attribute"
with new ldap3 versions
* Password is now returned as bytes, so no longer need to encode them before crypt.
* modification_date is now returned as a datetime object
Co-Authored-By: Philippe Pepiot <philippe.pepiot@logilab.fr>
Closes #16073071
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 25 Feb 2020 22:45:42 +0100] rev 12894
[ldapfeed] use LDAP_SCOPES to find user-scope
We already have LDAP_SCOPES dict defining possible scopes, this avoid possible code injection from config...
Thus we can drop global variables already defined in LDAP_SCOPES since they are not used directly anymore.
Julien Tayon <julien.tayon@logilab.fr> [Tue, 25 Feb 2020 22:18:15 +0100] rev 12893
[ldapfeed] drop now useless import from __future__
Simon Chabot <simon.chabot@logilab.fr> [Fri, 28 Feb 2020 17:11:01 +0100] rev 12892
[rdf] Add a basic foaf adapter for CWUser
By the way, use RDFLib namespaces
Simon Chabot <simon.chabot@logilab.fr> [Fri, 14 Feb 2020 18:15:55 +0100] rev 12891
[rdf] add functions and tools to generate rdf graph
Simon Chabot <simon.chabot@logilab.fr> [Wed, 12 Feb 2020 13:58:17 +0100] rev 12890
[pyramid, predicate] Add a predicate that matches if the pattern is an eid in the DB
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Wed, 13 Mar 2019 11:06:46 +0100] rev 12889
[server.querier] construct ExecutionPlan from schema since querier is not needed
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Wed, 19 Feb 2020 19:49:01 +0100] rev 12888
[server.querier] remove useless attribute Querier._planner
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Wed, 13 Mar 2019 11:02:39 +0100] rev 12887
[server.querier] remove useless indirection Querier.rqlannotator
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Wed, 13 Mar 2019 10:40:05 +0100] rev 12886
[server.querier] remove useless indirections ExecutionPlan.{syssource,rqlhelper,schema}
Simpler is better.
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Wed, 13 Mar 2019 10:26:15 +0100] rev 12885
[server.rqlannotation] rename SQLGenAnnotator to RQLAnnotator
This class is in charge of annotating the RQL syntax tree with
various bits of information, like (in)variance, use of
full-text-index, etc. It is a needed step before the generation
of SQL, but does not touch SQL directly. Hence RQLAnnotator
seems a better name.
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Fri, 15 Mar 2019 21:35:59 +0100] rev 12884
[server] drop system_source_cnx for a simpler internal API
system_source_cnx() can be replaced with source_cnx().
If system_source_cnx() is called with dbms_system_base=False, it is
strictly equivalent to calling source_cnx() with the same source,
privileges and interactivity.
If system_source_cnx() is called with dbms_system_base=True, it is
equivalent to calling source_cnx() with the system database and the
same source, privileges and interactivity.
No use of the default value for 'special_privs' was found in the code.
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Wed, 13 Mar 2019 00:01:35 +0100] rev 12883
[server/sources/native] refactor to remove useless injection
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Wed, 13 Mar 2019 00:15:48 +0100] rev 12882
[cwvreg] rename CWRegistryStore.solutions to compute_var_types
solutions() seems an obscure name to me. Since this method computes
the types of the variables of the RQL query string, let us rename it
to compute_var_types.
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Sun, 02 Feb 2020 22:15:38 +0100] rev 12881
[doc] replace python with python3 in shell commands
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Sat, 08 Feb 2020 22:57:59 +0100] rev 12880
[adapters] move class EntityAdapter from cubicweb.view to cubicweb.entity
The adapter mechanism is not specific to the use of views. Moving the
class the cubicweb.entity makes this clearer.
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Sat, 15 Feb 2020 17:08:15 +0100] rev 12879
[doc] replace tabs with spaces (and make linter happy)
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Sat, 08 Feb 2020 22:20:45 +0100] rev 12878
[setup] add rdflib-jsonld to dependencies for cubicweb[rdf]
Guillaume Vandevelde <gvandevelde@logilab.fr> [Thu, 13 Feb 2020 13:56:43 +0100] rev 12877
Added tag 3.26.15, debian/3.26.15-1 for changeset fe9bd0e937e4
Guillaume Vandevelde <gvandevelde@logilab.fr> [Thu, 13 Feb 2020 13:56:12 +0100] rev 12876
[pkg] version 3.26.15
Nicola Spanti <nicola.spanti@logilab.fr> [Wed, 12 Feb 2020 16:20:10 +0100] rev 12875
[web/views] Backport changeset be63e0fd43d0 (it is a fix) in 3.26
Guillaume Vandevelde <gvandevelde@logilab.fr> [Mon, 10 Feb 2020 16:56:02 +0100] rev 12874
[utils] Add the possibility to add elements in the head of an UStringIO list
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Sun, 02 Feb 2020 22:15:38 +0100] rev 12873
[doc] replace python with python3 in shell commands
Katia Saurfelt <katia.saurfelt@logilab.fr> [Tue, 11 Feb 2020 10:52:33 +0100] rev 12872
Added tag 3.27.1, debian/3.27.1-1 for changeset 917601bb5b1b
Katia Saurfelt <katia.saurfelt@logilab.fr> [Tue, 11 Feb 2020 10:52:06 +0100] rev 12871
[pkg] version 3.27.1
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 11 Feb 2020 10:22:52 +0100] rev 12870
Backed out changeset 7d3299d6e655
This is not compatible with python 3.5 and we want to support python 3.5 with cubicweb 3.27
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 11 Feb 2020 10:20:18 +0100] rev 12869
Backed out changeset c69421aece24
This is not compatible with python 3.5 and we want to support python 3.5 with cubicweb 3.27
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Fri, 07 Feb 2020 17:09:59 +0100] rev 12868
merge
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Sat, 01 Feb 2020 22:01:00 +0100] rev 12867
[web/views/rdf] enhance encoding and formats for RDFView
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Sat, 01 Feb 2020 22:00:03 +0100] rev 12866
[web/views/cwuser] fix encoding of FoafView to application/rdf+xml
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Sun, 02 Feb 2020 23:01:01 +0100] rev 12865
merge 3.27 into default
Arthur Lutz <arthur.lutz@logilab.fr> [Fri, 31 Jan 2020 17:24:45 +0100] rev 12864
[doc/dev/CI] initial information about jenkins
Arthur Lutz <arthur.lutz@logilab.fr> [Fri, 31 Jan 2020 17:24:31 +0100] rev 12863
[doc/index] fix link to "how to contribute" and add link to dev dashboard
Arthur Lutz <arthur.lutz@logilab.fr> [Fri, 31 Jan 2020 17:07:25 +0100] rev 12862
[doc/book/admin] initial version of deploy cubicweb page in documentation
Arthur Lutz <arthur.lutz@logilab.fr> [Fri, 31 Jan 2020 16:52:24 +0100] rev 12861
[doc/book/admin/setup] forget about easy_install
Arthur Lutz <arthur.lutz@logilab.fr> [Fri, 31 Jan 2020 16:51:48 +0100] rev 12860
[doc/book/admin/setup] fix pip / virtualenv links
Arthur Lutz <arthur.lutz@logilab.fr> [Sun, 02 Feb 2020 22:24:59 +0100] rev 12859
[doc/book/admin/setup] update apt sources
Arthur Lutz <arthur.lutz@logilab.fr> [Fri, 31 Jan 2020 16:45:58 +0100] rev 12858
[doc/book/admin/setup] add section about docker install
Arthur Lutz <arthur.lutz@logilab.fr> [Sun, 02 Feb 2020 22:10:00 +0100] rev 12857
[doc] remove setup instructions for Windows
Arthur Lutz <arthur.lutz@logilab.fr> [Fri, 31 Jan 2020 16:31:44 +0100] rev 12856
[doc/book/devweb/ajax] warning about deprecated use of ajax
Arthur Lutz <arthur.lutz@logilab.fr> [Fri, 31 Jan 2020 16:25:14 +0100] rev 12855
[doc] add links to pypi and npm
Arthur Lutz <arthur.lutz@logilab.fr> [Fri, 31 Jan 2020 15:13:14 +0100] rev 12854
[doc] remove guestrepo as a recommendation
Arthur Lutz <arthur.lutz@logilab.fr> [Fri, 31 Jan 2020 15:12:45 +0100] rev 12853
[doc] remove Subversion mentions
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Fri, 31 Jan 2020 18:01:41 +0100] rev 12852
[doc] fix typo
Simon Chabot <simon.chabot@logilab.fr> [Fri, 31 Jan 2020 15:57:16 +0100] rev 12851
[doc] Update changes title, 3.27 is now released
Simon Chabot <simon.chabot@logilab.fr> [Fri, 31 Jan 2020 15:28:55 +0100] rev 12850
[pkg] Version 3.28.0.dev0
Simon Chabot <simon.chabot@logilab.fr> [Fri, 31 Jan 2020 15:28:00 +0100] rev 12849
merge 3.27
Carine Dengler <carine.dengler@logilab.fr> [Fri, 31 Jan 2020 14:45:39 +0100] rev 12848
Added tag 3.27.0, debian/3.27.0-1 for changeset e77900f19390
Carine Dengler <carine.dengler@logilab.fr> [Fri, 31 Jan 2020 14:44:19 +0100] rev 12847
[pkg] version 3.27
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 31 Jan 2020 11:52:22 +0100] rev 12846
Backed out changeset b1ef9690f357
This is not compatible with python3.5
Noe Gaumont <ngaumont@logilab.fr> [Tue, 14 Jan 2020 17:38:11 +0100] rev 12845
Remove useless error FindEntittyError
This error is not used since the deprecated find_one_entity method has been removed in 566f8fce5168
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 14 Jan 2020 09:43:02 +0100] rev 12844
[pkg] Version 3.27.0rc3
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 09 Jan 2020 17:51:16 +0100] rev 12843
[sobjects/notification] fix broken email notifications
In https://hg.logilab.org/review/cubicweb/rev/8caa109dfe945592a34904bb56971cc57d1c6084 EntityView.w become a method using EntityView._w
In notifications we reset "self.w" for every notifications since we handle multiple streams.
We should set "self._w" to None instead, otherwise subsequent calls to "self.w()" will fail with TypeError: 'NoneType' object is not callable.
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Wed, 18 Dec 2019 22:07:33 +0100] rev 12842
[server.source.native] exceptions should never pass silently
Nicola Spanti <nicola.spanti@logilab.fr> [Thu, 19 Dec 2019 15:13:10 +0100] rev 12841
[py] Make flake8 less angry with cubicweb/server/test/
Laurent Peuch <cortex@worlddomination.be> [Wed, 18 Dec 2019 05:39:03 +0100] rev 12840
[doc/fix] correct link to screenshots in changelog
Closes #17260396
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Thu, 19 Dec 2019 12:15:29 +0100] rev 12839
closing branch 3.23
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Thu, 19 Dec 2019 12:14:52 +0100] rev 12838
closing branch 3.22
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Thu, 19 Dec 2019 12:14:36 +0100] rev 12837
closing branch 3.21
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Thu, 19 Dec 2019 12:13:57 +0100] rev 12836
closing branch 3.20
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Tue, 12 Mar 2019 23:30:12 +0100] rev 12835
[server/querier] drop ExecutionPlan.annotate_rqlst that is never used
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Wed, 18 Dec 2019 22:06:31 +0100] rev 12834
[server.querier] improve docstrings and comments
Laurent Peuch <cortex@worlddomination.be> [Thu, 19 Dec 2019 06:35:54 +0100] rev 12833
[mypy] type AppObject.category
Laurent Peuch <cortex@worlddomination.be> [Thu, 19 Dec 2019 06:35:19 +0100] rev 12832
[mypy] type Hook.events
Laurent Peuch <cortex@worlddomination.be> [Thu, 19 Dec 2019 06:33:49 +0100] rev 12831
[mypy] type __select__ everywhere
Laurent Peuch <cortex@worlddomination.be> [Thu, 19 Dec 2019 06:32:16 +0100] rev 12830
[python3] 'unicode' function doesn't exist anymore
Laurent Peuch <cortex@worlddomination.be> [Thu, 19 Dec 2019 01:04:07 +0100] rev 12829
[mypy/fix] Incompatible types in assignment (expression has type "staticmethod", variable has type "Callable[[ETag], Any]")
Nicola Spanti <nicola.spanti@logilab.fr> [Thu, 19 Dec 2019 10:31:49 +0100] rev 12828
[py] Make flake8 less angry with cubicweb/server/sources/
Laurent Peuch <cortex@worlddomination.be> [Thu, 19 Dec 2019 00:59:27 +0100] rev 12827
[mypy/fix] Module 'urllib' has no attribute 'quote'
Laurent Peuch <cortex@worlddomination.be> [Thu, 19 Dec 2019 08:13:52 +0100] rev 12826
autopep8
Laurent Peuch <cortex@worlddomination.be> [Thu, 19 Dec 2019 08:13:22 +0100] rev 12825
[python3] replace 'unicode' by 'str'
Laurent Peuch <cortex@worlddomination.be> [Tue, 17 Dec 2019 21:21:55 +0100] rev 12824
autopep8
Laurent Peuch <cortex@worlddomination.be> [Tue, 17 Dec 2019 18:04:02 +0100] rev 12823
[test] ensure FirefoxHelper successfully exited
Laurent Peuch <cortex@worlddomination.be> [Tue, 17 Dec 2019 17:54:09 +0100] rev 12822
[test/ux] add a warning when test from FirefoxHelper timeout
Laurent Peuch <cortex@worlddomination.be> [Tue, 17 Dec 2019 17:19:15 +0100] rev 12821
[test/fix] tempfile is non portable linux command and is useless here
Closes #17260390
Laurent Peuch <cortex@worlddomination.be> [Tue, 17 Dec 2019 16:56:23 +0100] rev 12820
[test/fix] prevent FirefoxHelper from silently failing to start
This was breaking some tests without any obvious error message and you should
fail as early as possible to make debugging easier.
Closes #17260390
Laurent Peuch <cortex@worlddomination.be> [Wed, 18 Dec 2019 05:39:42 +0100] rev 12819
[doc] document debug toolbar
Laurent Peuch <cortex@worlddomination.be> [Tue, 10 Dec 2019 23:50:24 +0100] rev 12818
[doc] document new debug channels mechanism
Laurent Peuch <cortex@worlddomination.be> [Tue, 17 Dec 2019 21:20:46 +0100] rev 12817
DeprecationWarning: Please use assertEqual instead.
Laurent Peuch <cortex@worlddomination.be> [Wed, 18 Dec 2019 06:01:13 +0100] rev 12816
[doc/fix] listing of js_api in index was broken
Laurent Peuch <cortex@worlddomination.be> [Wed, 18 Dec 2019 05:56:41 +0100] rev 12815
[doc] cubicweb.server.session.Session doesn't exist anymore
Laurent Peuch <cortex@worlddomination.be> [Wed, 18 Dec 2019 05:49:34 +0100] rev 12814
[doc] remove autodoc for functions and class that don't exist anymore
Laurent Peuch <cortex@worlddomination.be> [Wed, 18 Dec 2019 05:48:25 +0100] rev 12813
[doc/fix] BwCompatCWRegistry class doesn't exist anymore
Laurent Peuch <cortex@worlddomination.be> [Wed, 18 Dec 2019 05:45:37 +0100] rev 12812
[doc] set_/free_cnxset method doesn't exist anymore
Laurent Peuch <cortex@worlddomination.be> [Thu, 05 Dec 2019 18:49:32 +0100] rev 12811
[refactoring] rename logilab.database as db to logilab_database
Laurent Peuch <cortex@worlddomination.be> [Thu, 05 Dec 2019 18:43:19 +0100] rev 12810
[UX] make error message explicit with useful information
Laurent Peuch <cortex@worlddomination.be> [Thu, 05 Dec 2019 18:41:32 +0100] rev 12809
[refactoring] blank lines to visually group lines for lisbility
Laurent Peuch <cortex@worlddomination.be> [Thu, 05 Dec 2019 18:40:38 +0100] rev 12808
[refactoring] class variable is useless
Laurent Peuch <cortex@worlddomination.be> [Thu, 05 Dec 2019 18:39:09 +0100] rev 12807
[comment] add comment for maybe unhandled situation
Laurent Peuch <cortex@worlddomination.be> [Thu, 05 Dec 2019 18:38:00 +0100] rev 12806
[refactoring] don't hide exceptions
Laurent Peuch <cortex@worlddomination.be> [Thu, 05 Dec 2019 18:37:27 +0100] rev 12805
[refactoring] blank lines to make core more readable
Laurent Peuch <cortex@worlddomination.be> [Thu, 05 Dec 2019 18:36:55 +0100] rev 12804
[refactoring] not needed anymore in python3
Laurent Peuch <cortex@worlddomination.be> [Thu, 05 Dec 2019 18:34:59 +0100] rev 12803
[refactoring] inline useless variable
Laurent Peuch <cortex@worlddomination.be> [Wed, 11 Dec 2019 00:01:38 +0100] rev 12802
[debug_channels/doc] add docstring to functions
Laurent Peuch <cortex@worlddomination.be> [Tue, 10 Dec 2019 23:34:46 +0100] rev 12801
[doc/building/fix] encoding issue was crashing sphinx in python3
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 10 Dec 2019 17:14:56 +0100] rev 12800
[pkg] Version 3.27.0rc2
Laurent Peuch <cortex@worlddomination.be> [Thu, 05 Dec 2019 02:41:59 +0100] rev 12799
[changelog] talk about the new debug channels mechanism
Laurent Peuch <cortex@worlddomination.be> [Thu, 05 Dec 2019 02:26:14 +0100] rev 12798
[changelog] add information about the new debug html attributes
Laurent Peuch <cortex@worlddomination.be> [Thu, 05 Dec 2019 02:12:20 +0100] rev 12797
[changelog] change bullet point organization
So everything related to the debugtoolbar is close to its section.
Laurent Peuch <cortex@worlddomination.be> [Thu, 05 Dec 2019 02:10:23 +0100] rev 12796
[changelog] document the new toolbar panels with screenshots
Laurent Peuch <cortex@worlddomination.be> [Thu, 05 Dec 2019 02:09:13 +0100] rev 12795
[comment] comment didn't matched reality
Laurent Peuch <cortex@worlddomination.be> [Thu, 05 Dec 2019 02:08:01 +0100] rev 12794
[debug-toolbar/display_source_code] change link display from "<>" to "[source]"
It is way more explicit and understandable and doesn't take that much place.
Arthur Lutz <arthur.lutz@logilab.fr> [Fri, 06 Dec 2019 13:21:56 +0100] rev 12793
[tox] add doc8 target to test documentation
Arthur Lutz <arthur.lutz@logilab.fr> [Thu, 04 Apr 2019 17:11:14 +0200] rev 12792
[doc8] D002 Trailing whitespace
Arthur Lutz <arthur.lutz@logilab.fr> [Fri, 06 Dec 2019 13:20:05 +0100] rev 12791
[doc/conf] update year of copyright
Arthur Lutz <arthur.lutz@logilab.fr> [Fri, 06 Dec 2019 13:21:18 +0100] rev 12790
[doc/book] add RQL use cases with search/card/python/javascript
Related to https://www.cubicweb.org/ticket/3899077
Laurent Peuch <cortex@worlddomination.be> [Tue, 03 Dec 2019 17:44:28 +0100] rev 12789
[debug-toolbar/fix] only import mako when the toolbar is loaded
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 04 Dec 2019 16:12:15 +0100] rev 12788
[pkg] require logilab-common >= 1.5.2
Followup a902521
Nicola Spanti <nicola.spanti@logilab.fr> [Fri, 13 Apr 2018 17:28:14 +0200] rev 12787
[web/views] Fix AutoformSectionRelationTags.set_muledit_editable
It is a method call, so `self` is passed implicitely as first
argument, so it is useless to pass it also explicitely as second
argument. In fact, it does not work without this. A monkey patch
had been done in a private client's project, but the fix is
revelant for everyone.
Nicola Spanti <nicola.spanti@logilab.fr> [Fri, 22 Feb 2019 16:47:40 +0100] rev 12786
[html] Add tags ol, ul, li, i, q
- It is useful.
- A private client's project use this.
Laurent Peuch <cortex@worlddomination.be> [Thu, 28 Nov 2019 16:33:15 +0100] rev 12785
[debug-toolbar/registry] move to Registry.add_select_best_listener new api
Nsukami Patrick <ptrck at nskm dot xyz> [Tue, 03 Dec 2019 11:34:56 +0100] rev 12784
[pkginfo] Retrieve Cubicweb version using pkg_resources
Nsukami Patrick <ptrck at nskm dot xyz> [Fri, 22 Nov 2019 12:06:52 +0000] rev 12783
[pkginfo] Remove unused parameter
To retrieve cube dependencies or cube requirements,
no more need to pass the 'oldkey' parameter to _cube_deps function as this parameter is unused.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 29 Nov 2019 15:32:31 +0100] rev 12782
Fix flake8 issues
cubicweb/server/sources/native.py:505: [E501] line too long (101 > 100 characters)
cubicweb/pyramid/__init__.py:31: [E501] line too long (104 > 100 characters)
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 29 Nov 2019 15:30:16 +0100] rev 12781
Add missing dbmako/mako files in python sdist
Laurent Peuch <cortex@worlddomination.be> [Wed, 24 Jul 2019 16:11:22 +0200] rev 12780
[debug] add in each html snippet from where it has been generated in the code
Closes #17219704
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Nov 2019 11:48:03 +0100] rev 12779
Use python3 shebang for scripts
Reported by lintian "python-script-but-no-python-dep"
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Nov 2019 11:30:23 +0100] rev 12778
[pkg] Version 3.27.0rc1
Laurent Peuch <cortex@worlddomination.be> [Tue, 26 Nov 2019 20:26:58 +0100] rev 12777
[debug-toolbar/display_source_code] add links to files in tracebacks
Laurent Peuch <cortex@worlddomination.be> [Fri, 27 Sep 2019 07:00:51 +0200] rev 12776
[debug-toolbar] link to source code of all objects/classes
Closes #17256791
Laurent Peuch <cortex@worlddomination.be> [Fri, 27 Sep 2019 06:59:48 +0200] rev 12775
[debug-toolbar/display_source_code] add a function to add links to source file in traceback
Closes #17256791
Laurent Peuch <cortex@worlddomination.be> [Tue, 26 Nov 2019 16:03:06 +0100] rev 12774
[debug-toolbar/display_source_code] add function to generate html link to source code
Laurent Peuch <cortex@worlddomination.be> [Thu, 26 Sep 2019 06:27:53 +0200] rev 12773
[debug-toolbar/display_source_code/security] add security mechanism to only read whitelisted files
Closes #17256791
Laurent Peuch <cortex@worlddomination.be> [Fri, 27 Sep 2019 06:51:29 +0200] rev 12772
[debug-toolbar/display_source_code] add helper to render link to source file
Closes #17256791
Laurent Peuch <cortex@worlddomination.be> [Tue, 08 Oct 2019 22:14:06 +0200] rev 12771
[debug-toolbar/display_source_code] add a pyramid view that display syntax highlighted python source file
This will be used for tool building for easier debugging.
Closes #17256791
Laurent Peuch <cortex@worlddomination.be> [Wed, 25 Sep 2019 05:42:47 +0200] rev 12770
[mod] allow to pass generic additional arguments to pygments HtmlFormatter
Laurent Peuch <cortex@worlddomination.be> [Fri, 27 Sep 2019 06:20:39 +0200] rev 12769
[debug/fix] ensure that not syntax highlighted code is a string
Otherwise it could be in another unrendered form that makes marko complains.
Closes #17256791
Laurent Peuch <cortex@worlddomination.be> [Thu, 12 Sep 2019 05:59:10 +0200] rev 12768
[debug-toolbar] add registry decisions debug panel
Closes #17219866
Laurent Peuch <cortex@worlddomination.be> [Wed, 20 Nov 2019 20:46:45 +0100] rev 12767
Increase needed version of logilab-common to >= 1.5.0
Laurent Peuch <cortex@worlddomination.be> [Thu, 14 Nov 2019 15:40:35 +0100] rev 12766
[debug-toolbar] add registry panel
Closes #17219866
Laurent Peuch <cortex@worlddomination.be> [Thu, 14 Nov 2019 01:01:00 +0100] rev 12765
[debug-toolbar] add sql panel
Closes #17219873
Laurent Peuch <cortex@worlddomination.be> [Tue, 08 Oct 2019 23:11:19 +0200] rev 12764
[debug-toolbar] add cw general panel with controller
Closes #17219897
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Mon, 18 Nov 2019 12:41:44 +0100] rev 12763
[debug-toolbar] make linter happy
Laurent Peuch <cortex@worlddomination.be> [Wed, 31 Jul 2019 04:16:20 +0200] rev 12762
[pyramid/ctl/debugtoolbar] automatically include custom panels on -t
Laurent Peuch <cortex@worlddomination.be> [Thu, 01 Aug 2019 20:30:16 +0200] rev 12761
[debug-toolbar/rql] display sql queries generated by rql ones
Laurent Peuch <cortex@worlddomination.be> [Wed, 31 Jul 2019 04:16:20 +0200] rev 12760
[debug-toolbar/rql] add RQL panel
Closes #17219673
Laurent Peuch <cortex@worlddomination.be> [Thu, 24 Oct 2019 06:37:02 +0200] rev 12759
[debug/emit/rql] add RQL debug channel and emit queries
This is used for the RQL debug panel but can be used as a generic mechanism for
several tools.
Laurent Peuch <cortex@worlddomination.be> [Wed, 06 Nov 2019 14:43:49 +0100] rev 12758
[debug/source_highlight] rename highlight to highlight_terminal
Laurent Peuch <cortex@worlddomination.be> [Thu, 24 Oct 2019 06:34:42 +0200] rev 12757
[debug/source_highlight] add highlight_html and generate_css for debugtool panels
Laurent Peuch <cortex@worlddomination.be> [Thu, 01 Aug 2019 05:42:45 +0200] rev 12756
[debug/rql] bind a uniq token per rql to trace its decomposition
This is aimed to be used by the RQL debug panel (and the SQL one later on) but
can also be used by other debugging tools.
Laurent Peuch <cortex@worlddomination.be> [Thu, 01 Aug 2019 02:51:52 +0200] rev 12755
[debug] add a new channel events mechanism for debugging
Laurent Peuch <cortex@worlddomination.be> [Wed, 06 Nov 2019 12:52:50 +0100] rev 12754
[ctl] allow to specific instance name for instance commands in $CW_INSTANCE
Closes #17253994
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Tue, 05 Nov 2019 23:19:15 +0100] rev 12753
[cubicweb/utils] add QueryCache.__contains__() to improve dict-like behavior. Closes #255426
Laurent Peuch <cortex@worlddomination.be> [Thu, 23 May 2019 00:33:31 +0200] rev 12752
[migrations/pdb] add to every failing migration operation a "p(db)" option
Instead, the migration command will just crash without offering the possibility
of the user to debug or continue the migration.
Closes #17219772
Laurent Peuch <cortex@worlddomination.be> [Wed, 29 May 2019 20:29:07 +0200] rev 12751
[pyramid/ctl] add a new option to activate the debugtoolbar (-t)
While this toolbar isn't yet very integrated with CW, it integrates an inline
debugging shell like werkzeug for flask or django_extensions which greatly
helps debugging on exception.
It can already be manually activated by writting "pyramid.includes =
pyramid_debugtoolbar" but it's hidden somewhere in the documentation and not
very accessible and annoying to do.
Closes #17219765
Laurent Peuch <cortex@worlddomination.be> [Wed, 23 Oct 2019 04:28:45 +0200] rev 12750
[changelog] add missing information to the 3.27 changelog
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Fri, 18 Oct 2019 23:39:03 +0200] rev 12749
Merge 3.26
Laurent Peuch <cortex@worlddomination.be> [Tue, 27 Aug 2019 20:16:01 +0200] rev 12748
[debug] add ALL possibility to --dbglevel
Laurent Peuch <cortex@worlddomination.be> [Wed, 26 Jun 2019 02:32:02 +0200] rev 12747
[ux] display instance name in suggested upgrade command
Laurent Peuch <cortex@worlddomination.be> [Thu, 23 May 2019 00:33:04 +0200] rev 12746
[migration/pdb] display traceback instead of only the exception for easier debugging
Closes #17219820
Laurent Peuch <cortex@worlddomination.be> [Wed, 22 May 2019 17:10:06 +0200] rev 12745
[migration/pdb] add option to use pdb.post_mortem if traceback is provided
Post mortem is a mode where the pdb shell is opened **where** the exception as
occured instead at the breakpoint for set_trace. This is way more useful for
debugging for the user because is will have the full context of the error.
Closes #17219827
Laurent Peuch <cortex@worlddomination.be> [Wed, 22 May 2019 17:08:09 +0200] rev 12744
[migration/shell] select ipdb if present on (d)ebug mode
Closes #17219833
Laurent Peuch <cortex@worlddomination.be> [Wed, 22 May 2019 14:23:01 +0200] rev 12743
[mod] move get_pdb to utils.py
Noe Gaumont <ngaumont@logilab.fr> [Wed, 16 Oct 2019 14:49:38 +0200] rev 12742
Add a migration function in order to relocate bfss
Related to https://www.cubicweb.org/ticket/1903304
Laurent Peuch <cortex@worlddomination.be> [Wed, 12 Jun 2019 19:58:00 +0200] rev 12741
[pyramid/debug] on every request display request path and selected controller
This will display lines like:
2019-06-12 16:26:57 - (cubicweb.pyramid.bwcompat) INFO: REQUEST [view] '/wiki/334037' selected controller <cubicweb.web.views.basecontrollers.ViewController object at 0x7f133802ae90> at /root/.virtualenvs/abreton/local/lib/python2.7/site-packages/cubicweb/web/views/basecontrollers.py:120
2019-06-12 16:26:59 - (cubicweb.pyramid.bwcompat) INFO: REQUEST [data] '/data/ea5eb3b6f89fba0ff4b671093c88d3dd/images/cartouche-mur.jpg' selected controller <cubicweb.web.views.staticcontrollers.DataController object at 0x7f1332a84d50> at /root/.virtualenvs/abreton/local/lib/python2.7/site-packages/cubicweb/web/views/staticcontrollers.py:179
The make debugging easier as this isn't done already. Most other web frameworks
do something similar for the developper to be able to understand what is
happening right now.
Closes #17219741
Laurent Peuch <cortex@worlddomination.be> [Wed, 21 Aug 2019 04:52:08 +0200] rev 12740
[logging/debug] move transaction operations logs from self.debug to DBG_OPS
There were a mixing between displaying transaction operations log on
logger.debug and only when DBG_OPS was on, uniformize everything behind
DBG_OPS.
Closes #17229126
Laurent Peuch <cortex@worlddomination.be> [Wed, 21 Aug 2019 02:10:12 +0200] rev 12739
[debug] syntax highlight SQL and RQL debug output
This prevent DBG_RQL and DBG_SQL output to looks like a gigantic blob of white
text.
Do this only if we detect that we are in a tty and that pygments is installed.
Closes #17222885
Laurent Peuch <cortex@worlddomination.be> [Tue, 20 Aug 2019 22:45:46 +0200] rev 12738
[logging] send logs by default to stdout
Following the move to have commands only working on foreground sending logs to
a file by default doesn't make much more sens anymore so send them to stdout by
default and add a new option to send them to a file if needed
Laurent Peuch <cortex@worlddomination.be> [Tue, 21 May 2019 18:16:51 +0200] rev 12737
[cubicweb-ctl] backport --dbglevel option of pyramid to all instance commands
Closes #17219653
Laurent Peuch <cortex@worlddomination.be> [Tue, 21 May 2019 18:08:17 +0200] rev 12736
[cubicweb-ctl] backport --loglevel option of pyramid to all instance commands
Laurent Peuch <cortex@worlddomination.be> [Thu, 25 Jul 2019 03:33:01 +0200] rev 12735
[cubicweb-ctl/fix] correctly get exception traceback_ for pdb.post_mortem
In python 3 the behavior of sys.exc_info had a very subtle change:
- in python 2 you can call if whenever you want after a try/except statement
and you'll get information about this last raise
- ipython 3, once you get out of try/except, sys.exc_info is cleaned and you'll
get (None, None, None)
Hardened the test to avoid this error from happening again.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 15 Oct 2019 15:30:56 +0200] rev 12734
Document mercurial configuration for contributing
* how to use master/review repositories
* how to send the "Available at" command in patchbomb emails
* how to add the "cubicweb" flag in patchbomb emails
* how to use our "jenkins" mercurial extension
Closes #17243538
Noe Gaumont <ngaumont@logilab.fr> [Fri, 11 Oct 2019 12:42:35 +0200] rev 12733
Add documentation on workflow permission
Noe Gaumont <ngaumont@logilab.fr> [Fri, 11 Oct 2019 12:41:16 +0200] rev 12732
Remove undefined function in documentation
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 09 Oct 2019 11:44:22 +0200] rev 12731
Merge 3.26
Laurent Peuch <cortex@worlddomination.be> [Wed, 22 May 2019 01:16:55 +0200] rev 12730
[pyramid/ctl] pyramid command will always run in foreground from now on
Daemonization used to make sens in the past, but today "pyramid" command is
only used for dev and should never be used for deployement (you should use a
wsgi server for that instead) so daemonization doesn't fit any use case
anymore.
Closes #17232923
Laurent Peuch <cortex@worlddomination.be> [Thu, 22 Aug 2019 04:07:08 +0200] rev 12729
[clean] remove pyramid warning about looping task
This warning isn't useful anymore.
Laurent Peuch <cortex@worlddomination.be> [Thu, 20 Jun 2019 16:18:19 +0200] rev 12728
[doc] add instruction to re-enable ckeditor
Laurent Peuch <cortex@worlddomination.be> [Wed, 11 Sep 2019 18:31:08 +0200] rev 12727
[fix] reference to underclared and unused variable kwargs
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 11 Sep 2019 11:56:43 +0200] rev 12726
Avoid to update inlined relation column to NULL when deleting entities
When deleting entities, cubicweb run a rql DELETE on all relations to trigger hooks.
For an inlined relation this also mean set the column to NULL. This operation
may fail if there's additional constraints on the column.
Also this is a weird and useless behavior since deleting the entity row will by
definition delete the relation.
We still doesn't handle the case where both subject and object are going to be
deleted because rows need to be deleted in a particular order that cubicweb
doesn't handle.
Add a test checking UPDATE does not occur but hooks are correctly called.
Closes #17236690
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 11 Sep 2019 11:37:05 +0200] rev 12725
Drop useless ConstraintInsertionTC
This test does nothing and is here from the begining of repo history.
Now it raise an error "TypeError: Skipped expected string as 'msg' parameter, got 'SkipTest' instead. Perhaps you meant to use a mark?"
Just drop it.
Nicola Spanti <nicola.spanti@logilab.fr> [Tue, 27 Aug 2019 14:26:21 +0200] rev 12724
Backed out changeset 741dc2590f90
It was for cube s3storage, but this piece of information was
apparently not in the email (used for review), so this patch was
published in the wrong repository. :-/
Arthur Lutz <arthur.lutz@logilab.fr> [Fri, 23 Aug 2019 11:16:46 +0200] rev 12723
[.gitlab-ci] initial version (tox targets)
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 06 Aug 2019 16:43:46 +0200] rev 12722
Merge with 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 06 Aug 2019 16:36:21 +0200] rev 12721
Added tag debian/3.26.14-1, 3.26.14 for changeset 172f683a84f6
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 06 Aug 2019 15:43:59 +0200] rev 12720
[pkg] version 3.26.14
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 06 Aug 2019 14:26:17 +0200] rev 12719
[py3] Pass bytes as "msg" to smtplib.SMTP.sendmail()
When passing a unicode string to smtplib.SMTP.sendmail() as "msg"
argument, there is an implicit bytes encoding using "ascii" encoding in
python3. Of course this does not work if the string contains non-ASCII
characters. In fact, config's sendmails method intent to pass bytes to
smtplib.SMTP.sendmail() as it uses msg.as_string() method.
Unfortunately, in python3, this method returns a unicode string whereas
it returns a bytes string in python2; we thus fix this by calling
as_bytes() method on python3.
As there is no "as_bytes" method in python2, we need to handle python2
compatibility by hand and either call as_string() or as_bytes().
In testlib, where we mock smtplib.SMTP, we need to keep the "msg"
argument of Email class (defined in testlib as well) a unicode string.
Otherwise, it fails to be parsed by email.message_from_string() (from
stdlib) if it is bytes on python3.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 01 Aug 2019 09:20:40 +0200] rev 12718
[debian] Cleanup d/source/options from now gone symlinks
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 01 Aug 2019 09:13:52 +0200] rev 12717
[pkg] Version 3.27.0.a2
Laurent Peuch <cortex@worlddomination.be> [Wed, 24 Jul 2019 15:28:11 +0200] rev 12716
[debug/clean] remove unused DBG_MS flag
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 30 Jul 2019 14:47:25 +0200] rev 12715
Avoid using gone hooks_control() in migration
This deprecated function got dropped in a8c1ea390400.
Remove unused import in 3.10.9_Any.py migration; replace usage in
bootstrapmigration_repository.py by non-deprecated form.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 30 Jul 2019 14:42:15 +0200] rev 12714
[tox] Remove --ignore in check-manifest check
All symlinks have been dropped in previous changesets.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 30 Jul 2019 10:16:51 +0200] rev 12713
[doc] link to 3.27 (and missing 3.26) pages
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 24 Jul 2019 16:52:59 +0200] rev 12712
[pkg] Version 3.27.0a1
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 24 Jul 2019 16:52:00 +0200] rev 12711
[test] Replace symlinks by real copies
This solves a "python setup.py build" issue.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 24 Jul 2019 16:03:01 +0200] rev 12710
[pkg] Version 3.27.0a0
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 24 Jul 2019 15:14:56 +0200] rev 12709
Merge with 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 24 Jul 2019 13:39:52 +0200] rev 12708
Added tag debian/3.26.13-1, 3.26.13 for changeset 1fc684253207
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 24 Jul 2019 10:22:25 +0200] rev 12707
[pkg] Version 3.26.13
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 24 Jul 2019 11:43:21 +0200] rev 12706
[test] Replace symlinks in legacy_cubes by real copies
This solves a "python setup.py build" issue on my machine.
Copying these files should not be a big deal because they
have been dropped in the "default" branch and we would not
touch them in 3.26 branch.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 23 Jul 2019 17:21:18 +0200] rev 12705
[pkg] Prune packaging files from sdist
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 10 Jun 2019 12:04:39 +0200] rev 12704
[pkg] Fix spelling mistake in doc-base abstract
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 10 Jun 2019 12:04:11 +0200] rev 12703
[pkg] Fix doc-base section
As pointed by Lintian, the “Apps” section is only used in menu,
not in doc-base. We can just remove it.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 10 Jun 2019 11:15:17 +0200] rev 12702
[pkg] Move lintian-overrides file to debian/source directory
Just use the now preferred location.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Thu, 13 Jun 2019 16:47:47 +0200] rev 12701
[pkg] Tidy substvars usage in control file
The documentation package was missing a Built-Using field to record
the provenance of the templates.
Empty packages or meta packages do not require Depends on a specific
Python version, so we can remove the relevant substvars.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 10 Jun 2019 10:53:48 +0200] rev 12700
[pkg] Specify priority “optional” instead of the obsolete “extra”
Quoting Lintian, “Since Debian Policy version 4.0.1, the priority extra
has been deprecated.” So let's use “optional” instead.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Wed, 05 Jun 2019 16:29:04 +0200] rev 12699
[pkg] Switch to Debian source format 3.0 (quilt)
This forces us to base the Debian package on the source of the Python
package (as produced by running `python3 setup.py sdist`). While
it might seem cumbersome, this greatly reduces likelyhood of mismatch
between an installation via `pip` and one using the Debian package.
`dpkg-source` will also document for us what is currently in the
source repository but not in the Python package. Currently the missing
file are:
PKG-INFO
cubicweb/sobjects/test/data/cubicweb_comment/schema.py
cubicweb/sobjects/test/data/cubicweb_comment/__init__.py
cubicweb/sobjects/test/data/cubicweb_comment/__pkginfo__.py
cubicweb/sobjects/test/data/cubicweb_card/schema.py
cubicweb/sobjects/test/data/cubicweb_card/entities.py
cubicweb/sobjects/test/data/cubicweb_card/__init__.py
cubicweb/sobjects/test/data/cubicweb_card/__pkginfo__.py
cubicweb/server/test/data-migractions/cubicweb_comment/schema.py
cubicweb/server/test/data-migractions/cubicweb_comment/__init__.py
cubicweb/server/test/data-migractions/cubicweb_comment/__pkginfo__.py
cubicweb/server/test/data-migractions/cubicweb_localperms/schema.py
cubicweb/server/test/data-migractions/cubicweb_localperms/__init__.py
cubicweb/server/test/data-migractions/cubicweb_localperms/__pkginfo__.py
cubicweb/server/test/data-migractions/cubicweb_basket/schema.py
cubicweb/server/test/data-migractions/cubicweb_basket/__init__.py
cubicweb/server/test/data-migractions/cubicweb_basket/__pkginfo__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_comment/schema.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_comment/__init__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_comment/__pkginfo__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_localperms/schema.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_localperms/__init__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_localperms/__pkginfo__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_basket/schema.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_basket/__init__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_basket/__pkginfo__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_tag/schema.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_tag/__init__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_tag/__pkginfo__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_card/schema.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_card/__init__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_card/__pkginfo__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_file/schema.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_file/__init__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_file/__pkginfo__.py
cubicweb/server/test/data-migractions/cubicweb_tag/schema.py
cubicweb/server/test/data-migractions/cubicweb_tag/__init__.py
cubicweb/server/test/data-migractions/cubicweb_tag/__pkginfo__.py
cubicweb/server/test/data-migractions/cubicweb_card/schema.py
cubicweb/server/test/data-migractions/cubicweb_card/__init__.py
cubicweb/server/test/data-migractions/cubicweb_card/__pkginfo__.py
cubicweb/server/test/data-migractions/cubicweb_file/schema.py
cubicweb/server/test/data-migractions/cubicweb_file/__init__.py
cubicweb/server/test/data-migractions/cubicweb_file/__pkginfo__.py
cubicweb/test/data-rewrite/cubicweb_localperms/schema.py
cubicweb/test/data-rewrite/cubicweb_localperms/__init__.py
cubicweb/test/data-rewrite/cubicweb_localperms/__pkginfo__.py
cubicweb/test/data-rewrite/cubicweb_card/schema.py
cubicweb/test/data-rewrite/cubicweb_card/entities.py
cubicweb/test/data-rewrite/cubicweb_card/__init__.py
cubicweb/test/data-rewrite/cubicweb_card/__pkginfo__.py
The current manifest will duplicate several files that are stored as
symlinks in the Mercurial repository, hence the long list of ignored
files in `extend-diff-ignore`.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 12 Jul 2019 11:52:27 +0200] rev 12698
[debian] Update description of cubicweb-ctl* packages
init scripts are no longer shipped.
Avoid mentionning "start" and "stop" command which should not be used in
production environments.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 12 Jul 2019 11:49:46 +0200] rev 12697
[debian] Introduce a cubicweb-ctl3 binary package
This packages conflicts with cubicweb-ctl binary which uses the python2
library. It is meant to ease upgrade of existing installation during the
migration from python2 to python3: in particular, by installing
cubicweb-ctl3, scripts calling "cubicweb-ctl" command should still work
as before.
Laurent Peuch <cortex@worlddomination.be> [Mon, 22 Jul 2019 11:21:10 +0200] rev 12696
[cubicweb-ctl] respect sys.exit status code when aborting a command
When exploring the stack of all calls to a cubicweb-ctl command, it has been
discovered than on a KeyboardInterrupt and on a SystemExit exception the base
class InstanceCommand (for commands that works on one instance) will always set
the return code of cubicweb-ctl to 8: this mean that if another command do a
`sys.exit(some_code)` the exit code will be ignored and overwritten by '8'.
This behavior is not intuitive, apparently not documented and doesn't seems to
have any justification. It also prevent commands from exciting with different
return codes which could be a desired behavior in the situation of scripting.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 22 Jul 2019 11:32:12 +0200] rev 12695
[test] Add an "actionverb" attribute to test commands
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 22 Jul 2019 11:25:17 +0200] rev 12694
[test] use self.assertRaises() in cwctl tests
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 22 Jul 2019 11:09:15 +0200] rev 12693
[test] ensure mocking is stopped in cwctl tests
Either use a decorator or ensure that cleanup is performed.
This is so as to prevent global state modification.
Laurent Peuch <cortex@worlddomination.be> [Tue, 21 May 2019 16:47:13 +0200] rev 12692
[cubicweb-ctl] add '--pdb' global option to launch (i)pdb on exception
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 22 Jul 2019 10:54:22 +0200] rev 12691
[test] Rename TestCommand to avoid PytestCollectionWarning
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Wed, 10 Jul 2019 14:58:41 +0200] rev 12690
[pkg] Add new autopkgtest for skeleton packaging
When running `cubicweb-ctl newcube`, the generated template provides
debian packaging. So let's add automated tests for that using
autopkgtest.
The new test will generated a new cube, build a source tarball,
build the package, try to install it, see if the Python 2 and 3
modules are available and even run autopkgtest against the newly
created packages.
Along the way it will also print information about the generated
package: buildinfo, package content, and lintian report.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Wed, 10 Jul 2019 14:57:58 +0200] rev 12689
[skeleton] Update Debian packaging template
Here are multiple updates to the Debian packaging template provided when
running `cubicweb-ctl newcube`:
* Switch to source format 3.0 (quilt).
* Switch to debhelper 9.
* Switch to dh-python.
* Add Python 3 packages.
* Name the binary packages `python-cubicweb-CUBENAME` and
`python3-cubicweb-CUBENAME` instead of just `cubicweb-CUBENAME` (which is
still the source package).
* Populate Depends using dh_python{2,3} support for Python requirements.
* Run test suite at build time using pytest.
* Add autopkgtest to run test suite against the installed package.
* Bump Standards-Version to 4.3.0.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 26 Jun 2019 12:35:25 +0200] rev 12688
[test] Use --short-description when testing newcube command
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 17 Jun 2019 17:23:36 +0200] rev 12687
[devtools] Allow to specify short desc on `newcube` command line
In order to implement automated testing of `cubicweb-ctl newcube`, we
need to avoid any user interaction. So we add a `-s` switch to specify
a short description on the command-line instead of requiring an input.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 17 Jun 2019 17:25:04 +0200] rev 12686
[pkg] Add new autopkgtest for skeleton packaging
When running `cubicweb-ctl newcube`, the generated template provides
debian packaging. So let's add automated tests for that using
autopkgtest.
The new test will generated a new cube, build a source tarball,
build the package, try to install it, see if the Python 3 module is
available and even run autopkgtest against the newly created packages.
Along the way it will also print information about the generated
package: buildinfo, package content, and lintian report.
Laurent Peuch <cortex@worlddomination.be> [Tue, 21 May 2019 16:36:12 +0200] rev 12685
[cubicweb-ctl] move to accepting only once instance name per command
The rationals behind this decision are:
- while in the past managing all instances sytem wide made a lot of sens,
pratices have evolved today and we've moved to managing one instance by one
- this makes things easier to debug since commands since using them on several
instances were making this harder (errors hidden in the middle)
- also solve the problem of the return code to have, before it was always 0
which prevented to do things like:
ipython --pdb $(which cubicweb-ctl) $command $instance
or shell scripts that used it
- this simplify the code and is always good to take
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Tue, 09 Jul 2019 11:13:08 +0200] rev 12684
[pkg] Run all unit tests in autopkgtest
We previously forgot to copy `tox.ini` alongside the tests. As this
file configures pytest pattern matching rules, we were not running
quite a few tests. This is now fixed.
The added tests required some adjustments in the Debian dependencies.
Sadly, not all tests currently pass. It seems there are some ordering
dependencies between the tests in regards to how data are loaded.
Fixing this probably would probably be better debugged by ensuring
the test suite does not fail when using pytest random-order plugin.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Wed, 19 Jun 2019 18:45:10 +0200] rev 12683
[pkg] Stop running unit tests from skeleton
The test files shipped as part as the skeleton for `cubeweb-ctl newcube` are
not meant to be run as part of our test suite!
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Wed, 19 Jun 2019 18:43:38 +0200] rev 12682
[tests] Use 16 bytes key when testing Blowfish
The version of Cryptodome currently in Debian only accepts Blowfish keys
with at least 5 bytes. This is a bug (it should accept 4 as it did
before) that has since been fixed upstream:
https://github.com/Legrandin/pycryptodome/commit/93912230f3c39e09f4038cb17e301468687c6538
So we work around this issue by using a 16 bytes key instead
(which happens to be the minimum recommended length).
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 09 Jul 2019 14:35:44 +0200] rev 12681
Use time.process_time() instead of deprecated clock()
This fixes:
DeprecationWarning: time.clock has been deprecated in Python 3.3 and
will be removed from Python 3.8: use time.perf_counter or
time.process_time instead
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 09 Jul 2019 14:20:30 +0200] rev 12680
[web] Make the time separator configurable in JQueryDateTimePicker
We add a "separator" argument to JQueryDateTimePicker which will be used
when creating the underlying JQueryTimePicker instance so that the user
can control how time is displayed by the widget. This is very similar to
the "timesteps" argument that's already present.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 02 Jul 2019 14:54:01 +0200] rev 12679
Added tag 3.26.12, debian/3.26.12-1 for changeset 4531a266f8b2
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 02 Jul 2019 11:32:59 +0200] rev 12678
[pkg] Version 3.26.12
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 27 Jun 2019 12:20:22 +0200] rev 12677
[autoform] Fix display_fields handling
This follows-up on changeset b2ceb483e056 (present in 3.25 as well), in
which AutomaticEntityForm.editable_attributes() was turned into a
generator. In this method, in case display_fields is not None, we
previously returned a list of (rtype, role); this was changed into a
yield, but the change was missing a return after the loop in order not
to go through the remainder of the function.
Add tests for editable_attributes() method.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 27 Jun 2019 12:27:37 +0200] rev 12676
Flake8 cubicweb/web/views/autoform.py
Fixes:
cubicweb/web/views/autoform.py:703: [E122] continuation line missing indentation or outdented
cubicweb/web/views/autoform.py:704: [E122] continuation line missing indentation or outdented
cubicweb/web/views/autoform.py:819: [W504] line break after binary operator
cubicweb/web/views/autoform.py:820: [E125] continuation line with same indent as next logical line
cubicweb/web/views/autoform.py:961: [W504] line break after binary operator
cubicweb/web/views/autoform.py:962: [E126] continuation line over-indented for hanging indent
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 27 Jun 2019 12:13:21 +0200] rev 12675
[py3] unicode() -> six.text_type in autoform
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 26 Jun 2019 15:01:45 +0200] rev 12674
Added tag debian/3.26.11-2 for changeset e7eb914df71d
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 26 Jun 2019 15:01:15 +0200] rev 12673
[debian] Release 3.26.11-2
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 26 Jun 2019 13:19:30 +0200] rev 12672
[test] Require pycryptodomex, not pycryptodome
This follows up on changeset 5b0ce10a7046.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 25 Jun 2019 16:44:31 +0200] rev 12671
[debian] Mention Lintian warnings fixes from previous changesets
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 25 Jun 2019 16:24:45 +0200] rev 12670
[debian] Remove unused/redundant entries from debian/cubicweb-ctl.dirs
* bash completion entry produces a lintian warning
"package-installs-into-obsolete-dir etc/bash_completion.d/", and it does not
install bash completion.
* doc directory should be handled automatically.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 25 Jun 2019 16:21:41 +0200] rev 12669
[debian] Make descriptions of python-cubicweb and python3-cubicweb uniform
Thus solving lintian warning "description-synopsis-starts-with-article".
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 25 Jun 2019 14:49:16 +0200] rev 12668
[debian] Mention that -postgresql-support binaries are dependency package
Fixing lintian warning "empty-binary-package".
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 25 Jun 2019 14:42:06 +0200] rev 12667
[debian] Add ${misc:Depends} where missing
Fixes lintian warning "debhelper-but-no-misc-depends".
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 25 Jun 2019 16:43:16 +0200] rev 12666
[debian] Set Section: python for python- binary package
This is to fix a Lintian warning.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 25 Jun 2019 16:42:58 +0200] rev 12665
[debian] Install cubicweb-ctl from python2 build
Previously, the binary package was empty. Now it is bound to
the python2 package as support for python3 is "fresh".
In order python2 and python3 packages to be co-installable, we drop the
cubicweb-ctl file from both packages.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 20 Jun 2019 17:02:59 +0200] rev 12664
[debian] Introduce python3-cubicweb and python3-cubicweb-pyramid binary packages
This is the bare minimum to have a working cubicweb on python3. Further
work is done in default branch.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Wed, 19 Jun 2019 09:51:38 +0200] rev 12663
[skeleton] Update Debian packaging template
Here are multiple updates to the Debian packaging template provided when
running `cubicweb-ctl newcube`:
* Switch to source format 3.0 (quilt).
* Switch to debhelper 9.
* Switch to dh-python.
* Switch to Python 3.
* Name the binary package `python3-cubicweb-CUBENAME` instead of
just `cubicweb-CUBENAME` (which is still the source package).
* Populate Depends using dh_python3 support for Python requirements.
* Run test suite at build time using pytest.
* Add autopkgtest to run test suite against the installed package.
* Bump Standards-Version to 4.3.0.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 26 Jun 2019 12:35:25 +0200] rev 12662
[test] Use --short-description when testing newcube command
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 17 Jun 2019 17:23:36 +0200] rev 12661
[devtools] Allow to specify short desc on `newcube` command line
In order to implement automated testing of `cubicweb-ctl newcube`, we
need to avoid any user interaction. So we add a `-s` switch to specify
a short description on the command-line instead of requiring an input.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 10 Jun 2019 10:51:31 +0200] rev 12660
[pkg] Remove build dependency on dh-systemd
As suggested by Lintian, remove build dependency on obsolete package
dh-systemd. Instead, specify a more precise version of debhelper 9 that
added support for systemd.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 13 Jun 2019 15:04:13 +0200] rev 12659
[config] Raise in case of failure to send emails when in test mode
Since, for some reason, exception log messages are not visible when
running tests, it's very hard to debug when sendmails() method fails
during tests. So, as in some other places, let's raise the exception
when in test mode.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Wed, 19 Jun 2019 16:33:15 +0200] rev 12658
[doc] Update documentation to match current Debian packages
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Wed, 19 Jun 2019 16:32:25 +0200] rev 12657
[pkg] Remove transitional packages
We can take the opportunity of the switch to Python 3 to get rid
of old transitional packages. Let's do it. :)
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Wed, 19 Jun 2019 16:10:19 +0200] rev 12656
[pkg] Use sections from requires.txt to populate Recommends and Suggests
As Denis Laxalde pointed out, dh_python can also generate Recommends and
Suggests from Python package names. So let's use that instead of
manually populating these fields in `debian/control`.
Optional dependencies are currently specified in `setup.py` grouped by
feature. These dependency groups are turned into sections in
`requires.txt`. Thankfully `dh_python3` has options to populate
Recommends or Suggests with all package from a given section.
`debian/rules` now contains a list of which sections should go
to Recommends and which section should go to Suggests. Because such
extra list easily gets out-of-sync, we add a third list for ignored
sections, and ensure that all sections currently in `requires.txt`
get a mentioned in `debian/rules`.
Here are the results compared to the previous version with explicit
Recommends and Suggests (only listing Python packages):
|==============================================================|
| only in previous | common | only in new |
|==============================================================|
| Recommends |
|--------------------------------------------------------------|
| | python3-docutils | |
| python3-fyzz | | |
| python3-imaging | | |
| | python3-pycryptodome | |
| | python3-pyramid | |
| | python3-pyramid-multiauth | |
| python3-pysqlite2 | | |
| | python3-rdflib | |
| | python3-repoze.lru | |
| python3-simpletal | | |
| | python3-vobject | |
| | python3-waitress | |
| python3-werkzeug | | |
| | python3-wsgicors | |
|--------------------------------------------------------------|
| Suggests |
|--------------------------------------------------------------|
| | | python3-pil |
We also lose versioned dependencies which should not really be an issue
for Recommends and Suggests.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Wed, 19 Jun 2019 15:44:17 +0200] rev 12655
[crypto] Use Cryptodome namespace instead of Crypto
PyCryptodome comes in two flavors: “an almost drop-in replacement for the old
PyCrypto library” and “a library independent of the old PyCrypto”. The former
uses the Crypto namespace, and is shipped as `pycryptodome` while the latter
uses Cryptodome instead and lies in the `pycryptodomex` package.
Given the reason to switch to PyCryptodome is that PyCrypto in unmaintained,
its probably better to avoid any mistake and mandate the specific usage of
the Cryptodome namespace by requiring `pycryptodomex` instead of
`pycryptodome`.
A more present reason is that Debian buster will only provide a package
with the separate namespace flavor. The current Recommends is not working with
the current code. Although it's important to note that the package name will
probably have to be changed to `python3-pycryptodomex` once
https://bugs.debian.org/886291 is solved.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 17 Jun 2019 11:12:03 +0200] rev 12654
[pkg] Remove python3-six from Build-Depends
The default branch only provides support for Python 3.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 17 Jun 2019 11:11:28 +0200] rev 12653
[pkg] Merge python3-cubicweb-pyramid into python3-cubicweb
As suggested by Denis Laxalde, we can merge python3-cubicweb-pyramid into
python3-cubicweb as all other web backend in the default branch.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 17 Jun 2019 10:37:32 +0200] rev 12652
[pkg] Remove explicit Depends on Python packages for python3-cubicweb
As suggested by Denis Laxalde, we can let pybuild generate the list
of Depends from the egg requirements.
The list we get is slightly less specific in terms of needed versions,
but given the age of the previous ones, it's unlikely to cause issues.
Also we lose python3-six from the list… which is correct as it was
removed from the dependencies in 26744ad37953.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 10 Jun 2019 12:04:39 +0200] rev 12651
[pkg] Fix spelling mistake in doc-base abstract
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 10 Jun 2019 12:04:11 +0200] rev 12650
[pkg] Fix doc-base section
As pointed by Lintian, the “Apps” section is only used in menu,
not in doc-base. We can just remove it.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 10 Jun 2019 11:25:24 +0200] rev 12649
[pkg] Use “dependency package” instead of “virtual package” to describe python3-cubicweb-postgresql-support
The term “virtual” was too imprecise and is not accepted for empty
packages by Lintian anymore.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 10 Jun 2019 11:15:17 +0200] rev 12648
[pkg] Move lintian-overrides file to debian/source directory
Just use the now preferred location.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 10 Jun 2019 11:13:06 +0200] rev 12647
[pkg] Stop using /etc/bash_completion.d
cubicweb-ctl shipped an empty /etc/bash_completion.d as a leftover
of shipping a bash completion script. As pointed by Lintian, this
directory is not obsolete, so let's get rid of it for good.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Thu, 13 Jun 2019 16:47:47 +0200] rev 12646
[pkg] Tidy substvars usage in control file
The documentation package was missing a Built-Using field to record
the provenance of the templates.
Empty packages or meta packages do not require Depends on a specific
Python version, so we can remove the relevant substvars.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 10 Jun 2019 10:53:48 +0200] rev 12645
[pkg] Specify priority “optional” instead of the obsolete “extra”
Quoting Lintian, “Since Debian Policy version 4.0.1, the priority extra
has been deprecated.” So let's use “optional” instead.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Mon, 10 Jun 2019 10:51:31 +0200] rev 12644
[pkg] Remove build dependency on dh-systemd
As suggested by Lintian, remove build dependency on obsolete package
dh-systemd. Instead, specify a more precise version of debhelper 9 that
added support for systemd.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Wed, 05 Jun 2019 18:35:51 +0200] rev 12643
[pkg] Run test suite as part of autopkgtest
Add support for autopkgtest. The test “unittest” will run the test
suite using pytest. As we need PostgreSQL in the test environment
and open network connection, the test is marked with
`isolation-container` and requires at least LXC to be run, e.g:
autopkgtest -s -- lxc -s autopkgtest-sid
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Wed, 05 Jun 2019 16:29:04 +0200] rev 12642
[pkg] Switch to Debian source format 3.0 (quilt)
This forces us to base the Debian package on the source of the Python
package (as produced by running `python3 setup.py sdist`). While
it might seem cumbersome, this greatly reduces likelyhood of mismatch
between an installation via `pip` and one using the Debian package.
`dpkg-source` will also document for us what is currently in the
source repository but not in the Python package. Currently the missing
file are:
PKG-INFO
cubicweb/sobjects/test/data/cubicweb_comment/schema.py
cubicweb/sobjects/test/data/cubicweb_comment/__init__.py
cubicweb/sobjects/test/data/cubicweb_comment/__pkginfo__.py
cubicweb/sobjects/test/data/cubicweb_card/schema.py
cubicweb/sobjects/test/data/cubicweb_card/entities.py
cubicweb/sobjects/test/data/cubicweb_card/__init__.py
cubicweb/sobjects/test/data/cubicweb_card/__pkginfo__.py
cubicweb/server/test/data-migractions/cubicweb_comment/schema.py
cubicweb/server/test/data-migractions/cubicweb_comment/__init__.py
cubicweb/server/test/data-migractions/cubicweb_comment/__pkginfo__.py
cubicweb/server/test/data-migractions/cubicweb_localperms/schema.py
cubicweb/server/test/data-migractions/cubicweb_localperms/__init__.py
cubicweb/server/test/data-migractions/cubicweb_localperms/__pkginfo__.py
cubicweb/server/test/data-migractions/cubicweb_basket/schema.py
cubicweb/server/test/data-migractions/cubicweb_basket/__init__.py
cubicweb/server/test/data-migractions/cubicweb_basket/__pkginfo__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_comment/schema.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_comment/__init__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_comment/__pkginfo__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_localperms/schema.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_localperms/__init__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_localperms/__pkginfo__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_basket/schema.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_basket/__init__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_basket/__pkginfo__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_tag/schema.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_tag/__init__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_tag/__pkginfo__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_card/schema.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_card/__init__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_card/__pkginfo__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_file/schema.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_file/__init__.py
cubicweb/server/test/data-migractions/migratedapp/cubicweb_file/__pkginfo__.py
cubicweb/server/test/data-migractions/cubicweb_tag/schema.py
cubicweb/server/test/data-migractions/cubicweb_tag/__init__.py
cubicweb/server/test/data-migractions/cubicweb_tag/__pkginfo__.py
cubicweb/server/test/data-migractions/cubicweb_card/schema.py
cubicweb/server/test/data-migractions/cubicweb_card/__init__.py
cubicweb/server/test/data-migractions/cubicweb_card/__pkginfo__.py
cubicweb/server/test/data-migractions/cubicweb_file/schema.py
cubicweb/server/test/data-migractions/cubicweb_file/__init__.py
cubicweb/server/test/data-migractions/cubicweb_file/__pkginfo__.py
cubicweb/test/data-rewrite/cubicweb_localperms/schema.py
cubicweb/test/data-rewrite/cubicweb_localperms/__init__.py
cubicweb/test/data-rewrite/cubicweb_localperms/__pkginfo__.py
cubicweb/test/data-rewrite/cubicweb_card/schema.py
cubicweb/test/data-rewrite/cubicweb_card/entities.py
cubicweb/test/data-rewrite/cubicweb_card/__init__.py
cubicweb/test/data-rewrite/cubicweb_card/__pkginfo__.py
The current manifest will duplicate several files that are stored as
symlinks in the Mercurial repository, hence the long list of ignored
files in `extend-diff-ignore`.
Jérémy Bobbio <jeremy.bobbio@irq7.fr> [Wed, 05 Jun 2019 15:38:29 +0200] rev 12641
[pkg] Switch all Debian packages to Python 3
julien tayon <julien.tayon@logilab.fr> [Tue, 11 Jun 2019 09:40:12 +0200] rev 12640
Fix sorting key for rdefs in schema viewer
With changeset 234ca3cbbb46, clicking in the schema of an entity with
cubicweb in py3 on "vue en boite" will probably result in an infinite
spinner (which implies cw > 3.26)
What happened ?
This "vue en boite" used to work at least until...
hg diff -c a8c1ea390400 cubicweb/schema.py
@@ -993,10 +992,6 @@ class CubicWebRelationSchema(PermissionM
return False
return True
- @deprecated('use .rdef(subjtype, objtype).role_cardinality(role)')
- def cardinality(self, subjtype, objtype, target):
- return self.rdef(subjtype, objtype).role_cardinality(target)
-
class CubicWebSchema(Schema):
"""set of entities and relations schema defining the possible data sets
But, wait ...
If I open a shell on an instance of cw 3.24 something seems off
>>> list(schema['CWUniqueTogetherConstraint'].relation_definitions())[0][0].cardinality
# <bound method CubicWebRelationSchema.wrapped of <constraint_of [CWUniqueTogetherConstraint,CWEType]>>
We have been sorting on a method the whole time ? Is it possible what
were the effects ?
1) We cannot sort function can't we ?
>>> def adder(i): return lambda x: x+i
>>> sorted(map(adder,range(10)))
[<function __main__.<lambda>>,
<function __main__.<lambda>>,
...
Yes we can.
2) what does it means.
>>> { adder(1) : 1 }
Out[19]: {<function __main__.<lambda>>: 1}
In fact the function object as a __hash__ method (which is practical for making
memoizers (cache)), and return truly random results (pseudo random).
My take on this patch is relations have NEVER been sorted by cardinality.
No one never ever noticed. Hence, I propose to not fix a bug that never was
reported.
julien tayon <julien.tayon@logilab.fr> [Tue, 04 Jun 2019 09:35:47 +0200] rev 12639
Flake8 cubicweb/web/schemaviewer.py
julien tayon <julien.tayon@logilab.fr> [Tue, 04 Jun 2019 09:35:47 +0200] rev 12638
[py3] changing unicode to str
py2 support being dropped, passing the code in full py3 str/bytes syntax
julien tayon <julien.tayon@logilab.fr> [Tue, 11 Jun 2019 09:07:24 +0200] rev 12637
[py3] Use sorted(key=...) instead of sorted(cmp=...)
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 07 Jun 2019 14:56:22 +0200] rev 12636
Merge with 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 07 Jun 2019 14:53:03 +0200] rev 12635
Added tag 3.26.11, debian/3.26.11-1 for changeset 633ca84bea58
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 07 Jun 2019 14:52:51 +0200] rev 12634
[pkg] Version 3.26.11
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 06 Jun 2019 16:40:14 +0200] rev 12633
Added tag debian/3.26.10-1 for changeset 0ce26fb5ab48
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 May 2019 16:59:57 +0200] rev 12632
[debian] New upstream release
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 May 2019 17:24:21 +0200] rev 12631
[debian] Drop override_dh_auto_install about cubicweb-ctl
The script should be installed normally as it is a setuptools' entry
point.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 23 May 2019 17:25:59 +0200] rev 12630
[debian] Remove test/doc Build-Depends
We are not actually running tests during package build. (This was
disabled for python2, now it is also for python3.) And having these
build-depends makes it hard to rebuild the package.
Laurent Peuch <cortex@worlddomination.be> [Tue, 28 May 2019 12:35:34 +0200] rev 12629
[fix] parse cube version number without space in them
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 24 May 2019 17:09:10 +0200] rev 12628
Install patched yapps for test from an http archive
Instead of git which require git to be installed. Also downloading archive is faster than cloning the repository.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 11:39:36 +0100] rev 12627
[server/test] make test filename uniques
To avoid these pytest error when collecting the whole test suite:
import file mismatch:
imported module 'unittest_utils' has this __file__ attribute:
cubicweb/cubicweb/server/test/unittest_utils.py
which is not the same as the test file we want to collect:
cubicweb/cubicweb/test/unittest_utils.py
Move cubicweb/server/test/unittest_security.py to cubicweb/server/test/unittest_security.py
and cubicweb/test/unittest_utils.py to cubicweb/test/unittest_server_utils.py
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 24 May 2019 16:29:14 +0200] rev 12626
Merge 3.26
julien tayon <julien.tayon@logilab.fr> [Tue, 21 May 2019 10:50:08 +0200] rev 12625
[dataimport] Fix case when extid is text in use_extid_as_cwuri()
Extid can be bytes or text.
This avoid AttributeError: 'str' object has no attribute 'decode'
Noe Gaumont <ngaumont@logilab.fr> [Wed, 22 May 2019 11:34:08 +0200] rev 12624
[doc] fix key used in the hook example
The hook's regid is check_no_subsidiary_cycle.
Noe Gaumont <ngaumont@logilab.fr> [Wed, 22 May 2019 11:32:09 +0200] rev 12623
[doc] set_operation has been replaced by add_data
See the changelog https://cubicweb.readthedocs.io/en/3.26/changes/changelog/#id14
Noe Gaumont <ngaumont@logilab.fr> [Wed, 22 May 2019 11:30:52 +0200] rev 12622
[doc] check_cycle is a standard function
Noe Gaumont <ngaumont@logilab.fr> [Wed, 22 May 2019 11:29:49 +0200] rev 12621
[doc] fix several typos
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 21 May 2019 10:18:54 +0200] rev 12620
[pkg] make cubicweb[crypto] depends on pycryptodome instead of pycrypto
pycrypto isn't maintained anymore, the last release 2.6.1 is from 2014.
Use the drop-in replacement fork pycryptodome instead.
pycryptodome is packaged in debian starting from stretch-backports.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 21 May 2019 10:18:38 +0200] rev 12619
[crypto] Encode unicode strings in _cypherer()
pycrypto accept both bytes or string but pycryptodome, which will be introduced
in next changeset, doesn't accept this.
For backward compatibility, encode unicode strings in _cypherer()
julien tayon <julien.tayon@logilab.fr> [Thu, 16 May 2019 14:26:38 +0200] rev 12618
[ldapfeed] FIX: Unique Key violation when synchronizing with LDAPfeed
What was happening
==================
The bug appears when ldapfeed tries to insert a user while another user exists
exists with a different source.
Simple use case to reproduce:
- create a local user in cubicweb (source=system)
- sync with ldap
- ldapfeed will stop complaining user already exists.
Without next patch the test MUST fail with message:
cubicweb/server/sources/native.py:714: UniqueTogetherError
The ldapfeed is thus stopped ignoring any further ldap entries.
The proposal
============
Prior to this patch, the insertion was trying to create all CWUser with the
computed login from eeimporter.extid2eid (method process of DataFeedLDAPAdapter).
When a CWUser existed with a different cw_source ("system" for user created
with cubicweb for instance), it created a conflict.
To avoid collisions, in the extentities_generator method a bypass
was added at the insertion layer.
Prior to insertion the absence of the computed login is checked on a list of
all existing login from a different source.
If collision is detected, we skip the ldap record.
By short circuiting at the CWUser entity insertion level we also avoid to treat
CWGroup and EmailAddress related to this user.
Hence ensuring a behaviour that will not break existing instances.
(conservative approach: faced with ambiguity better do nothing than guess).
An error message is added stating explicitly the conflict.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 15 Mar 2019 12:12:23 +0100] rev 12617
Skip tests for ldapsource with python >= 3.7
Until someone works on fixing these, this should make our CI green
again.
I tried to use setupModule() to check for python version, but
pre_setup_database() is apparently called even when a SkipTest exception
is raised there. So handle this in that method.
(grafted from 4d68d20427dee4b6751a0f1f5511fec2a04f4782)
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 16 May 2019 17:18:29 +0200] rev 12616
Flake8 crypto module
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 16 May 2019 17:17:42 +0200] rev 12615
Make crypto module python3-compatible
* Remove usage of unicode() and decode the base64-encoded string in
encrypt();
* Encode the string received in decrypt() as (I supposed) it should come
from the result of encrypt().
Add tests for this module along the way.
Laurent Peuch <cortex@worlddomination.be> [Thu, 16 May 2019 04:42:59 +0200] rev 12614
[mod] make ViolatedConstraint actually display useful information
Move from:
(Pdb++) raise some_exception
*** ViolatedConstraint:
To:
(Pdb++) raise some_exception
*** ViolatedConstraint: constraint 'cstr56c2ab4b3154f21d08b067742ce5bd9d' is being violated by the query 'ALTER TABLE cw_Bibliography ADD CONSTRAINT cstr56c2ab4b3154f21d08b067742ce5bd9d CHECK(cw_item_type IN ('journalArticle', 'note', 'book', 'thesis', 'film', 'web page', 'manuscrit', 'tapuscrit'))'. You can run the inverted constraint on the database to list the problematic rows.
And save hours of debugging to actually understand what is going on.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 16 May 2019 09:40:28 +0200] rev 12613
Fix flake8 errors/warnings about import in cubicweb/_exceptions.py
We either ignore errors in case of name re-exports and drop re-exports
from old backwards compatibility. We fix the only occurrence of
NoSelectableObject being imported from cubicweb in tests and update the
import to use lgc instead.
Laurent Peuch <cortex@worlddomination.be> [Thu, 16 May 2019 04:47:27 +0200] rev 12612
add comment and # noqa on used import
Laurent Peuch <cortex@worlddomination.be> [Thu, 16 May 2019 04:47:10 +0200] rev 12611
remove unused import
Laurent Peuch <cortex@worlddomination.be> [Thu, 16 May 2019 02:39:42 +0200] rev 12610
[autopep8] E305 - Expected 2 blank lines after end of function or class
Laurent Peuch <cortex@worlddomination.be> [Thu, 16 May 2019 02:39:41 +0200] rev 12609
[autopep8] E303 - Remove extra blank lines
Laurent Peuch <cortex@worlddomination.be> [Thu, 16 May 2019 02:39:41 +0200] rev 12608
[autopep8] E302 - Add missing 2 blank lines
Laurent Peuch <cortex@worlddomination.be> [Thu, 16 May 2019 02:39:40 +0200] rev 12607
[autopep8] E301 - Add missing blank line
Laurent Peuch <cortex@worlddomination.be> [Thu, 16 May 2019 01:23:51 +0200] rev 12606
[enh] display CWConstraint type in its repr
This will change CWConstraint repr from something like:
<Entity CWConstraint 314282 [] at 140127700141904>
To:
<Entity CWConstraint 314282 of type UniqueConstraint [] at 140127700141904>
To help improve debugging UX a little bit.
Laurent Peuch <cortex@worlddomination.be> [Thu, 16 May 2019 01:23:51 +0200] rev 12605
[entities] display CWConstraint type in its repr
Laurent Peuch <cortex@worlddomination.be> [Wed, 15 May 2019 14:23:19 +0200] rev 12604
[changelog] document pyramid.ini automatic generation
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 15 May 2019 15:50:29 +0200] rev 12603
Flake8 cubicweb/pyramid/test/test_hooks.py
Laurent Peuch <cortex@worlddomination.be> [Wed, 15 May 2019 12:06:29 +0200] rev 12602
[pyramid/doc] bad docstring
Laurent Peuch <cortex@worlddomination.be> [Wed, 15 May 2019 12:06:15 +0200] rev 12601
[pyramid/misc] remove useless variable
Laurent Peuch <cortex@worlddomination.be> [Wed, 15 May 2019 12:05:52 +0200] rev 12600
[pyramid/test] add test for pyramid.ini generation
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 15 May 2019 15:44:35 +0200] rev 12599
Added tag 3.26.10 for changeset 74cc5de1ee6c
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 15 May 2019 15:44:26 +0200] rev 12598
[pkg] Version 3.26.10
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 10 May 2019 16:07:32 +0200] rev 12597
Move CWSchemaTC to RQLExpressionTC
The test actually doesn't require a cubicweb schema, except for testing
EmailAdress which is out of scope of the test (testing RQLExpression.transform_has_permission()).
Just move the test in existing RQLExpressionTC inheriting from TestCase and
rename the tests to be more explicit.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 17 Apr 2019 16:41:41 +0200] rev 12596
[skeleton] Drop py27 tox environment
Since we dropped py2 support from cubicweb, it does not make
much sense to keep it in skeleton from now on.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 17 Apr 2019 15:30:42 +0200] rev 12595
[skeleton] Do not ship Debian and RPM packaging files in sdist
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 17 Apr 2019 15:06:57 +0200] rev 12594
[skeleton] Add a check-manifest tox environment
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 10 May 2019 16:04:37 +0200] rev 12593
Fix pyramid tests
Followup fa292e9 which require cubicweb.session.secret to be set.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 10 May 2019 11:42:24 +0200] rev 12592
Fix flake8 and check-manifest
Followup fa292e9
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 10 May 2019 15:58:01 +0200] rev 12591
Merge 3.26
This fixes tests with psycopg2
Laurent Peuch <cortex@worlddomination.be> [Wed, 08 May 2019 21:37:13 +0200] rev 12590
DeprecationWarning: In future versions of Waitress clear_untrusted_proxy_headers will be set to True by default. You may opt-out by setting this value to False, or opt-in explicitly by setting this to True.
Source: https://docs.pylonsproject.org/projects/waitress/en/stable/arguments.html?highlight=clear_untrusted_proxy_headers
> This tells Waitress to remove any untrusted proxy headers ("Forwarded",
> "X-Forwared-For", "X-Forwarded-By", "X-Forwarded-Host", "X-Forwarded-Port",
> "X-Forwarded-Proto") not explicitly allowed by trusted_proxy_headers.
According to grep we don't use any of those headers so let's turn it on for
security reasons.
Laurent Peuch <cortex@worlddomination.be> [Wed, 08 May 2019 21:30:44 +0200] rev 12589
DeprecationWarning: The default pickle serializer is deprecated as of Pyramid 1.9 and it will be changed to use pyramid.session.JSONSerializer in version 2.0. Explicitly set the serializer to avoid future incompatibilities
. See "Upcoming Changes to ISession in Pyramid 2.0" for more information about this change.
As describe here https://docs.pylonsproject.org/projects/pyramid/en/1.10-branch/narr/sessions.html#pickle-session-deprecation
use a serializer that fallback on pickle if needed to avoid impacting users.
Laurent Peuch <cortex@worlddomination.be> [Wed, 08 May 2019 20:53:49 +0200] rev 12588
[pyramid/enh] generate pyramid.ini "create" and on "pyramid" command if needed
Laurent Peuch <cortex@worlddomination.be> [Wed, 08 May 2019 21:00:45 +0200] rev 12587
DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 08 Apr 2019 11:24:53 +0200] rev 12586
Account for new psycopg2 exception classes mapping
From psycopg2 >= 2.8, specific exceptions are raised corresponding to
postgresql errors. E.g. a CheckViolation exception is raised instead of
a generic IntegrityError previously when a constraint violation occurs.
The way we intercept database errors, especially for constraint
violation, is not compliant with that because we do not catch subclasses
of IntegrityError in native source's doexec() method.
We fix this by checking for the presence of IntegrityError error in
exception class's mro. This is still overcomplicated and clumsy, because
we still use string comparison, but this is the best we can do as far as
I know. (A better fix would be 'isinstance(ex, IntegrityError)' but we
have no engine-independent error classes, so this is not possible.
Something like sqlalchemy's DBAPI Errors [1] might help:
https://docs.sqlalchemy.org/en/latest/errors.html#dbapi-errors)
Laurent Peuch <cortex@worlddomination.be> [Fri, 12 Apr 2019 02:26:28 +0200] rev 12585
[cubicweb-ctl] remove "cubicweb-ctl wsgi" command following pyramid standardization
Laurent Peuch <cortex@worlddomination.be> [Fri, 12 Apr 2019 12:31:14 +0200] rev 12584
Use secure hash algorithm in WebConfiguration.sign_text
Fix: PendingDeprecationWarning: HMAC() without an explicit digestmod argument is deprecated.
The default hash algorithm used by hmac.new is md5. As of today, md5 is so weak
that it's the equivalent of plaintext and can't be considered to be secured at all.
Therefor, we switch to a secure hash algorithm.
The rational for choosing sha3_512 is:
* the recommended algorithm is at least sha_256
* the stronger, the more secured and sha3_512 is the stronger available
* thinking about the future this should keep this part of the code safe long
enough before people think about checking it again
You can read more about choosing a secure hash algorithm in the NIST
recommendations https://csrc.nist.gov/Projects/Hash-Functions/NIST-Policy-on-Hash-Functions
This code modification should normally be transparent since check_text_sign is
exactly this code 'self.sign_text(text) == signature' and that sign_text is
only used in combination with it. The only impact is that the hash is going to
move from 32 char to 128 which might make html page a bit bigger and that
sha3_512 is slow to compute (which is a good thing for security)
Laurent Peuch <cortex@worlddomination.be> [Tue, 23 Apr 2019 09:33:52 +0200] rev 12583
[enh] don't catch all exceptions in notification hooks during tests
Noe Gaumont <ngaumont@logilab.fr> [Thu, 18 Apr 2019 15:09:36 +0200] rev 12582
[doc] add a reference to static-messages.pot usage
Noe Gaumont <ngaumont@logilab.fr> [Thu, 18 Apr 2019 15:10:35 +0200] rev 12581
[doc] Clarify sentences
Noe Gaumont <ngaumont@logilab.fr> [Thu, 18 Apr 2019 15:05:13 +0200] rev 12580
[doc] Fix format and typo
Nsukami Patrick <ndkpatt at gmail dot com> [Thu, 18 Apr 2019 04:40:23 +0000] rev 12579
Fix DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated
Nsukami Patrick <ndkpatt at gmail dot com> [Thu, 18 Apr 2019 04:34:34 +0000] rev 12578
Fix DeprecationWarning: invalid escape sequence
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 16 Apr 2019 15:49:03 +0200] rev 12577
[devtools/testlib] avoid hidding AttributeError in create_user()
commit() might raise a AttributeError too.
Use getattr(req, 'cnx', req) instead, which is a form already used to get the real cnx
in some code:
cubicweb/rset.py:577: cnx = getattr(self.req, 'cnx', self.req)
cubicweb/schema.py:353: with getattr(_cw, 'cnx', _cw).security_enabled(read=False):
We could use if hasattr(req, 'commit') here too but it lead to 3 additionals lines.
Maybe we should have commit() and rollback() on
cubicweb.web.request.ConnectionCubicWebRequestBase too ?
Nsukami Patrick <ndkpatt at gmail dot com> [Wed, 10 Apr 2019 17:59:17 +0000] rev 12576
Fix DeprecationWarning: invalid escape sequence \
Laurent Peuch <cortex@worlddomination.be> [Fri, 12 Apr 2019 11:56:13 +0200] rev 12575
DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
Laurent Peuch <cortex@worlddomination.be> [Fri, 12 Apr 2019 13:52:17 +0200] rev 12574
[mod] remove backward compatible code for passlib and force modern version
Laurent Peuch <cortex@worlddomination.be> [Fri, 12 Apr 2019 11:54:42 +0200] rev 12573
DeprecationWarning: Please use assertEqual instead.
Laurent Peuch <cortex@worlddomination.be> [Fri, 12 Apr 2019 17:25:40 +0200] rev 12572
DeprecationWarning: Please use assertRaisesRegex instead.
Laurent Peuch <cortex@worlddomination.be> [Thu, 11 Apr 2019 20:15:09 +0200] rev 12571
DeprecationWarning: inspect.getargspec() is deprecated since Python 3.0, use inspect.signature() or inspect.getfullargspec()
Laurent Peuch <cortex@worlddomination.be> [Thu, 11 Apr 2019 16:47:27 +0200] rev 12570
[README] add testing instructions
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 05 Apr 2019 12:19:03 +0200] rev 12569
Add pytest-subtests to dev requirements
This pytest plugin adds support for unittest's TestCase.subTest (for
Python >= 3.4). Since we we now only support python3 and since we use a
fair amount of these, let's benefit of better reporting by using this
plugin.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 26 Mar 2019 16:22:31 +0100] rev 12568
[test] use unittest.mock instead of mock library
Now that we use Python 3 only, this is possible.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 05 Apr 2019 17:58:19 +0200] rev 12567
Drop python2 support
This mostly consists in removing the dependency on "six" and updating
the code to use only Python3 idioms.
Notice that we previously used TemporaryDirectory from
cubicweb.devtools.testlib for compatibility with Python2. We now
directly import it from tempfile.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 05 Apr 2019 17:21:14 +0200] rev 12566
Merge with 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 05 Apr 2019 17:40:02 +0200] rev 12565
Remove unused imports in cubicweb.pyramid.config
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 05 Apr 2019 17:20:01 +0200] rev 12564
Added tag 3.26.9 for changeset 4d6909de765a
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 05 Apr 2019 17:19:56 +0200] rev 12563
[pkg] Version 3.26.9
Laurent Peuch <cortex@worlddomination.be> [Tue, 12 Feb 2019 17:00:55 +0100] rev 12562
[pyramid/security] use cryptographically secure random generator
Based on django source code in case SystemRandom is not available.
According to python documentation:
https://docs.python.org/2/library/random.html
> Warning
> The pseudo-random generators of this module should not be used for security
> purposes. Use os.urandom() or SystemRandom if you require a cryptographically
> secure pseudo-random number generator.
Arthur Lutz <arthur.lutz@logilab.fr> [Thu, 04 Apr 2019 14:11:40 +0200] rev 12561
Reclosing branch after merge
Arthur Lutz <arthur.lutz@logilab.fr> [Thu, 04 Apr 2019 13:49:34 +0200] rev 12560
Merging heads of old, closed branch
Arthur Lutz <arthur.lutz@logilab.fr> [Thu, 04 Apr 2019 14:08:10 +0200] rev 12559
Reclosing branch after merge
Arthur Lutz <arthur.lutz@logilab.fr> [Thu, 04 Apr 2019 13:45:23 +0200] rev 12558
Merging heads of old, closed branch
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 11:15:28 +0100] rev 12557
[doc/changes] document that legacy cube support has been dropped
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 11:13:12 +0100] rev 12556
[doc] replace legacy import to new style cube import in various places
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 11:09:29 +0100] rev 12555
[web/views] drop deprecated module cubicweb.web.views.timeline
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 11:06:02 +0100] rev 12554
[web/views] drop deprecated module cubicweb.web.views.massmailing
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 11:05:35 +0100] rev 12553
[web/views] drop deprecated module cubicweb.web.views.isioc
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 11:04:51 +0100] rev 12552
[web/views] drop deprecated module cubicweb.web.views.embedding
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 11:04:07 +0100] rev 12551
[web/views] drop deprecated module cubicweb.web.views.igeocodable
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 11:00:55 +0100] rev 12550
[pyramid/core] drop fallback import of legacy cubes
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 10:33:54 +0100] rev 12549
[cwconfig] drop importing legacy cubes
This finally drop support for legacy cubes.
In cwconfig, don't load modules in the "cubes" namespace.
In cube_pkginfo() handle CW_MIGRATION_MAP which wasn't working with new style cube.
Drop all method specific to legacy cubes importer: cubes_search_path(), extrapath(), cls_adjust_sys_path()
Drop environment variables related to legacy cubes: CW_CUBES_PATH and CW_CUBES_DIR
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 10:11:36 +0100] rev 12548
[doc] better documentation for "cubicweb-ctl newcube"
cubicweb-ctl newcube create cubicweb-<name> in current directory.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 10:09:49 +0100] rev 12547
[test] make unittest_cwconfig.py does not depend on legacy cube machinery
By dropping legacy cube tests in various places.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 10:07:02 +0100] rev 12546
[devtools/test] drop legacy cube i18n tests
test_i18ncube_legacy_layout() is droped and make others tests uses a new style
cube "cubicweb_i18ntestcube", so it doesn't depends on legacy cube machinery.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Thu, 28 Mar 2019 10:04:23 +0100] rev 12545
[server/test] make unittest_migractions.py use new style cubes
MigrationTC used old cube layout in
cubicweb/server/test/data-migractions/cubes, move them to new style cubes as
"cubicweb_<cubename>" in "apphome" (cubicweb/server/test/data-migractions/)
which is added to PYTHONPATH by CubicWebTC.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 27 Mar 2019 16:25:06 +0100] rev 12544
[cwconfig] drop _cube_modname
Since we drop support for legacy cubes, this is equivalent to _cube_pkgname()
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 27 Mar 2019 16:19:50 +0100] rev 12543
[cwconfig] drop legacy cube importer
We don't want to support legacy cubes anymore.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 22 Mar 2019 17:42:36 +0100] rev 12542
Drop more deprecated code
This follows up on changeset a8c1ea390400, in which code deprecated
using logilab.common.deprecation got dropped. Now we also drop code
deprecated using stdlib's warn(<msg>, DeprecationWarning).
Notice that, as a consequence of dropping old/new etypes aliases in
cubicweb/schema.py, we drop the import ETYPE_NAME_MAP (no longer
needed); but since other modules imported that name from
cubicweb.schema, we need to update the import statement to use
"cubicweb" directly.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 26 Mar 2019 13:08:13 +0100] rev 12541
Flake8 cubicweb/cwvreg.py
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 22 Mar 2019 17:32:30 +0100] rev 12540
Drop deprecated "boxes" and "contentnavigation" registries
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 22 Mar 2019 17:29:15 +0100] rev 12539
Drop deprecated CWCache entity type
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 22 Mar 2019 17:30:09 +0100] rev 12538
Update i18n after "recent" changes
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 22 Mar 2019 15:53:24 +0100] rev 12537
Drop repair_file_1-9_migration.py
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 22 Mar 2019 14:48:22 +0100] rev 12536
Drop a left-over 3.22 deprecation warning
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 27 Mar 2019 15:53:00 +0100] rev 12535
[doc] fix reference to ~src/cubes in tutorial
~src/cubes refer to the $HOME/cubes directory of "src" user while ~/src/cubes
refer to $HOME/src/cubes directory of current user.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 27 Mar 2019 15:52:40 +0100] rev 12534
[doc] replace cubicweb-ctl start by cubicweb-ctl pyramid
Since twisted support is gone.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 27 Mar 2019 15:51:50 +0100] rev 12533
[doc] make the tutorial use a python3 virtualenv
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 27 Mar 2019 15:43:53 +0100] rev 12532
[doc] Update README "Getting started"
* install using pip and with pyramid in a virtualenv
* link to pyramid.ini documentation
* Use pyramid to start application since twisted support is gone
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 21 Mar 2019 14:36:25 +0100] rev 12531
Flake8 cubicweb/devtools/httptest.py
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 21 Mar 2019 14:33:54 +0100] rev 12530
Remove Twisted web server
Twisted web server is not used anymore and has been superseded by
pyramid many years ago. Furthermore, our usage is not compatible with
Python 3. So we drop the "etwist" sub-package.
As a consequence, "all-in-one" configuration type gets dropped as it was
Twisted-specific. We resurrect it in cubicweb/pyramid/config.py by only
keeping options used by the "pyramid". Similarly, we introduce a
AllInOneCreateHandler in cubicweb/pyramid/pyramidctl.py that is
basically the one that lived in cubicweb/etwist/twctl.py and is used to
create the "all-in-one" instance. Added a TODO here about "pyramid.ini"
that could be generated at the end of bootstrap() method.
In cubicweb/devtools/httptest.py, CubicWebServerTC is now equivalent to
CubicWebWsgiTC and the latter is dropped.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 21 Mar 2019 12:05:30 +0100] rev 12529
Separate twisted-specific configuration from WebConfigurationBase class
This is in preparation of dropping the Twisted web server backend.
We thus draw a clearer line between what's specific to twisted from
what's generic by moving WebConfigurationBase class into
cubicweb/web/webconfig.py and only keeping twisted-related in
AllInOneConfiguration (still living in cubicweb/etwist/twconfig.py).
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 21 Mar 2019 11:50:31 +0100] rev 12528
Flake8 cubicweb/web/webconfig.py
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 21 Mar 2019 11:47:10 +0100] rev 12527
Flake8 cubicweb/etwist/twconfig.py
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 17:16:34 +0100] rev 12526
Remove ctl commands using the Twisted backend
This backend is not maintained, very likely no longer used in any recent
instance, and not supported in Python 3.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 17:04:02 +0100] rev 12525
Flake8 cubicweb/cwctl.py
* run autopep8 on the file
* fixed unused imports
* rename "version" import as "cw_version" in order not to shadow local
variables
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 16:53:34 +0100] rev 12524
Remove _handle_win32() method from "create" command class
This method generates code in a file using etwist module that we are
about to drop.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 15 Mar 2019 12:12:23 +0100] rev 12523
Skip tests for ldapsource with python >= 3.7
Until someone works on fixing these, this should make our CI green
again.
I tried to use setupModule() to check for python version, but
pre_setup_database() is apparently called even when a SkipTest exception
is raised there. So handle this in that method.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 27 Mar 2019 09:25:44 +0100] rev 12522
[doc] Update cubicweb-ctl page about how to run an instance
* remove mention of start/stop/restart/status commands that do not exist anymore
* briefly mention the "pyramid" and point to respective documentation page
* mention that a WSGI server should be used in production
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 27 Mar 2019 09:21:18 +0100] rev 12521
[doc] Drop mention of the "pyramid" cube
This cube got merged into cubicweb several versions ago.
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Mar 2019 14:28:30 +0100] rev 12520
[cli/enh] on 'shell' or migration command, use ipython if available
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 19 Mar 2019 13:17:47 +0100] rev 12519
[web/test] drop dependency on third party cubes
Drop dependency on cubicweb-file, cubicweb-blog and cubicweb-tag for cubicweb/web/test
Copy required parts of cubes (schema, entities, views and hooks) into
cubicweb/web/test/data/cubicweb-<cube> that make tests pass.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 15 Mar 2019 18:07:18 +0100] rev 12518
[test] drop dependency on third party cubes
Drop dependency on cubicweb-file, cubicweb-localperms, cubicweb-tag and
cubicweb-comment for cubicweb.test and cubicweb.sobjects.test
Move cubicweb/test/data/libpython/cubicweb_* to cubicweb/test/data, so it's
included in PYTHONPATH.
Add missing parts of schema, entities, views, hooks that make tests pass.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 15 Mar 2019 17:12:20 +0100] rev 12517
[test] drop CubicWebConfigurationWithLegacyCubesTC
This is used to test legacy cube import which is planned for removal
in cubicweb 3.27, so drop the code.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 15 Mar 2019 17:10:16 +0100] rev 12516
[test] drop unittest_cubes.py
This is used to test legacy cube import which is planned for removal in
cubicweb 3.27, so drop the code.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 19 Mar 2019 14:26:51 +0100] rev 12515
[server/test] do not depend on third party cubes
Drop requirement of basket, card, comment, file, localperms and tag cubes for
cubicweb.server tests.
Copy needed part of schema, entities, views, hooks into the
cubicweb/server/test/data directory (which is included in PYTHONPATH for
CubicWebTC tests).
For migration tests which use different "datapath", use symlinks to have dependent cubes importables.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Fri, 15 Mar 2019 15:51:27 +0100] rev 12514
[server/test] drop unused variable initialization in OperationsTC.setUp()
Variable "self.hm" is unused
Philippe Pepiot <philippe.pepiot@logilab.fr> [Wed, 13 Mar 2019 14:03:45 +0100] rev 12513
[server/test] bootstrap config in setUpModule function
This is test initialization, so use the setUpModule function for this
Philippe Pepiot <philippe.pepiot@logilab.fr> [Mon, 11 Mar 2019 17:43:23 +0100] rev 12512
[schema] drop monkeypatch "name_for" on BaseConstraint
BaseConstraint doesn't have "name_for" method, this is just an addition for
cubicweb needs.
Implement this as a function instead of a monkeypatch to avoid having
"name_for" not defined because cubicweb.schema hasn't been imported.
In particular this fix running cubicweb/server/test/unittest_schema2sql.py::SQLSchemaTC::test_known_values alone.
Laurent Peuch <cortex@worlddomination.be> [Thu, 14 Mar 2019 16:17:49 +0100] rev 12511
[fix] this check was too restrictive and broke tests
Laurent Peuch <cortex@worlddomination.be> [Thu, 14 Mar 2019 16:09:26 +0100] rev 12510
[fix] exception type has changed
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Wed, 13 Mar 2019 10:21:39 +0100] rev 12509
[server.rqlannotation] refactor to make class SQLGenAnnotator consistent
_annotate_select() takes SQLGenAnnotator as a first argument and is
not used anywhere except in SQLGenAnnotator. This looks like a
method to me. Let us fold it into its class.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 12:08:37 +0100] rev 12508
Drop most of deprecated code
As in previous changesets, most code has been deprecated since a very
long time. This changeset concerns "core" cubicweb modules
(e.g. "server", "appobjects") for which it's not easy to handle change
atomically.
In cubicweb/server/querier.py, we adjust empty_rset() function as a
result of "rqlst" argument of ResultSet being dropped. (There was no use
of the keyword argument anyways.)
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 14:45:35 +0100] rev 12507
Drop deprecated code in cubicweb.hooks
Changelog entry will come in a later changeset.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 14:45:27 +0100] rev 12506
Drop deprecated code in cubicweb.entities
Also dropped an unused import along the way.
Changelog entry will come in a later changeset.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 14:45:18 +0100] rev 12505
Drop deprecated code in cubicweb.devtools
Changelog entry will come in a later changeset.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 14:45:03 +0100] rev 12504
Drop deprecated code in cubicweb.dataimport
We actually drop *most* of deprecated code in this subpackage. What's
left is the MetaGenerator class in (cubicweb/dataimport/stores.py) which
is tricky to remove as it's still internally used by cubicweb.
Changelog entry will come in a later changeset.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 14:43:18 +0100] rev 12503
Drop most deprecated code in cubicweb.web
This includes both Python and JavaScript code. Most code has been
deprecated since a very long time (versions 3.1x mostly, more than 5
years ago, and a few things until 3.24).
There are still a few deprecated things, most of which are actually used
within cubicweb (or in cubes we depend on for tests). I don't know what
to do with these...
Removed a couple of unused imports along the way.
Changelog entry will come in a later changeset.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 13 Mar 2019 13:37:49 +0100] rev 12502
[web] use Separator "component" instead of deprecated BoxSeparator widget
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 13 Mar 2019 13:36:38 +0100] rev 12501
Flake8 cubicweb/web/box.py
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 14:38:55 +0100] rev 12500
[test] Remove upper bound for cubicweb-localperms
Version 0.4.0 does not use a deprecated API that we are planning to drop
in forthcoming changesets.
This requires changing expected values in unittest_cwconfig.py where we
scan install cubes.
* In CubicWebConfigurationTC.test_available_cubes(), localperms
disappears from the list of expected cubes because this test method
will look for new style cubes in located in cubicweb/test/data/libpython/
(we patch pkg_resources.iter_entry_points()) as well as old style
cubes installed in $PREFIX/share/cubicweb/cubes; since the new
cubicweb-localperms version is new-style, it won't be catched by this
method.
* In CubicWebConfigurationWithLegacyCubesTC.test_available_cubes(),
localperms is still listed, but now with the package name, because
this method will simply look at installed cubes whether old or new
style.
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 14 Mar 2019 16:44:53 +0100] rev 12499
[test] Make the expected value explicit in CubicWebConfigurationWithLegacyCubesTC.test_available_cubes()
This will help with the next changeset, and avoiding computation in
tests is a good thing in general.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 13 Mar 2019 17:21:27 +0100] rev 12498
[test] Inline _test_available_cubes() method in cwconfig tests
Improves readability.
Laurent Peuch <cortex@worlddomination.be> [Thu, 14 Mar 2019 09:38:20 +0100] rev 12497
[DX] adding error messages to {ResultSet,ActionsRegistry}.possible_actions
Try to make it more accessible, when we first encountered these errors
it it didn't made any sense to us.
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Tue, 12 Mar 2019 23:45:15 +0100] rev 12496
[server/querier] remove useless indirection QuerierHelper._annotate
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Tue, 12 Mar 2019 23:04:57 +0100] rev 12495
[server] remove useless indirection ExecutionPlan.sqlannotate
Simpler is better. Use directly ExecutionPlan.querier.sqlgen_annotate.
Nicolas Chauvat <nicolas.chauvat@logilab.fr> [Tue, 12 Mar 2019 23:20:50 +0100] rev 12494
[web] removed unused imports in basecomponents
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 13 Mar 2019 14:01:10 +0100] rev 12493
[test] Depends on psycopg2-binary
Avoids the following warning:
The psycopg2 wheel package will be renamed from release 2.8; in order
to keep installing from binary please use "pip install psycopg2-binary"
instead. For details see:
<http://initd.org/psycopg/docs/install.html#binary-install-from-pypi
Laurent Peuch <cortex@worlddomination.be> [Tue, 12 Mar 2019 11:40:59 +0100] rev 12492
[doc/changelog] the removal of next_tabindex produce an error not in the changelog
When one tried to migrate to 3.25, the error "class X initialization doesn't
have a settabindex argument" can happen but the word "settabindex" is not
present in the changelog which makes it hard to find to which modification this
error is related.
Denis Laxalde <denis.laxalde@logilab.fr> [Mon, 11 Mar 2019 14:34:14 +0100] rev 12491
Merge with branch 3.26
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 08 Mar 2019 14:35:59 +0100] rev 12490
[py3.7,test] Use cubicweb-file >= 2.2.2
This includes changeset aa4a3a3d0c18 fixing import of
os.errno.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 08 Mar 2019 11:58:30 +0100] rev 12489
[flake8] Fix errors in cubicweb/ext/test/unittest_rest.py
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 08 Mar 2019 11:56:05 +0100] rev 12488
[test] Shorten prefix string in test_rql_role_with_unknown_vid
With Python3.7, this test fails as the error message returned by
rest_publish() is:
<p>an error occurred while interpreting this rql directive: ObjectNotFound('toto')</p>
while we previously assumed a comma after 'toto'.
Fixing this by only shortening the prefix used in out.startswith().
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 08 Mar 2019 11:52:31 +0100] rev 12487
[flake8] fix errors in cubicweb_i18ntestcube/views.py test file
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 08 Mar 2019 11:50:20 +0100] rev 12486
[test] Pass __module__ upon instantiation of RegistrableInstance
This gets rid of the deprecation warning from logilab.common.registry:
DeprecationWarning: instantiate MyAFS with __module__=__name__
and solves a test error on Python 3.7.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 08 Mar 2019 12:00:47 +0100] rev 12485
Added tag 3.26.8 for changeset 91f75319a726
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 07 Mar 2019 11:56:01 +0100] rev 12484
[pkg] Version 3.26.8
Laurent Peuch <cortex@worlddomination.be> [Tue, 26 Feb 2019 16:28:17 +0100] rev 12483
[doc] didn't had any questions
Laurent Peuch <cortex@worlddomination.be> [Tue, 26 Feb 2019 16:30:31 +0100] rev 12482
[doc] missing import, cw now require this explicitely
Laurent Peuch <cortex@worlddomination.be> [Tue, 26 Feb 2019 16:30:12 +0100] rev 12481
[doc] add actual link to previous post
Laurent Peuch <cortex@worlddomination.be> [Tue, 26 Feb 2019 16:29:54 +0100] rev 12480
[doc] missing import in code example
Laurent Peuch <cortex@worlddomination.be> [Tue, 26 Feb 2019 16:29:44 +0100] rev 12479
[doc] add a note because uiprops.py is not generated anymore by default
Laurent Peuch <cortex@worlddomination.be> [Tue, 26 Feb 2019 16:29:23 +0100] rev 12478
[doc] recommend pip instead of apt for installing things
According to a discussion on XMPP we should recommend pip instead.
Laurent Peuch <cortex@worlddomination.be> [Tue, 26 Feb 2019 16:28:43 +0100] rev 12477
[doc] fix, link to internal doc since it's not the blog post anymore
Laurent Peuch <cortex@worlddomination.be> [Tue, 26 Feb 2019 16:27:56 +0100] rev 12476
[doc] also show command with sqlite since it's recommended
Laurent Peuch <cortex@worlddomination.be> [Tue, 26 Feb 2019 16:26:33 +0100] rev 12475
[doc] fix, the cube name was used, it was the instance named that was needed
Laurent Peuch <cortex@worlddomination.be> [Tue, 26 Feb 2019 16:25:59 +0100] rev 12474
[doc] it's a tutorial, not a blog post anymore
Laurent Peuch <cortex@worlddomination.be> [Tue, 26 Feb 2019 16:25:44 +0100] rev 12473
[doc] make example more redable
Laurent Peuch <cortex@worlddomination.be> [Tue, 26 Feb 2019 16:25:27 +0100] rev 12472
[doc] uses :file:`name` everywhere + indicate file when it's not present
Laurent Peuch <cortex@worlddomination.be> [Tue, 26 Feb 2019 16:23:37 +0100] rev 12471
[doc] english typos
Laurent Peuch <cortex@worlddomination.be> [Tue, 26 Feb 2019 16:23:07 +0100] rev 12470
[doc] pep8/retab in code examples
Laurent Peuch <cortex@worlddomination.be> [Wed, 27 Feb 2019 13:41:34 +0100] rev 12469
[doc] correct import for i18n
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 18:46:39 +0100] rev 12468
[doc] pep8 and retab in tutorial code example
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 19:08:44 +0100] rev 12467
[doc] correct pip command to have needed dependancies to use the start command
I know we want to remove this command but in the meantime having this
documentation working seems like something good.
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 18:57:24 +0100] rev 12466
[doc] explain the difference between a relation and an attribute
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 18:57:05 +0100] rev 12465
[doc] plural
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 18:56:42 +0100] rev 12464
[doc] misc, put every reference to something in the code between backquotes
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 18:54:46 +0100] rev 12463
[doc] bold to make reading more obvious
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 18:54:23 +0100] rev 12462
[doc] style, switch to bullet points list to make things easier to read
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 18:53:39 +0100] rev 12461
[doc] explains what the <X.Y.Z> means
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 18:53:03 +0100] rev 12460
[doc] command output style has changed
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 18:51:36 +0100] rev 12459
[doc] always put file name for code example and uses :file:`path` syntax everywhere
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 18:49:24 +0100] rev 12458
[doc] explicitely give the local server url to make this step more obvious
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 18:48:51 +0100] rev 12457
[doc] start the server in debug mode, it's easier during learning
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 18:48:07 +0100] rev 12456
[doc] recommend sqlite during tutorial because it's simplier to use
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 18:47:35 +0100] rev 12455
[doc] add a link to every cube documentation page
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 18:47:03 +0100] rev 12454
[doc] make this step more obvious
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 18:42:29 +0100] rev 12453
[doc] move to latest CW version for cube creation
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 18:15:26 +0100] rev 12452
[doc] missng import for i18n in example
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 18:10:47 +0100] rev 12451
[doc] unused import in example
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 15:25:23 +0100] rev 12450
[doc] output has changed
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 15:18:09 +0100] rev 12449
[doc] blanks spaces to allow example to breath and be more lisible
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 15:16:22 +0100] rev 12448
[doc] default tests template has changed
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 15:13:45 +0100] rev 12447
[doc] default generated filename as changed
Laurent Peuch <cortex@worlddomination.be> [Thu, 21 Feb 2019 10:05:38 +0100] rev 12446
[doc] rst syntax bug, blank line needed before item list
Laurent Peuch <cortex@worlddomination.be> [Fri, 22 Feb 2019 15:16:26 +0100] rev 12445
[doc] add link to cubes contribution document
Laurent Peuch <cortex@worlddomination.be> [Fri, 22 Feb 2019 15:48:34 +0100] rev 12444
[doc] link to current documentation, not old cubicweb.org doc
Laurent Peuch <cortex@worlddomination.be> [Tue, 12 Feb 2019 15:51:21 +0100] rev 12443
[doc] translate french to english
Laurent Peuch <cortex@worlddomination.be> [Tue, 12 Feb 2019 14:59:42 +0100] rev 12442
[doc] typo, 'CW' doesn't exist in the example
Laurent Peuch <cortex@worlddomination.be> [Tue, 12 Feb 2019 14:59:13 +0100] rev 12441
[doc] always indicate the file in which the code should be put
Laurent Peuch <cortex@worlddomination.be> [Tue, 12 Feb 2019 14:58:50 +0100] rev 12440
[doc] respect pep8 in code examples
Laurent Peuch <cortex@worlddomination.be> [Tue, 12 Feb 2019 14:58:26 +0100] rev 12439
[doc] serie a small improvments
Laurent Peuch <cortex@worlddomination.be> [Tue, 12 Feb 2019 14:55:02 +0100] rev 12438
[doc] typo, the field is "name" not "title"
Laurent Peuch <cortex@worlddomination.be> [Tue, 12 Feb 2019 14:53:48 +0100] rev 12437
[doc] fix, command "create" is missing base cube
Laurent Peuch <cortex@worlddomination.be> [Tue, 12 Feb 2019 14:48:52 +0100] rev 12436
[doc] improve blog tutorial first steps and explain common errors
Laurent Peuch <cortex@worlddomination.be> [Tue, 12 Feb 2019 11:38:19 +0100] rev 12435
[doc] new behavior in virtualenv since 3.26
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 29 Jan 2019 14:04:28 +0100] rev 12434
[skeleton] use python3 flake8
In tox "flake8" environment, use python 3 virtualenv, so we can check for
python3 incompatible syntax.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 29 Jan 2019 14:02:19 +0100] rev 12433
[skeleton] drop whitelist_externals for flake8
whitelist_externals makes sense when used with sitepackages=true.
In this case it will always rely on $VIRTUAL_ENV/bin/flake8 so, the
whitelist_externals has no effect.
Philippe Pepiot <philippe.pepiot@logilab.fr> [Mon, 29 Oct 2018 10:04:31 +0100] rev 12432
Fix flake8 issues since release 3.6.0
Flake8 had a new release which raise new issues, namely:
W504: line break after binary operator
F841: local variable 'ex' is assigned to but never used
W605: invalid escape sequence
F821: undefined name 'buffer' (noqa seems the only way to avoid this false positive)
Also pin flake8>=3.6 in our tests and make explicit that we use python3 to run
flake8 tests.
Laurent Wouters <lwouters@cenotelie.fr> [Tue, 09 Oct 2018 16:24:12 +0200] rev 12431
Fix typo in RDFS URI
Laurent Wouters <lwouters@cenotelie.fr> [Tue, 24 Apr 2018 10:19:42 +0200] rev 12430
[server] Fixed issue with the adapters cache of a cloned EditedEntity
The adapters' cache of the entity within an EditedEntity used to be copied along
the entity itself during a cloning operation of the EditedEntity. This raises
an issue when the adapters' cache is not empty and contains cached values
linking to transaction-specific data (or the transaction itself). This prevents
the clone EditedEntity being used in a transaction outside the one that created
it.
This change resets the adapters' cache of the new copy so that no cached value
remain. The new copy can then be used in a new transaction afterwards.
Samuel Trégouët <samuel.tregouet@logilab.fr> [Thu, 16 Aug 2018 12:31:44 +0200] rev 12429
[py37] `async` is now a reserved keyword