--- 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> 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