1.2. Creating a new cube from scratch using cubicweb-ctl newcube — CubicWeb 3.10.1

### Navigation

- index
- modules |
- next |
- previous |
- CubicWeb 3.10.1 »
- Repository development »
- 1. Cubes »

# 1.2. Creating a new cube from scratch using cubicweb-ctl newcube

Let’s start by creating the cube environment in which we will develop

    cd ~/cubes
    # use cubicweb-ctl to generate a template for the cube
    # will ask some questions, most with nice default
    cubicweb-ctl newcube mycube
    # makes the cube source code managed by mercurial
    cd mycube
    hg init
    hg add .
    hg ci

If all went well, you should see the cube you just created in the list returned by `cubicweb-ctl list` in the Available cubes section. If not, please refer to Environment configuration.

To reuse an existing cube, add it to the list named `__depends_cubes__` which is defined in `__pkginfo__.py`. This variable is used for the instance packaging (dependencies handled by system utility tools such as APT) and to find used cubes when the database for the instance is created (import_erschema(‘MyCube’) will not properly work otherwise).

Note

Please note that if you do not wish to use default directory for your cubes library, you should set the CW_CUBES_PATH environment variable to add extra directories where cubes will be search, and you’ll then have to use the option –directory to specify where you would like to place the source code of your cube:

`cubicweb-ctl newcube --directory=/path/to/cubes/library mycube`

### Navigation

- index
- modules |
- next |
- previous |
- CubicWeb 3.10.1 »
- Repository development »
- 1. Cubes »