merge 3.27 into default
authorNicolas Chauvat <nicolas.chauvat@logilab.fr>
Sun, 02 Feb 2020 23:01:01 +0100
changeset 12865 8e3fda2c60ef
parent 12850 a9562c7b4456 (current diff)
parent 12864 96af8cdcdc7d (diff)
child 12868 8fa3d2b0252d
merge 3.27 into default
--- a/doc/announce.en.txt	Fri Jan 31 15:28:55 2020 +0100
+++ b/doc/announce.en.txt	Sun Feb 02 23:01:01 2020 +0100
@@ -19,7 +19,7 @@
     * a selection+view mechanism for semi-automatic XHTML/XML/JSON/text generation,
     * a library of reusable components (data model and views) that fulfill common needs,
     * the power and flexibility of the Python programming language,
-    * the reliability of SQL databases, LDAP directories, Subversion and Mercurial for storage backends.
+    * the reliability of SQL databases, LDAP directories and Mercurial for storage backends.
 
 Being built since 2000 by an R&D project still going on today, supporting
 100,000s of daily visits at some production sites, CubicWeb is a proven end to
--- a/doc/announce.fr.txt	Fri Jan 31 15:28:55 2020 +0100
+++ b/doc/announce.fr.txt	Sun Feb 02 23:01:01 2020 +0100
@@ -22,7 +22,7 @@
     * une bibliothèque de composants réutilisables (modèle de donnée et vues)
       qui satisfait les besoins les plus courants,
     * la puissance et l'adaptabilité du langage de programmation Python,
-    * la solidité des bases SQL, des annuaires LDAP, de Subversion et Mercurial
+    * la solidité des bases SQL, des annuaires LDAP et Mercurial
       pour le stockage des données.
 
 Développé depuis 2000 par un projet de R&D qui se poursuit encore aujourd'hui,
--- a/doc/book/admin/config.rst	Fri Jan 31 15:28:55 2020 +0100
+++ b/doc/book/admin/config.rst	Sun Feb 02 23:01:01 2020 +0100
@@ -41,7 +41,7 @@
 will be chosen when creating the instance. CubicWeb is known to run with
 Postgresql (recommended), SQLServer and SQLite.
 
-Other possible sources of data include CubicWeb, Subversion, LDAP and Mercurial,
+Other possible sources of data include CubicWeb, LDAP and Mercurial,
 but at least one relational database is required for CubicWeb to work. You do
 not need to install a backend that you do not intend to use for one of your
 instances. SQLite is not fit for production use, but it works well for testing
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/book/admin/deploy.rst	Sun Feb 02 23:01:01 2020 +0100
@@ -0,0 +1,68 @@
+.. -*- coding: utf-8 -*-
+
+Deploy a *CubicWeb* application
+===============================
+
+Deployment with uwsgi
+---------------------
+
+`uWSGI <https://uwsgi-docs.readthedocs.io/>`_ is often used to deploy CubicWeb
+applications.
+
+Short version is install `uwsgi`:
+
+.. sourcecode:: console
+
+  apt install uwsgi
+
+Deploy a configuration file for your application
+`/etc/uwsgi/apps-enabled/example.ini`:
+
+.. sourcecode:: ini
+
+    [uwsgi]
+    master = true
+    http = 0.0.0.0:8080
+    env = CW_INSTANCE=example
+    wsgi-file = /etc/cubicweb.d/example/wsgiapp.py
+    processes = 8
+    threads = 1
+    plugins = http,python3
+    auto-procname = true
+    lazy-apps = true
+    log-master = true
+    # disable uwsgi request logging
+    disable-logging = true
+    stats = 127.0.0.1:1717
+
+The `wsgiapp.py` file looks like this:
+
+.. sourcecode:: python
+
+    import os
+    from cubicweb.pyramid import wsgi_application_from_cwconfig
+    from cubicweb.cwconfig import CubicWebConfiguration as cwcfg
+
+    appid = os.environ['CW_INSTANCE']  # instance name
+    cwconfig = cwcfg.config_for(appid)
+
+    cwconfig.log_format = ('{0} pid:{1} (%(name)s) %(levelname)s: %(message)s'
+                           .format(appid, os.getpid()))
+
+    application = wsgi_application_from_cwconfig(cwconfig)
+    repo = application.application.registry['cubicweb.repository']
+
+
+Deployment with SaltStack
+-------------------------
+
+To deploy with SaltStack one can refer themselves to the
+`cubicweb-formula <https://hg.logilab.org/master/salt/cubicweb-formula/>`_.
+
+Deployment with Kubernetes
+--------------------------
+
+To deploy in a Kubernetes cluster, you can take inspiration from the
+instructions included in
+`the fresh cube  <https://hg.logilab.org/master/cubes/fresh/file/tip/README.rst#l20>`_
+and the `deployment yaml files <https://hg.logilab.org/master/cubes/fresh/file/tip/deploy>`_.
--- a/doc/book/admin/index.rst	Fri Jan 31 15:28:55 2020 +0100
+++ b/doc/book/admin/index.rst	Sun Feb 02 23:01:01 2020 +0100
@@ -14,7 +14,7 @@
    :numbered:
 
    setup
