3.30.1 (2021-07-23)
===================
👷 Bug fixes
------------

- pin rdflib < 6.0.0 to avoid compatibility issues

🤖 Continuous integration
-------------------------

- use image from heptapod registry since r.intra was shut down

3.30.0 (2021-03-16)
===================

🎉 New features
---------------

-  config: read required variables from environment (`#85 <https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/85>`_)
-  db-create:  add drop option to control database deletion (`#202 <https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/202>`_)
   *BREAKING CHANGE*: cubicweb-ctl db-create no more drops the db in
-  massive store: add an option to allow stores not to drop constraints (`#219 <https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/219>`_)
-  pyramid-ctl: add “nb-threads” parameter to cubicweb-ctl pyramid (`#119 <https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/119>`_)
-  urlpublish: add empty_rset_raises_404 flag on rql rewrite urls (`#199 <https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/199>`_)
-  add script_attribute to add_js function (`#210 <https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/210>`_)
-  cubicweb/cwconfig: authenticated SMTP outgoing email
-  database/exception: include the query information in database error
   for better debuging
-  upgrade Logilab’s dependencies to last versions
-  web: only set “Vary: Accept-Language” when we translate something (`#224 <https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/224>`_)

👷 Bug fixes
------------

-  rql2sql: properly handle date and datetime operations with SQLite
   (`#109 <https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/109>`_)
-  rql: make the rql completion working again
-  rql: refactor GROUP_CONCAT so that it handles NULL values
-  catch authentication exception
-  ci: manually remove the .tox/doc directory (`#206 <https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/206>`_)
-  ci: use \**/\*.py to match all python files
-  ci:  recreate doc environment from scratch (`#206 <https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/206>`_)
-  cwgettext: missing local module
-  db-create: don’t force to use –drop if there is no existing db.
-  deprecated: logilab.common.deprecated has been renamed to callable_deprecated
-  deps: we are not yet compatible with pyramid 2.0
-  migractions: don’t use notification hooks during postcreate
-  py3: we still have some unicode() arround
-  repo_cnx: Catch OperationalError during repo_cnx (`#215 <https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/215>`_)
-  skeleton: add gitlab-ci in skeleton manifest
-  skeleton: make the skeleton black compliant
-  skip a wdoc test when doctuils is not available
-  typo: drop_db instead of drop_pd
-  urlpublisher: raise a 404 when a URL rewrite with rql has no rset
   (`#199 <https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/199>`_)
-  UX when migractions failed to get its connection
-  migractions: don’t commit in the middle of drop_cube
-  views: fix possible UnboundLocalError in ErrorView
-  server: Set language of connection in all cases
   (`#87 <https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/87>`_)

Documentation
-------------

-  deploy: add a Docker section in deployment
-  deploy: Update kubernetes deploy
-  deploy: Update uwsgi deployment
-  deploy:  add section ref for kubernetes section
-  include api documentation
-  mention weekly meeting in matrix
-  Add link to migration and remove FIXME
-  add more links in the index and capitalize entries (`#185 <https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/185>`_)
-  all-in-one.conf: add link in index.rst
-  dataimport: remove SQLGenObjectStore description and add MassiveObjectStore.
-  index: remove “skeleton”, since it’s already explain in “layout”
-  licence: automatically set licence info in setup.py template
   (`#94 <https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/94>`_)
-  move (and fix) apache documentation to the deply section
-  Remove SQLSERVER
-  rql: replace COMMA_JOIN by GROUP_CONCAT (`#259 <https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/259>`_)
-  tutorials: correct a dead link.
-  tutorials: add a link to museum demo source code, and correct a typo.
-  tutorials: add introduction and structure of the museum tutorial.
-  tutorials: redaction of “data-management/import” part of the museum
   tuto.
-  tutorials: redaction of “getting started” part.
-  tutorials: reword

🤖 Continuous integration
-------------------------

-  uses gitlab-ci ‘rules:’
-  integrate yamllint
-  simplify rule:changes
-  Use workflow to avoid duplicated pipelines (see
   https://docs.gitlab.com/ee/ci/yaml/#switch-between-branch-pipelines-and-merge-request-pipelines)
-  do not run sonaqube and deploy the doc when triggered by other project
-  fix: also monitore requirements/setup.py changes for triggering the pipelines
   updated

🤷 Various changes
------------------

-  remove statsd (closes `#39 <https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/issues/39>`_)
   *BREAKING CHANGE*
-  remove web.cors in favor of wsgicors with pyramid
-  server/migractions: simplify the Migration Handler entry point
-  server: replace utils.QueryCache with cachetools.LFUCache
-  Silent yams warning (first rdef selection from an ambiguous rtype)
-  Very minor improvements of cubicweb/server/repository.py
-  views: Make JsonMixIn.wdata method usable with non-web connections
