Posted
almost 10 years
ago
by
Nicolas Chauvat
The Logilab team holds a roadmap meeting every two months to plan its CubicWeb development effort. The previous roadmap meeting was in May 2014.
Here is the report about the July 3rd, 2014 meeting. Christophe de Vienne (Unlish) and Dimitri
... [More]
Papadopoulos (CEA) joined us to express their concerns and discuss the future of CubicWeb.
Versions
Version 3.17
This version is stable but old and maintainance will continue only
as long as some customers will be willing to pay for it (current is
3.17.15 with 3.17.16 in development).
Version 3.18
This version is stable and maintained (current is 3.18.5 with 3.18.6 in development).
Version 3.19
This version was published at the end of April and has now been tested on our internal servers. It includes support for Cross
Origin Resource Sharing (CORS) and a heavy
refactoring that modifies sessions and sources to lay the path for CubicWeb 4.
For details read the release notes or the list of tickets for
CubicWeb 3.19.0. Current is 3.19.2
Version 3.20
This version is under development. It will try to reduce as much as possible the
stock of patches in the state "reviewed", "awaiting review" and "in
progress". If you have had something in the works that has not been accepted
yet, please ready it for 3.20 and get it merged.
It should still include the work done for CWEP-002 (computed attributes and
relations.
For details read list of tickets for CubicWeb 3.20.0.
Version 3.21 (or maybe 4.0?)
Removal of the dbapi, merging of Connection and ClientConnection, CWEP-003 (adding a FROM clause to RQL).
Cubes
Cubes published over the past two months
apycot (3.0.0 and 3.0.1),
cubicweb-bootstrap (0.6.4)
cubicweb-brainomics (0.10.0, 0.11.0 and 0.11.1)
cubicweb-clinipath (0.1.0 and 0.2.0)
cubicweb-container (2.5.0)
cubicweb-fastimport (0.1.0)
cubicweb-forgotpwd (0.5.0)
cubicweb-genomics (0.9.0 and 0.10.0)
cubicweb-jqplot (0.4.1)
cubicweb-leaflet (0.2.0)
cubicweb-localperms (0.3.0)
cubicweb-mandrill (0.2.1 and 0.3.0)
cubicweb-medicalexp (0.11.0, 0.12.0, 0.12.1)
cubicweb-mercurial-server (0.5.0)
cubicweb-neuroimaging (0.7.0)
cubicweb-oauth (0.2.0, 0.3.0)
cubicweb-questionnaire (0.7.0)
cubicweb-registration (0.5.0)
cubicweb-searchui (0.1.0)
cubicweb-seo (0.2.1)
cubicweb-signedrequest (0.1.2)
cubicweb-squareui (0.3.4, 0.3.5, 0.3.6)
cubicweb-tracker (1.15.3, 1.16.0)
cubicweb-vcreview (1.3.0)
cubicweb-vcrs (0.2.0)
cubicweb-vtimeline (0.5.0)
cubicweb-worker (3.0.1)
narval (4.0.0)
New cubes
cubicweb-frbr: Cube providing a schema based on FRBR entities
cubicweb-clinipath
cubicweb-fastimport
CWEPs
Here is the status of open CubicWeb Evolution Proposals:
CWEP-0002
only missing a bit of migration support, to be finished soon for inclusion in 3.20.
CWEP-0003 has been reviewed and is waiting for a bit of reshaping that should occurs soon. It's targeted for 3.21.
New CWEPs are expected to be written for clarifying the API of the _cw object,
supporting persistent sessions and improving the performance of massive imports.
Work in progress
Design
The new logo is now published in the 3.19 line. David showed us his experimentation that modernize a forge's ui with a bit of CSS. There is still a bit of pressure on the bootstrap side though, as it still rely on heavy monkey-patching in the cubicweb-bootstrap cube.
Data import
Also, Dimitry expressed is concerns with the lack of proper data import API. We should soon have some feedback from Aurelien's cubicweb-fastimport experimentation, which may be an answer to Dimitry's need. In the end, we somewhat agreed that there were different needs (eg massive-no-consistency import vs not-so-big-but-still-safe), that cubicweb.dataimport was an attempt to answer them all and then cubicweb-dataio and cubicweb-fastimport were more specific responses. In the end we may reasonably hope that an API will emerge.
Removals
On his way to persistent sessions, Aurélien made a huge progress toward silence of warnings in the 3.19 tests. dbapi has been removed, ClientConnection / Connection merged. We decided to take some time to think about the recurring task management as it is related to other tricky topics (application / instance configuration) and it's not directly related to persistent session.
Rebasing on Pyramid
Last but not least, Christophe demonstrated that CubicWeb could basically live with Pyramid. This experimentation will be pursued as it sounds very promising to get the good parts from the two framework.
Agenda
Logilab's next roadmap meeting will be held at the beginning of september 2014 and Christophe and Dimitri were invited.
[Less]
|
Posted
almost 10 years
ago
by
Nicolas Chauvat
The Logilab team holds a roadmap meeting every two months to plan its CubicWeb
development effort. Here is the report about the May 15th, 2014 meeting. The
previous report posted to the blog was the march 2014 roadmap.
Versions
Version 3.17
... [More]
This version is stable but old and maintainance will continue only
as long as some customers will be willing to pay for it (current is
3.17.15).
Version 3.18
This version is stable and maintained (current is 3.18.4).
Version 3.19
This version was published at the end of April. It includes support for Cross
Origin Resource Sharing (CORS) and a heavy
refactoring that modifies sessions and sources to lay the path for CubicWeb 4.
For details read the release notes or the list of tickets for
CubicWeb 3.19.0.
Version 3.20
This version is under development. It will try to reduce as much as possible the
stock of patches in the state "reviewed", "awaiting review" and "in
progress". If you have had something in the works that has not been accepted
yet, please ready it for 3.20 and get it merged.
It should also include the work done for CWEP-002 (computed attributes and
relations) and the merging of Connection and ClientConnection if it happens to
be simple enough to get done quickly (in case the removal of dbapi would really
help, this merging will wait for 3.21).
For details read list of tickets for CubicWeb 3.20.0.
Version 3.21 (or maybe 4.0?)
Removal of the dbapi and merging of CWEP-003 (adding a FROM clause to RQL).
Cubes
Here is a list of cubes that had versions published over the past two months:
accidents,
awstats,
book,
bootstrap,
brainomics,
cmt,
collaboration,
condor,
container,
dataio,
expense,
faq,
file,
forge,
forum,
genomics,
geocoding,
inlineedit,
inventory,
keyword,
link,
mailinglist,
mediaplayer,
medicalexp,
nazcaui,
ner,
neuroimaging,
newsaggregator,
processing,
questionnaire,
rqlcontroller,
semnews,
signedrequest,
squareui,
task,
testcard,
timesheet,
tracker,
treeview,
vcsfile,
workorder.
Here are a the new cubes we are pleased to announce:
rqlcontroller receives via a POST a list of RQL queries and executes them. This is a way to build web services.
wsme is helping build
a web service API on top of a CubicWeb database.
signedrequest is a simple token based authentication system. This is a way for scripts or callback urls to access an instance without login/pwd information.
relationwidget is
a widget usable in forms to edit relationships between objects. It depends on
CubicWeb 3.19.
searchui is an experiment
on adding blocks to the list of facets that allow building complex RQL queries
step by step by clicking with the mouse instead of directly writing the RQL with
the keyboard.
ckan is using the REST
API of a CKAN data portal to mirror its content.
CWEPs
Here is the status of open CubicWeb Evolution Proposals:
CWEP-0002
is now in good shape and the goal is to have it merged into 3.20. It lacks some
documentation and a migration script.
CWEP-0003 has made good
progress during the latest sprint, but will need a thorough review before being
merged. It will probably not be ready for 3.20 and have to wait for 3.21.
New CWEPs are expected to be written for clarifying the API of the _cw object,
supporting persistent sessions and improving the performance of massive imports.
Visual identity
CubicWeb has a new logo that will appear before the end of may on its revamped homepage at http://www.cubicweb.org
Last but not least
As already said on the mailing list, other developers and contributors are more
than welcome to share their own goals in order to define a roadmap that best
fits everyone's needs.
Logilab's next roadmap meeting will be held at the beginning of july 2014.
[Less]
|
Posted
almost 10 years
ago
by
Nicolas Chauvat
The Logilab team holds a roadmap meeting every two months to plan its CubicWeb
development effort. Here is the report about the May 15th, 2014 meeting. The
previous report posted to the blog was the march 2014 roadmap.
Versions
Version 3.17
... [More]
This version is stable but old and maintainance will continue only
as long as some customers will be willing to pay for it (current is
3.17.15).
Version 3.18
This version is stable and maintained (current is 3.18.4).
Version 3.19
This version was published at the end of April. It includes support for Cross
Origin Resource Sharing (CORS) and a heavy
refactoring that modifies sessions and sources to lay the path for CubicWeb 4.
For details read the release notes or the list of tickets for
CubicWeb 3.19.0.
Version 3.20
This version is under development. It will try to reduce as much as possible the
stock of patches in the state "reviewed", "awaiting review" and "in
progress". If you have had something in the works that has not been accepted
yet, please ready it for 3.20 and get it merged.
It should also include the work done for CWEP-002 (computed attributes and
relations) and the merging of Connection and ClientConnection if it happens to
be simple enough to get done quickly (in case the removal of dbapi would really
help, this merging will wait for 3.21).
For details read list of tickets for CubicWeb 3.20.0.
Version 3.21 (or maybe 4.0?)
Removal of the dbapi and merging of CWEP-003 (adding a FROM clause to RQL).
Cubes
Here is a list of cubes that had versions published over the past two months:
accidents,
awstats,
book,
bootstrap,
brainomics,
cmt,
collaboration,
condor,
container,
dataio,
expense,
faq,
file,
forge,
forum,
genomics,
geocoding,
inlineedit,
inventory,
keyword,
link,
mailinglist,
mediaplayer,
medicalexp,
nazcaui,
ner,
neuroimaging,
newsaggregator,
processing,
questionnaire,
rqlcontroller,
semnews,
signedrequest,
squareui,
task,
testcard,
timesheet,
tracker,
treeview,
vcsfile,
workorder.
Here are a the new cubes we are pleased to announce:
rqlcontroller receives via a POST a list of RQL queries and executes them. This is a way to build web services.
wsme is helping build
a web service API on top of a CubicWeb database.
signedrequest is a simple token based authentication system. This is a way for scripts or callback urls to access an instance without login/pwd information.
relationwidget is
a widget usable in forms to edit relationships between objects. It depends on
CubicWeb 3.19.
searchui is an experiment
on adding blocks to the list of facets that allow building complex RQL queries
step by step by clicking with the mouse instead of directly writing the RQL with
the keyboard.
ckan is using the REST
API of a CKAN data portal to mirror its content.
CWEPs
Here is the status of open CubicWeb Evolution Proposals:
CWEP-0002
is now in good shape and the goal is to have it merged into 3.20. It lacks some
documentation and a migration script.
CWEP-0003 has made good
progress during the latest sprint, but will need a thorough review before being
merged. It will probably not be ready for 3.20 and have to wait for 3.21.
New CWEPs are expected to be written for clarifying the API of the _cw object,
supporting persistent sessions and improving the performance of massive imports.
Visual identity
CubicWeb has a new logo that will appear before the end of may on its revamped homepage at http://www.cubicweb.org
Last but not least
As already said on the mailing list, other developers and contributors are more
than welcome to share their own goals in order to define a roadmap that best
fits everyone's needs.
Logilab's next roadmap meeting will be held at the beginning of july 2014.
[Less]
|
Posted
almost 10 years
ago
by
Nicolas Chauvat
The Logilab team holds a roadmap meeting every two months to plan its CubicWeb
development effort. Here is the report about the May 15th, 2014 meeting. The
previous report posted to the blog was the march 2014 roadmap.
Versions
Version 3.17
This
... [More]
version is stable but old and maintainance will continue only
as long as some customers will be willing to pay for it (current is
3.17.15).
Version 3.18
This version is stable and maintained (current is 3.18.4).
Version 3.19
This version was published at the end of April. It includes support for Cross
Origin Resource Sharing (CORS) and a heavy
refactoring that modifies sessions and sources to lay the path for CubicWeb 4.
For details read the release notes or the list of tickets for
CubicWeb 3.19.0.
Version 3.20
This version is under development. It will try to reduce as much as possible the
stock of patches in the state "reviewed", "awaiting review" and "in
progress". If you have had something in the works that has not been accepted
yet, please ready it for 3.20 and get it merged.
It should also include the work done for CWEP-002 (computed attributes and
relations) and the merging of Connection and ClientConnection if it happens to
be simple enough to get done quickly (in case the removal of dbapi would really
help, this merging will wait for 3.21).
For details read list of tickets for CubicWeb 3.20.0.
Version 3.21 (or maybe 4.0?)
Removal of the dbapi and merging of CWEP-003 (adding a FROM clause to RQL).
Cubes
Here is a list of cubes that had versions published over the past two months:
accidents,
awstats,
book,
bootstrap,
brainomics,
cmt,
collaboration,
condor,
container,
dataio,
expense,
faq,
file,
forge,
forum,
genomics,
geocoding,
inlineedit,
inventory,
keyword,
link,
mailinglist,
mediaplayer,
medicalexp,
nazcaui,
ner,
neuroimaging,
newsaggregator,
processing,
questionnaire,
rqlcontroller,
semnews,
signedrequest,
squareui,
task,
testcard,
timesheet,
tracker,
treeview,
vcsfile,
workorder.
Here are a the new cubes we are pleased to announce:
rqlcontroller receives via a POST a list of RQL queries and executes them. This is a way to build web services.
wsme is helping build
a web service API on top of a CubicWeb database.
signedrequest is a simple token based authentication system. This is a way for scripts or callback urls to access an instance without login/pwd information.
relationwidget is
a widget usable in forms to edit relationships between objects. It depends on
CubicWeb 3.19.
searchui is an experiment
on adding blocks to the list of facets that allow building complex RQL queries
step by step by clicking with the mouse instead of directly writing the RQL with
the keyboard.
ckan is using the REST
API of a CKAN data portal to mirror its content.
CWEPs
Here is the status of open CubicWeb Evolution Proposals:
CWEP-0002
is now in good shape and the goal is to have it merged into 3.20. It lacks some
documentation and a migration script.
CWEP-0003 has made good
progress during the latest sprint, but will need a thorough review before being
merged. It will probably not be ready for 3.20 and have to wait for 3.21.
New CWEPs are expected to be written for clarifying the API of the _cw object,
supporting persistent sessions and improving the performance of massive imports.
Visual identity
CubicWeb has a new logo that will appear before the end of may on its revamped homepage at http://www.cubicweb.org
Last but not least
As already said on the mailing list, other developers and contributors are more
than welcome to share their own goals in order to define a roadmap that best
fits everyone's needs.
Logilab's next roadmap meeting will be held at the beginning of july 2014.
[Less]
|
Posted
almost 10 years
ago
by
Aurelien Campeas
New functionalities
implement Cross Origin Resource Sharing (CORS)
(see #2491768)
system_source.create_eid can return a range of IDs, to reduce overhead of batch
entity creation
Behaviour Changes
The anonymous property of Session and
... [More]
Connection is now computed from the
related user login. If it matches the anonymous-user in the config the
connection is anonymous. Beware that the anonymous-user config is web
specific. Therefore, no session may be anonymous in a repository only setup.
New Repository Access API
Connection replaces Session
A new explicit Connection object replaces Session as the main repository entry
point. A Connection holds all the necessary methods to be used server-side
(execute, commit, rollback, call_service, entity_from_eid,
etc...). One obtains a new Connection object using session.new_cnx().
Connection objects need to have an explicit begin and end. Use them as a context
manager to never miss an end:
with session.new_cnx() as cnx:
cnx.execute('INSERT Elephant E, E name "Babar"')
cnx.commit()
cnx.execute('INSERT Elephant E, E name "Celeste"')
cnx.commit()
# Once you get out of the "with" clause, the connection is closed.
Using the same Connection object in multiple threads will give you access to the
same Transaction. However, Connection objects are not thread safe (hence at your
own risks).
repository.internal_session is deprecated in favor of
repository.internal_cnx. Note that internal connections are now safe by default,
i.e. the integrity hooks are enabled.
Backward compatibility is preserved on Session.
dbapi vs repoapi
A new API has been introduced to replace the dbapi. It is called repoapi.
There are three relevant functions for now:
repoapi.get_repository returns a Repository object either from an
URI when used as repoapi.get_repository(uri) or from a config
when used as repoapi.get_repository(config=config).
repoapi.connect(repo, login, **credentials) returns a ClientConnection
associated with the user identified by the credentials. The
ClientConnection is associated with its own Session that is closed
when the ClientConnection is closed. A ClientConnection is a
Connection-like object to be used client side.
repoapi.anonymous_cnx(repo) returns a ClientConnection associated
with the anonymous user if described in the config.
repoapi.ClientConnection replaces dbapi.Connection and company
On the client/web side, the Request is now using a repoapi.ClientConnection
instead of a dbapi.Connection. The ClientConnection has multiple backward
compatible methods to make it look like a dbapi.Cursor and dbapi.Connection.
Sessions used on the Web side are now the same as the ones used Server side.
Some backward compatibility methods have been installed on the server side Session
to ease the transition.
The authentication stack has been altered to use the repoapi instead of
the dbapi. Cubes adding new elements to this stack are likely to break.
New API in tests
All current methods and attributes used to access the repo on CubicWebTC are
deprecated. You may now use a RepoAccess object. A RepoAccess object is
linked to a new Session for a specified user. It is able to create
Connection, ClientConnection and web side requests linked to this
session:
access = self.new_access('babar') # create a new RepoAccess for user babar
with access.repo_cnx() as cnx:
# some work with server side cnx
cnx.execute(...)
cnx.commit()
cnx.execute(...)
cnx.commit()
with access.client_cnx() as cnx:
# some work with client side cnx
cnx.execute(...)
cnx.commit()
with access.web_request(elephant='babar') as req:
# some work with web request
elephant_name = req.form['elephant']
req.execute(...)
req.cnx.commit()
By default testcase.admin_access contains a RepoAccess object for the
default admin session.
API changes
RepositorySessionManager.postlogin is now called with two arguments,
request and session. And this now happens before the session is linked to the
request.
SessionManager and AuthenticationManager now take a repo object at
initialization time instead of a vreg.
The async argument of _cw.call_service has been dropped. All calls are
now synchronous. The zmq notification bus looks like a good replacement for
most async use cases.
repo.stats() is now deprecated. The same information is available through
a service (_cw.call_service('repo_stats')).
repo.gc_stats() is now deprecated. The same information is available through
a service (_cw.call_service('repo_gc_stats')).
repo.register_user() is now deprecated. The functionality is now
available through a service (_cw.call_service('register_user')).
request.set_session no longer takes an optional user argument.
CubicwebTC does not have repo and cnx as class attributes anymore. They are
standard instance attributes. set_cnx and _init_repo class methods
become instance methods.
set_cnxset and free_cnxset are deprecated. The database connection
acquisition and release cycle is now more transparent.
The implementation of cascading deletion when deleting composite
entities has changed. There comes a semantic change: merely deleting
a composite relation does not entail any more the deletion of the
component side of the relation.
_cw.user_callback and _cw.user_rql_callback are deprecated. Users
are encouraged to write an actual controller (e.g. using ajaxfunc)
instead of storing a closure in the session data.
A new entity.cw_linkable_rql method provides the rql to fetch all entities
that are already or may be related to the current entity using the given
relation.
Deprecated Code Drops
The session.hijack_user mechanism has been dropped.
EtypeRestrictionComponent has been removed, its functionality has been
replaced by facets a while ago.
the old multi-source support has been removed. Only copy-based sources
remain, such as datafeed or ldapfeed.
[Less]
|
Posted
almost 10 years
ago
by
Aurelien Campeas
New functionalities
implement Cross Origin Resource Sharing (CORS)
(see #2491768)
system_source.create_eid can return a range of IDs, to reduce overhead of batch
entity creation
Behaviour Changes
The anonymous property of Session
... [More]
and Connection is now computed from the
related user login. If it matches the anonymous-user in the config the
connection is anonymous. Beware that the anonymous-user config is web
specific. Therefore, no session may be anonymous in a repository only setup.
New Repository Access API
Connection replaces Session
A new explicit Connection object replaces Session as the main repository entry
point. A Connection holds all the necessary methods to be used server-side
(execute, commit, rollback, call_service, entity_from_eid,
etc...). One obtains a new Connection object using session.new_cnx().
Connection objects need to have an explicit begin and end. Use them as a context
manager to never miss an end:
with session.new_cnx() as cnx:
cnx.execute('INSERT Elephant E, E name "Babar"')
cnx.commit()
cnx.execute('INSERT Elephant E, E name "Celeste"')
cnx.commit()
# Once you get out of the "with" clause, the connection is closed.
Using the same Connection object in multiple threads will give you access to the
same Transaction. However, Connection objects are not thread safe (hence at your
own risks).
repository.internal_session is deprecated in favor of
repository.internal_cnx. Note that internal connections are now safe by default,
i.e. the integrity hooks are enabled.
Backward compatibility is preserved on Session.
dbapi vs repoapi
A new API has been introduced to replace the dbapi. It is called repoapi.
There are three relevant functions for now:
repoapi.get_repository returns a Repository object either from an
URI when used as repoapi.get_repository(uri) or from a config
when used as repoapi.get_repository(config=config).
repoapi.connect(repo, login, **credentials) returns a ClientConnection
associated with the user identified by the credentials. The
ClientConnection is associated with its own Session that is closed
when the ClientConnection is closed. A ClientConnection is a
Connection-like object to be used client side.
repoapi.anonymous_cnx(repo) returns a ClientConnection associated
with the anonymous user if described in the config.
repoapi.ClientConnection replaces dbapi.Connection and company
On the client/web side, the Request is now using a repoapi.ClientConnection
instead of a dbapi.Connection. The ClientConnection has multiple backward
compatible methods to make it look like a dbapi.Cursor and dbapi.Connection.
Sessions used on the Web side are now the same as the ones used Server side.
Some backward compatibility methods have been installed on the server side Session
to ease the transition.
The authentication stack has been altered to use the repoapi instead of
the dbapi. Cubes adding new elements to this stack are likely to break.
New API in tests
All current methods and attributes used to access the repo on CubicWebTC are
deprecated. You may now use a RepoAccess object. A RepoAccess object is
linked to a new Session for a specified user. It is able to create
Connection, ClientConnection and web side requests linked to this
session:
access = self.new_access('babar') # create a new RepoAccess for user babar
with access.repo_cnx() as cnx:
# some work with server side cnx
cnx.execute(...)
cnx.commit()
cnx.execute(...)
cnx.commit()
with access.client_cnx() as cnx:
# some work with client side cnx
cnx.execute(...)
cnx.commit()
with access.web_request(elephant='babar') as req:
# some work with web request
elephant_name = req.form['elephant']
req.execute(...)
req.cnx.commit()
By default testcase.admin_access contains a RepoAccess object for the
default admin session.
API changes
RepositorySessionManager.postlogin is now called with two arguments,
request and session. And this now happens before the session is linked to the
request.
SessionManager and AuthenticationManager now take a repo object at
initialization time instead of a vreg.
The async argument of _cw.call_service has been dropped. All calls are
now synchronous. The zmq notification bus looks like a good replacement for
most async use cases.
repo.stats() is now deprecated. The same information is available through
a service (_cw.call_service('repo_stats')).
repo.gc_stats() is now deprecated. The same information is available through
a service (_cw.call_service('repo_gc_stats')).
repo.register_user() is now deprecated. The functionality is now
available through a service (_cw.call_service('register_user')).
request.set_session no longer takes an optional user argument.
CubicwebTC does not have repo and cnx as class attributes anymore. They are
standard instance attributes. set_cnx and _init_repo class methods
become instance methods.
set_cnxset and free_cnxset are deprecated. The database connection
acquisition and release cycle is now more transparent.
The implementation of cascading deletion when deleting composite
entities has changed. There comes a semantic change: merely deleting
a composite relation does not entail any more the deletion of the
component side of the relation.
_cw.user_callback and _cw.user_rql_callback are deprecated. Users
are encouraged to write an actual controller (e.g. using ajaxfunc)
instead of storing a closure in the session data.
A new entity.cw_linkable_rql method provides the rql to fetch all entities
that are already or may be related to the current entity using the given
relation.
Deprecated Code Drops
The session.hijack_user mechanism has been dropped.
EtypeRestrictionComponent has been removed, its functionality has been
replaced by facets a while ago.
the old multi-source support has been removed. Only copy-based sources
remain, such as datafeed or ldapfeed.
[Less]
|
Posted
almost 10 years
ago
by
Aurelien Campeas
New functionalities
implement Cross Origin Resource Sharing (CORS)
(see #2491768)
system_source.create_eid can return a range of IDs, to reduce overhead of batch
entity creation
Behaviour Changes
The anonymous property of Session and Connection
... [More]
is now computed from the
related user login. If it matches the anonymous-user in the config the
connection is anonymous. Beware that the anonymous-user config is web
specific. Therefore, no session may be anonymous in a repository only setup.
New Repository Access API
Connection replaces Session
A new explicit Connection object replaces Session as the main repository entry
point. A Connection holds all the necessary methods to be used server-side
(execute, commit, rollback, call_service, entity_from_eid,
etc...). One obtains a new Connection object using session.new_cnx().
Connection objects need to have an explicit begin and end. Use them as a context
manager to never miss an end:
with session.new_cnx() as cnx:
cnx.execute('INSERT Elephant E, E name "Babar"')
cnx.commit()
cnx.execute('INSERT Elephant E, E name "Celeste"')
cnx.commit()
# Once you get out of the "with" clause, the connection is closed.
Using the same Connection object in multiple threads will give you access to the
same Transaction. However, Connection objects are not thread safe (hence at your
own risks).
repository.internal_session is deprecated in favor of
repository.internal_cnx. Note that internal connections are now safe by default,
i.e. the integrity hooks are enabled.
Backward compatibility is preserved on Session.
dbapi vs repoapi
A new API has been introduced to replace the dbapi. It is called repoapi.
There are three relevant functions for now:
repoapi.get_repository returns a Repository object either from an
URI when used as repoapi.get_repository(uri) or from a config
when used as repoapi.get_repository(config=config).
repoapi.connect(repo, login, **credentials) returns a ClientConnection
associated with the user identified by the credentials. The
ClientConnection is associated with its own Session that is closed
when the ClientConnection is closed. A ClientConnection is a
Connection-like object to be used client side.
repoapi.anonymous_cnx(repo) returns a ClientConnection associated
with the anonymous user if described in the config.
repoapi.ClientConnection replaces dbapi.Connection and company
On the client/web side, the Request is now using a repoapi.ClientConnection
instead of a dbapi.Connection. The ClientConnection has multiple backward
compatible methods to make it look like a dbapi.Cursor and dbapi.Connection.
Sessions used on the Web side are now the same as the ones used Server side.
Some backward compatibility methods have been installed on the server side Session
to ease the transition.
The authentication stack has been altered to use the repoapi instead of
the dbapi. Cubes adding new elements to this stack are likely to break.
New API in tests
All current methods and attributes used to access the repo on CubicWebTC are
deprecated. You may now use a RepoAccess object. A RepoAccess object is
linked to a new Session for a specified user. It is able to create
Connection, ClientConnection and web side requests linked to this
session:
access = self.new_access('babar') # create a new RepoAccess for user babar
with access.repo_cnx() as cnx:
# some work with server side cnx
cnx.execute(...)
cnx.commit()
cnx.execute(...)
cnx.commit()
with access.client_cnx() as cnx:
# some work with client side cnx
cnx.execute(...)
cnx.commit()
with access.web_request(elephant='babar') as req:
# some work with web request
elephant_name = req.form['elephant']
req.execute(...)
req.cnx.commit()
By default testcase.admin_access contains a RepoAccess object for the
default admin session.
API changes
RepositorySessionManager.postlogin is now called with two arguments,
request and session. And this now happens before the session is linked to the
request.
SessionManager and AuthenticationManager now take a repo object at
initialization time instead of a vreg.
The async argument of _cw.call_service has been dropped. All calls are
now synchronous. The zmq notification bus looks like a good replacement for
most async use cases.
repo.stats() is now deprecated. The same information is available through
a service (_cw.call_service('repo_stats')).
repo.gc_stats() is now deprecated. The same information is available through
a service (_cw.call_service('repo_gc_stats')).
repo.register_user() is now deprecated. The functionality is now
available through a service (_cw.call_service('register_user')).
request.set_session no longer takes an optional user argument.
CubicwebTC does not have repo and cnx as class attributes anymore. They are
standard instance attributes. set_cnx and _init_repo class methods
become instance methods.
set_cnxset and free_cnxset are deprecated. The database connection
acquisition and release cycle is now more transparent.
The implementation of cascading deletion when deleting composite
entities has changed. There comes a semantic change: merely deleting
a composite relation does not entail any more the deletion of the
component side of the relation.
_cw.user_callback and _cw.user_rql_callback are deprecated. Users
are encouraged to write an actual controller (e.g. using ajaxfunc)
instead of storing a closure in the session data.
A new entity.cw_linkable_rql method provides the rql to fetch all entities
that are already or may be related to the current entity using the given
relation.
Deprecated Code Drops
The session.hijack_user mechanism has been dropped.
EtypeRestrictionComponent has been removed, its functionality has been
replaced by facets a while ago.
the old multi-source support has been removed. Only copy-based sources
remain, such as datafeed or ldapfeed.
[Less]
|
Posted
about 10 years
ago
by
Nicolas Chauvat
The Logilab team holds a roadmap meeting every two months to plan its CubicWeb
development effort. Here is the report about the Mar 7th, 2014 meeting. The
previous report posted to the blog was the january 2014 roadmap.
Version 3.17
This
... [More]
version is stable but old and maintainance will stop in a few weeks
(current is 3.17.13 and
3.17.14 is upcoming).
Version 3.18
This version is stable and maintained (current is 3.18.3 and 3.18.4 is upcoming).
Version 3.19
This version is about to be published. It includes a heavy refactoring that
modifies sessions and sources to lay the path for CubicWeb 4.
For details read list of tickets for CubicWeb 3.19.0.
Version 3.20
This version will try to reduce as much as possible the stock of patches in the
state "reviewed", "awaiting review" and "in progress". If you have had something
in the works that has not been accepted yet, please ready it for 3.20 and get it
merged.
It should also include the work done for CWEP-002 (computed attributes and
relations) and CWEP-003 (adding a FROM clause to RQL).
For details read list of tickets for CubicWeb 3.20.0.
Cubes
Here is a list of cubes that had versions published over the past two months:
addressbook,
awstats,
blog,
bootstrap,
brainomics,
comment,
container,
dataio,
genomics,
invoice,
mediaplayer,
medicalexp,
neuroimaginge,
person,
preview,
questionnaire,
securityprofile,
simplefacet,
squareui,
tag,
tracker,
varnish,
vcwiki,
vtimeline.
Here are a the new cubes we are pleased to announce:
collaboration is a
building block that reuses container and helps to define collaborative workflows
where entities are cloned, modified and shared.
Our priorities for the next two months are collaboration and container, then
narval/apycot, then mercurial-server, then rqlcontroller and signedrequest, then
imagesearch.
Mid-term goals
The work done for CWEP-0002 (computed
attributes and relations) is expected to land in CubicWeb 3.20.
The work done for CWEP-0003 (explicit
data source federation using FROM in RQL) is expected to land in CubicWeb 3.20.
Tools to diagnose performance issues would be very useful. Maybe in 3.21 ?
Caching session data would help and some work was done on this topic during the
sprint in february. Maybe in 3.22 ?
WSGI has made progress lately, but still needs work. Maybe in 3.23 ?
RESTfulness is a goal. Maybe in 3.24 ?
Maybe 3.25 will be in fact 4.0 ?
Events
A spring sprint will take place in Logilab's offices in Paris from April 28th to
30th. We invite all the interested parties to join us there!
Last but not least
As already said on the mailing list, other developers and contributors are more
than welcome to share their own goals in order to define a roadmap that best
fits everyone's needs.
Logilab's next roadmap meeting will be held at the beginning of may 2014.
[Less]
|
Posted
about 10 years
ago
by
Nicolas Chauvat
The Logilab team holds a roadmap meeting every two months to plan its CubicWeb
development effort. Here is the report about the Mar 7th, 2014 meeting. The
previous report posted to the blog was the january 2014 roadmap.
Version 3.17
This
... [More]
version is stable but old and maintainance will stop in a few weeks
(current is 3.17.13 and
3.17.14 is upcoming).
Version 3.18
This version is stable and maintained (current is 3.18.3 and 3.18.4 is upcoming).
Version 3.19
This version is about to be published. It includes a heavy refactoring that
modifies sessions and sources to lay the path for CubicWeb 4.
For details read list of tickets for CubicWeb 3.19.0.
Version 3.20
This version will try to reduce as much as possible the stock of patches in the
state "reviewed", "awaiting review" and "in progress". If you have had something
in the works that has not been accepted yet, please ready it for 3.20 and get it
merged.
It should also include the work done for CWEP-002 (computed attributes and
relations) and CWEP-003 (adding a FROM clause to RQL).
For details read list of tickets for CubicWeb 3.20.0.
Cubes
Here is a list of cubes that had versions published over the past two months:
addressbook,
awstats,
blog,
bootstrap,
brainomics,
comment,
container,
dataio,
genomics,
invoice,
mediaplayer,
medicalexp,
neuroimaginge,
person,
preview,
questionnaire,
securityprofile,
simplefacet,
squareui,
tag,
tracker,
varnish,
vcwiki,
vtimeline.
Here are a the new cubes we are pleased to announce:
collaboration is a
building block that reuses container and helps to define collaborative workflows
where entities are cloned, modified and shared.
Our priorities for the next two months are collaboration and container, then
narval/apycot, then mercurial-server, then rqlcontroller and signedrequest, then
imagesearch.
Mid-term goals
The work done for CWEP-0002 (computed
attributes and relations) is expected to land in CubicWeb 3.20.
The work done for CWEP-0003 (explicit
data source federation using FROM in RQL) is expected to land in CubicWeb 3.20.
Tools to diagnose performance issues would be very useful. Maybe in 3.21 ?
Caching session data would help and some work was done on this topic during the
sprint in february. Maybe in 3.22 ?
WSGI has made progress lately, but still needs work. Maybe in 3.23 ?
RESTfulness is a goal. Maybe in 3.24 ?
Maybe 3.25 will be in fact 4.0 ?
Events
A spring sprint will take place in Logilab's offices in Paris from April 28th to
30th. We invite all the interested parties to join us there!
Last but not least
As already said on the mailing list, other developers and contributors are more
than welcome to share their own goals in order to define a roadmap that best
fits everyone's needs.
Logilab's next roadmap meeting will be held at the beginning of may 2014.
[Less]
|
Posted
about 10 years
ago
by
Nicolas Chauvat
The Logilab team holds a roadmap meeting every two months to plan its CubicWeb
development effort. Here is the report about the Mar 7th, 2014 meeting. The
previous report posted to the blog was the january 2014 roadmap.
Version 3.17
This version is
... [More]
stable but old and maintainance will stop in a few weeks
(current is 3.17.13 and
3.17.14 is upcoming).
Version 3.18
This version is stable and maintained (current is 3.18.3 and 3.18.4 is upcoming).
Version 3.19
This version is about to be published. It includes a heavy refactoring that
modifies sessions and sources to lay the path for CubicWeb 4.
For details read list of tickets for CubicWeb 3.19.0.
Version 3.20
This version will try to reduce as much as possible the stock of patches in the
state "reviewed", "awaiting review" and "in progress". If you have had something
in the works that has not been accepted yet, please ready it for 3.20 and get it
merged.
It should also include the work done for CWEP-002 (computed attributes and
relations) and CWEP-003 (adding a FROM clause to RQL).
For details read list of tickets for CubicWeb 3.20.0.
Cubes
Here is a list of cubes that had versions published over the past two months:
addressbook,
awstats,
blog,
bootstrap,
brainomics,
comment,
container,
dataio,
genomics,
invoice,
mediaplayer,
medicalexp,
neuroimaginge,
person,
preview,
questionnaire,
securityprofile,
simplefacet,
squareui,
tag,
tracker,
varnish,
vcwiki,
vtimeline.
Here are a the new cubes we are pleased to announce:
collaboration is a
building block that reuses container and helps to define collaborative workflows
where entities are cloned, modified and shared.
Our priorities for the next two months are collaboration and container, then
narval/apycot, then mercurial-server, then rqlcontroller and signedrequest, then
imagesearch.
Mid-term goals
The work done for CWEP-0002 (computed
attributes and relations) is expected to land in CubicWeb 3.20.
The work done for CWEP-0003 (explicit
data source federation using FROM in RQL) is expected to land in CubicWeb 3.20.
Tools to diagnose performance issues would be very useful. Maybe in 3.21 ?
Caching session data would help and some work was done on this topic during the
sprint in february. Maybe in 3.22 ?
WSGI has made progress lately, but still needs work. Maybe in 3.23 ?
RESTfulness is a goal. Maybe in 3.24 ?
Maybe 3.25 will be in fact 4.0 ?
Events
A spring sprint will take place in Logilab's offices in Paris from April 28th to
30th. We invite all the interested parties to join us there!
Last but not least
As already said on the mailing list, other developers and contributors are more
than welcome to share their own goals in order to define a roadmap that best
fits everyone's needs.
Logilab's next roadmap meeting will be held at the beginning of may 2014.
[Less]
|