-   setup-windows
+   deploy
    config
    cubicweb-ctl
    create-instance
--- a/doc/book/admin/setup-windows.rst	Fri Jan 31 15:28:55 2020 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-.. -*- coding: utf-8 -*-
-
-.. _SetUpWindowsEnv:
-
-Installing a development environement on Windows
-================================================
-
-Setting up a Windows development environment is not too complicated
-but it requires a series of small steps.
-
-We propose an example of a typical |cubicweb| installation on Windows
-from sources. We assume everything goes into ``C:\\`` and for any
-package, without version specification, "the latest is
-the greatest".
-
-Mind that adjusting the installation drive should be straightforward.
-
-
-
-Install the required elements
------------------------------
-
-|cubicweb| requires some base elements that must be installed to run
-correctly. So, first of all, you must install them :
-
-* python >= 2.6 and < 3
-  (`Download Python <http://www.python.org/download/>`_).
-  You can also consider the Python(x,y) distribution
-  (`Download Python(x,y) <http://code.google.com/p/pythonxy/wiki/Downloads>`_)
-  as it makes things easier for Windows user by wrapping in a single installer
-  python 2.7 plus numerous useful third-party modules and
-  applications (including Eclipse + pydev, which is an arguably good
-  IDE for Python under Windows).
-
-* `lxml <http://codespeak.net/lxml/>`_ library
-  (version >=2.2.1) allows working with XML and HTML
-  (`Download lxml <http://pypi.python.org/pypi/lxml/2.2.1>`_)
-
-* `Postgresql <http://www.postgresql.org/>`_,
-  an object-relational database system
-  (`Download Postgresql <http://www.enterprisedb.com/products/pgdownload.do#windows>`_)
-  and its python drivers
-  (`Download psycopg <http://www.stickpeople.com/projects/python/win-psycopg/#Version2>`_)
-
-* A recent version of `gettext`
-  (`Download gettext <http://download.logilab.org/pub/gettext/gettext-0.17-win32-setup.exe>`_).
-
-* `rql <http://www.logilab.org/project/rql>`_,
-  the recent version of the Relationship Query Language parser.
-
-Install optional elements
--------------------------
-
-We recommend you to install the following elements. They are not
-mandatory but they activate very interesting features in |cubicweb|:
-
-* `python-ldap <http://pypi.python.org/pypi/python-ldap>`_
-  provides access to LDAP/Active directory directories
-  (`Download python-ldap <http://www.osuch.org/python-ldap>`_).
-
-* `graphviz <http://www.graphviz.org/>`_
-  which allow schema drawings.
-  (`Download graphviz <http://www.graphviz.org/Download_windows.php>`_).
-  It is quite recommended (albeit not mandatory).
-
-Other elements will activate more features once installed. Take a look
-at :ref:`InstallDependencies`.
-
-Useful tools
-------------
-
-Some additional tools could be useful to develop :ref:`cubes <AvailableCubes>`
-with the framework.
-
-* `mercurial <http://mercurial.selenic.com/>`_ and its standard windows GUI
-  (`TortoiseHG <http://tortoisehg.bitbucket.org/>`_) allow you to get the source
-  code of |cubicweb| from control version repositories. So you will be able to
-  get the latest development version and pre-release bugfixes in an easy way
-  (`Download mercurial <http://bitbucket.org/tortoisehg/stable/wiki/download>`_).
-
-* You can also consider the ssh client `Putty` in order to peruse
-  mercurial over ssh (`Download <http://www.putty.org/>`_).
-
-* If you are an Eclipse user, mercurial can be integrated using the
-  `MercurialEclipse` plugin
-  (`Home page <http://www.vectrace.com/mercurialeclipse/>`_).
-
-Getting the sources
--------------------
-
-There are two ways to get the sources of |cubicweb| and its
-:ref:`cubes <AvailableCubes>`:
-
-* download the latest release (:ref:`SourceInstallation`)
-* get the development version using Mercurial
-  (:ref:`MercurialInstallation`)
-
-Environment variables
----------------------
-
-You will need some convenience environment variables once all is set up. These
-variables are settable through the GUI by getting at the `System properties`
-window (by righ-clicking on `My Computer` -> `properties`).
-
-In the `advanced` tab, there is an `Environment variables` button. Click on
-it. That opens a small window allowing edition of user-related and system-wide
-variables.
-
-We will consider only user variables. First, the ``PATH`` variable. Assuming
-you are logged as user *Jane*, add the following paths, separated by
-semi-colons::
-
-  C:\Documents and Settings\Jane\My Documents\Python\cubicweb\cubicweb\bin
-  C:\Program Files\Graphviz2.24\bin
-
-The ``PYTHONPATH`` variable should also contain::
-
-  C:\Documents and Settings\Jane\My Documents\Python\cubicweb\
-
-From now, on a fresh `cmd` shell, you should be able to type::
-
-  cubicweb-ctl list
-
-... and get a meaningful output.
-
-Running an instance as a service
---------------------------------
-
-This currently assumes that the instances configurations is located at
-``C:\\etc\\cubicweb.d``. For a cube 'my_instance', you will find
-``C:\\etc\\cubicweb.d\\my_instance\\win32svc.py``.
-
-Now, register your instance as a windows service with::
-
-  win32svc install
-
-Then start the service with::
-
-  net start cubicweb-my_instance
-
-In case this does not work, you should be able to see error reports in
-the application log, using the windows event log viewer.
--- a/doc/book/admin/setup.rst	Fri Jan 31 15:28:55 2020 +0100
+++ b/doc/book/admin/setup.rst	Sun Feb 02 23:01:01 2020 +0100
@@ -15,11 +15,10 @@
 Depending on your needs, you will chose a different way to install CubicWeb on
 your system:
 
