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.