doc/book/devrepo/cubes/cc-newcube.rst
author Christophe de Vienne <christophe@unlish.com>
Thu, 08 Jan 2015 22:11:06 +0100
changeset 10491 c67bcee93248
parent 6928 doc/book/en/devrepo/cubes/cc-newcube.rst@62b8ef1e859a
child 10517 fa9a0c80556d
permissions -rw-r--r--
[doc] Restructure the documentation * Create a new index file * Move the sphinx configuration files do the documentation root * Move book/README to dev/documenting.rst * Move book/mode_plan.py to tools/ * Move book/en/images to images * Move book/en/* to book/ * Move changelogs to changes/* * Adapt the Makefile * Add a title to the javascript api index Related to #4832808
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6928
62b8ef1e859a [doc/book] simplify & fix the overview chapter
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5608
diff changeset
     1
Creating a new cube from scratch
62b8ef1e859a [doc/book] simplify & fix the overview chapter
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5608
diff changeset
     2
--------------------------------
1714
a721966779be new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff changeset
     3
a721966779be new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff changeset
     4
Let's start by creating the cube environment in which we will develop ::
a721966779be new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff changeset
     5
5400
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5394
diff changeset
     6
  cd ~/cubes
4437
21f2e01fdd6a update exemples using the 3.6 api and add/fix some sections (schema, vreg, talk about CW_MODE in concepts...). So much to do :'(
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2280
diff changeset
     7
  # use cubicweb-ctl to generate a template for the cube
5400
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5394
diff changeset
     8
  # will ask some questions, most with nice default
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5394
diff changeset
     9
  cubicweb-ctl newcube mycube
4437
21f2e01fdd6a update exemples using the 3.6 api and add/fix some sections (schema, vreg, talk about CW_MODE in concepts...). So much to do :'(
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2280
diff changeset
    10
  # makes the cube source code managed by mercurial
1714
a721966779be new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff changeset
    11
  cd mycube
4437
21f2e01fdd6a update exemples using the 3.6 api and add/fix some sections (schema, vreg, talk about CW_MODE in concepts...). So much to do :'(
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2280
diff changeset
    12
  hg init
1714
a721966779be new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff changeset
    13
  hg add .
a721966779be new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff changeset
    14
  hg ci
a721966779be new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff changeset
    15
2280
31269a9b9ec4 [doc] improvements
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents: 2172
diff changeset
    16
If all went well, you should see the cube you just created in the list
6928
62b8ef1e859a [doc/book] simplify & fix the overview chapter
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5608
diff changeset
    17
returned by ``cubicweb-ctl list`` in the  *Available cubes* section.
5608
f9ab62103ad4 proof read documentation
Alexandre Fayolle <alexandre.fayolle@logilab.fr>
parents: 5400
diff changeset
    18
If not, please refer to :ref:`ConfigurationEnv`.
1714
a721966779be new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff changeset
    19
5400
b7ab099b128a [doc/book] various content fixes
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5394
diff changeset
    20
To reuse an existing cube, add it to the list named
5608
f9ab62103ad4 proof read documentation
Alexandre Fayolle <alexandre.fayolle@logilab.fr>
parents: 5400
diff changeset
    21
``__depends_cubes__`` which is defined in :file:`__pkginfo__.py`.
f9ab62103ad4 proof read documentation
Alexandre Fayolle <alexandre.fayolle@logilab.fr>
parents: 5400
diff changeset
    22
This variable is used for the instance packaging (dependencies handled
f9ab62103ad4 proof read documentation
Alexandre Fayolle <alexandre.fayolle@logilab.fr>
parents: 5400
diff changeset
    23
by system utility tools such as APT) and to find used cubes when the
f9ab62103ad4 proof read documentation
Alexandre Fayolle <alexandre.fayolle@logilab.fr>
parents: 5400
diff changeset
    24
database for the instance is created (import_erschema('MyCube') will
f9ab62103ad4 proof read documentation
Alexandre Fayolle <alexandre.fayolle@logilab.fr>
parents: 5400
diff changeset
    25
not properly work otherwise).
1714
a721966779be new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff changeset
    26
6928
62b8ef1e859a [doc/book] simplify & fix the overview chapter
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5608
diff changeset
    27
On a Unix system, the available cubes are usually stored in the
62b8ef1e859a [doc/book] simplify & fix the overview chapter
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5608
diff changeset
    28
directory :file:`/usr/share/cubicweb/cubes`. If you are using the
62b8ef1e859a [doc/book] simplify & fix the overview chapter
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5608
diff changeset
    29
cubicweb mercurial repository (:ref:`SourceInstallation`), the cubes
62b8ef1e859a [doc/book] simplify & fix the overview chapter
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5608
diff changeset
    30
are searched in the directory
62b8ef1e859a [doc/book] simplify & fix the overview chapter
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5608
diff changeset
    31
:file:`/path/to/cubicweb_toplevel/cubes`. In this configuration
62b8ef1e859a [doc/book] simplify & fix the overview chapter
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5608
diff changeset
    32
cubicweb itself ought to be located at
62b8ef1e859a [doc/book] simplify & fix the overview chapter
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5608
diff changeset
    33
:file:`/path/to/cubicweb_toplevel/cubicweb`.
62b8ef1e859a [doc/book] simplify & fix the overview chapter
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents: 5608
diff changeset
    34
1714
a721966779be new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff changeset
    35
.. note::
4437
21f2e01fdd6a update exemples using the 3.6 api and add/fix some sections (schema, vreg, talk about CW_MODE in concepts...). So much to do :'(
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2280
diff changeset
    36
21f2e01fdd6a update exemples using the 3.6 api and add/fix some sections (schema, vreg, talk about CW_MODE in concepts...). So much to do :'(
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2280
diff changeset
    37
    Please note that if you do not wish to use default directory for your cubes
21f2e01fdd6a update exemples using the 3.6 api and add/fix some sections (schema, vreg, talk about CW_MODE in concepts...). So much to do :'(
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2280
diff changeset
    38
    library, you should set the :envvar:`CW_CUBES_PATH` environment variable to
21f2e01fdd6a update exemples using the 3.6 api and add/fix some sections (schema, vreg, talk about CW_MODE in concepts...). So much to do :'(
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2280
diff changeset
    39
    add extra directories where cubes will be search, and you'll then have to use
21f2e01fdd6a update exemples using the 3.6 api and add/fix some sections (schema, vreg, talk about CW_MODE in concepts...). So much to do :'(
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2280
diff changeset
    40
    the option `--directory` to specify where you would like to place the source
21f2e01fdd6a update exemples using the 3.6 api and add/fix some sections (schema, vreg, talk about CW_MODE in concepts...). So much to do :'(
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2280
diff changeset
    41
    code of your cube:
21f2e01fdd6a update exemples using the 3.6 api and add/fix some sections (schema, vreg, talk about CW_MODE in concepts...). So much to do :'(
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2280
diff changeset
    42
21f2e01fdd6a update exemples using the 3.6 api and add/fix some sections (schema, vreg, talk about CW_MODE in concepts...). So much to do :'(
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2280
diff changeset
    43
    ``cubicweb-ctl newcube --directory=/path/to/cubes/library mycube``
1714
a721966779be new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff changeset
    44
2172
cf8f9180e63e delete-trailing-whitespace
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents: 1714
diff changeset
    45
4437
21f2e01fdd6a update exemples using the 3.6 api and add/fix some sections (schema, vreg, talk about CW_MODE in concepts...). So much to do :'(
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2280
diff changeset
    46
.. XXX resurrect once live-server is back
21f2e01fdd6a update exemples using the 3.6 api and add/fix some sections (schema, vreg, talk about CW_MODE in concepts...). So much to do :'(
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2280
diff changeset
    47
.. Usage of :command:`cubicweb-ctl liveserver`
21f2e01fdd6a update exemples using the 3.6 api and add/fix some sections (schema, vreg, talk about CW_MODE in concepts...). So much to do :'(
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2280
diff changeset
    48
.. -------------------------------------------
1714
a721966779be new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff changeset
    49
4437
21f2e01fdd6a update exemples using the 3.6 api and add/fix some sections (schema, vreg, talk about CW_MODE in concepts...). So much to do :'(
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2280
diff changeset
    50
.. To quickly test a new cube, you can also use the `liveserver` command for cubicweb-ctl
21f2e01fdd6a update exemples using the 3.6 api and add/fix some sections (schema, vreg, talk about CW_MODE in concepts...). So much to do :'(
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2280
diff changeset
    51
.. which allows to create an instance in memory (using an SQLite database by
21f2e01fdd6a update exemples using the 3.6 api and add/fix some sections (schema, vreg, talk about CW_MODE in concepts...). So much to do :'(
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2280
diff changeset
    52
.. default) and make it accessible through a web server ::
1714
a721966779be new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff changeset
    53
4437
21f2e01fdd6a update exemples using the 3.6 api and add/fix some sections (schema, vreg, talk about CW_MODE in concepts...). So much to do :'(
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2280
diff changeset
    54
..   cubicweb-ctl live-server mycube
1714
a721966779be new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff changeset
    55
4437
21f2e01fdd6a update exemples using the 3.6 api and add/fix some sections (schema, vreg, talk about CW_MODE in concepts...). So much to do :'(
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2280
diff changeset
    56
.. or by using an existing database (SQLite or Postgres)::
1714
a721966779be new book layout, do not compile yet
sylvain.thenault@logilab.fr
parents:
diff changeset
    57
4437
21f2e01fdd6a update exemples using the 3.6 api and add/fix some sections (schema, vreg, talk about CW_MODE in concepts...). So much to do :'(
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 2280
diff changeset
    58
..   cubicweb-ctl live-server -s myfile_sources mycube