+- `Installation using docker`_
 - `Installation on Debian/Ubuntu`_
-- `Installation on Windows`_
 - `Installation in a virtualenv`_
 - `Installation with pip`_
-- `Installation with easy_install`_
 - `Installation from tarball`_
 
 If you are a power-user and need the very latest features, you will
@@ -30,14 +29,24 @@
 and advanced features of |cubicweb|.
 
 .. _`Installation on Debian/Ubuntu`: DebianInstallation_
-.. _`Installation on Windows`: WindowsInstallation_
 .. _`Installation in a virtualenv`: VirtualenvInstallation_
 .. _`Installation with pip`: PipInstallation_
-.. _`Installation with easy_install`: EasyInstallInstallation_
 .. _`Installation from tarball`: TarballInstallation_
 .. _`Install from version control`: MercurialInstallation_
 
 
+.. _DockerInstallation:
+
+Docker install
+--------------
+
+Detailed instructions on how to deploy CubicWeb using docker can be found
+on the `docker hub <https://hub.docker.com/r/logilab/cubicweb>`_.
+
+The images there are built using the following source code :
+`docker-cubicweb <https://hg.logilab.org/master/docker-cubicweb/>`_,
+see it's `README <https://hg.logilab.org/master/docker-cubicweb/file/tip/README.rst>`_
+
 .. _DebianInstallation:
 
 Debian/Ubuntu install
@@ -50,9 +59,10 @@
 
 Depending on the distribution you are using, add the appropriate line to your
 `list of sources` (for example by editing ``/etc/apt/sources.list``), replacing
-``<release>`` with e.g. ``wheezy`` or ``trusty``::
+``<release>`` with e.g. ``buster`` or ``bionic``::
 
-  deb http://download.logilab.org/production/ <release>/
+  deb http://apt.logilab.fr <release> main  # all cubicweb & cubes
+  deb http://apt.logilab.fr <release> cubicweb-3.26  # latest cubicweb 3.26 & cubes
 
 The repositories are signed with `Logilab's gnupg key`_. You can download
 and register the key to avoid warnings::
@@ -85,25 +95,6 @@
 .. _`Logilab's gnupg key`: https://www.logilab.fr/logilab-debian-keyring.gpg
 .. _`CubicWeb.org Forge`: http://www.cubicweb.org/project/
 
-.. _WindowsInstallation:
-
-Windows Install
----------------
-
-You need to have `python`_ version >= 2.5 and < 3 installed.
-
-If you want an automated install, your best option is probably the
-:ref:`EasyInstallInstallation`. EasyInstall is a tool that helps users to
-install python packages along with their dependencies, searching for suitable
-pre-compiled binaries on the `The Python Package Index`_.
-
-If you want better control over the process as well as a suitable development
-environment or if you are having problems with `easy_install`, read on to
-:ref:`SetUpWindowsEnv`.
-
-.. _python:  http://www.python.org/
-.. _`The Python Package Index`: http://pypi.python.org
-
 .. _VirtualenvInstallation:
 
 `Virtualenv` install
@@ -119,12 +110,12 @@
 `pip` install
 -------------
 
-`pip <http://pip.openplans.org/>`_ is a python tool that helps downloading,
+`pip <https://pip.pypa.io/>`_ is a python tool that helps downloading,
 building, installing, and managing Python packages and their dependencies. It
 is fully compatible with `virtualenv`_ and installs the packages from sources
 published on the `The Python Package Index`_.
 
-.. _`virtualenv`: http://virtualenv.openplans.org/
+.. _`virtualenv`: https://virtualenv.pypa.io
 
 A working compilation chain is needed to build the modules that include C
 extensions. If you really do not want to compile anything, installing `lxml <http://lxml.de/>`_,
@@ -160,41 +151,6 @@
 
   pip install cubicweb-blog
 
-.. _EasyInstallInstallation:
-
-`easy_install` install
-----------------------
-
-.. note::
-
-   If you are not a Windows user and you have a compilation environment, we
-   recommend you to use the PipInstallation_.
-
-`easy_install`_ is a python utility that helps downloading, installing, and
-managing python packages and their dependencies.
-
-Install |cubicweb| and its dependencies, run::
-
-  easy_install cubicweb
-
-There is also a wide variety of :ref:`cubes <AvailableCubes>`. You can access a
-list of available cubes on `PyPI
-<http://pypi.python.org/pypi?%3Aaction=search&term=cubicweb&submit=search>`_
-or at the `CubicWeb.org Forge`_.
-
-For example, installing the *blog cube* is achieved by::
-
-  easy_install cubicweb-blog
-
-.. note::
-
-  If you encounter problem with :ref:`cubes <AvailableCubes>` installation,
-  consider using :ref:`PipInstallation` which is more stable
-  but can not installed pre-compiled binaries.
-
-.. _`easy_install`: http://packages.python.org/distribute/easy_install.html
-
-
 .. _SourceInstallation:
 
 Install from source
--- a/doc/book/annexes/mercurial.rst	Fri Jan 31 15:28:55 2020 +0100
+++ b/doc/book/annexes/mercurial.rst	Sun Feb 02 23:01:01 2020 +0100
@@ -111,16 +111,6 @@
    3. `hg ci`
    4. `hg push`
 
-Installation of the guestrepo extension
-```````````````````````````````````````
-
-Set up the guestrepo extension by getting a copy of the sources
-from https://bitbucket.org/selinc/guestrepo and adding the following
-lines to your ``~/.hgrc``: ::
-
-   [extensions]
-   guestrepo=/path/to/guestrepo/guestrepo
-
 
 More information
 ````````````````
--- a/doc/book/devweb/ajax.rst	Fri Jan 31 15:28:55 2020 +0100
+++ b/doc/book/devweb/ajax.rst	Sun Feb 02 23:01:01 2020 +0100
@@ -3,6 +3,17 @@
 Ajax
 ----
 
+.. warning::
+
+    This approach is deprecated in favor of using
+    `cwclientlibjs <https://www.npmjs.com/package/@logilab/cwclientlibjs>`_.
+    If your use react for your UI, try the react components from the
+    `cwelements <https://www.npmjs.com/package/@logilab/cwelements>`_ library.
+    The documentation is kept here as reference.
+
+    For historical reference of what Ajax is and used to be, one can read the
+    `wikipedia article about Ajax <https://en.wikipedia.org/wiki/Ajax_(programming)>`_.
+
 CubicWeb provides a few helpers to facilitate *javascript <-> python* communications.
 
 You can, for instance, register some python functions that will become
--- a/doc/book/intro/concepts.rst	Fri Jan 31 15:28:55 2020 +0100
+++ b/doc/book/intro/concepts.rst	Sun Feb 02 23:01:01 2020 +0100
@@ -277,7 +277,7 @@
 
 * it is not limited to one specific SQL backend (every one of them
   having an idiomatic way to encode triggers), nor to SQL backends at
-  all (think about LDAP or a Subversion repository)
+  all (think about LDAP or a Mercurial repository)
 
 * it is well-coupled to the rest of the framework
 
--- a/doc/book/pyramid/debug_toolbar.rst	Fri Jan 31 15:28:55 2020 +0100
+++ b/doc/book/pyramid/debug_toolbar.rst	Sun Feb 02 23:01:01 2020 +0100
@@ -11,7 +11,7 @@
 
 To use the pyramid debug toolbar in CubicWeb, you need to:
 
-* install it either by doing a `pip install pyramid_debugtoobar` or following
+* install it either by doing a `pip install pyramid_debugtoolbar` or following
   `the official installation instructions
   <https://docs.pylonsproject.org/projects/pyramid_debugtoolbar/#installation>`_
 * launch the pyramid command adding the `-t/--toolbar` argument to enable it
--- a/doc/changes/3.27.rst	Fri Jan 31 15:28:55 2020 +0100
+++ b/doc/changes/3.27.rst	Sun Feb 02 23:01:01 2020 +0100
@@ -1,5 +1,5 @@
-3.27 (not yet released)
-=======================
+3.27
+====
 
 New features
 ------------
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/dev/continuous-integration.rst	Sun Feb 02 23:01:01 2020 +0100
@@ -0,0 +1,33 @@
+======================
+Continuous Integration
+======================
+
+Jenkins
+=======
+
+A public instance of jenkins is used to test CubicWeb and its cubes :
+
+* https://jenkins.logilab.org/
+* https://jenkins.logilab.org/view/Cubes/
+* https://jenkins.logilab.org/view/CubicWeb/
+
+Badges
+------
+
+Badges are exported to be displayed on various pages. Here is an example :
+
+.. raw:: html
+
+  <table><tr><td>
+  <a href='https://jenkins.logilab.org/job/cubicweb-default/'><img src='https://jenkins.logilab.org/buildStatus/icon?job=cubicweb-default'></a></td>
+
+  <td>&nbsp;is the status for the draft head on branch default of the <a href="https://hg.logilab.org/review/cubicweb">review repository</a></td></tr></table>
+
+Adding a project to Jenkins
+---------------------------
+
+Adding a project to jenkins needs to be done through the
+`jenkins-jobs project <https://hg.logilab.org/master/jenkins-jobs/file/tip/README.rst>`_.
+
+Changes to the configuration are implemented by the
+`jenkins-jobs job <https://jenkins.logilab.org/job/jenkins-jobs/>`_.
--- a/doc/index.rst	Fri Jan 31 15:28:55 2020 +0100
+++ b/doc/index.rst	Sun Feb 02 23:01:01 2020 +0100
@@ -23,7 +23,7 @@
 
 * the power and flexibility of the Python_ programming language,
 
-* the reliability of SQL databases, LDAP directories, Subversion and Mercurial
+* the reliability of SQL databases, LDAP directories and Mercurial
   for storage backends.
 
 Built since 2000 from an R&D effort still continued, supporting 100,000s of
@@ -43,6 +43,8 @@
 *   Discuss on the `mailing-list`_
 *   Discover on the `blog`_
 *   Contribute on the forge_
+*   Find published python modules on `pypi <https://pypi.org/search/?q=cubicweb>`_
+*   Find published npm modules on `npm <https://www.npmjs.com/search?q=keywords:cubicweb>`_
 
 
 .. _Logilab: http://www.logilab.fr/
@@ -118,8 +120,9 @@
     :maxdepth: 1
     :glob:
 
-    How to contribute to the code base <https://hg.logilab.org/master/cubicweb/file/tip/README#l39>
+    How to contribute to the code base <https://hg.logilab.org/master/cubicweb/file/tip/README#l56>
     General contribution guide for cubes <https://www.logilab.org/Card/contributing>
+    Priorities are discussed over on the development dashboard <https://www.cubicweb.org/card/cw-dev-board>
     dev/*
 
 Indexes