Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Assembly Spec Reference

The assembly spec is stored in odood-assembly.yml in the root of the assembly repository. It is a YAML file with a single required top-level key: spec.

spec:
  addons-list: [...]
  sources-list: [...]
  known-addons: [...]
  layout: standard

spec fields

FieldRequiredDefaultDescription
addons-listyesList of addon entries to include in the assembly.
sources-listno[]List of git source entries to fetch addons from. Alias: git-sources.
known-addonsno[]Addon names assumed to be present on the target server; excluded from dependency validation.
layoutnostandardControls where synced addons are placed. See Layout.

Addon entry

Each entry in addons-list is either a plain string (addon name only) or a mapping:

addons-list:
  - my_addon                  # string shorthand — name only
  - name: other_addon         # mapping form
    source: my_repo           # optional: bind to a named source
  - name: paid_addon
    odoo_apps: true           # optional: download from Odoo Apps
FieldRequiredDefaultDescription
nameyesTechnical name of the Odoo addon.
sourcenonullName of the source entry to fetch this addon from. When set, Odood will only search the named source and will fetch the addon even if that source has no-search: true.
odoo_appsnofalseWhen true, download this addon from Odoo Apps instead of a git source.

Source entry

Each entry in sources-list defines a git repository to clone addons from. Exactly one of url, github, oca, or crnd must be provided.

sources-list:
  - url: https://github.com/my/repo
    name: my_repo
    ref: 18.0
    commit: a3f9c12bd047
    access-group: my_repos
    no-search: false

URL shortcuts

FieldExpands to
url: <full-url>used as-is
github: owner/repohttps://github.com/owner/repo
oca: repohttps://github.com/OCA/repo
crnd: group/repossh://git@gitlab.crnd.pro/group/repo

Source fields

FieldRequiredDefaultDescription
url / github / oca / crndyesGit repository URL (see shortcuts above).
namenonullIdentifier for this source. Used to bind addons via source: and as the credential lookup key for private repos.
refnonullBranch or tag to clone/fetch. Alias: branch (deprecated).
commitnonullCommit hash to check out after fetching ref. Minimum 12 hex characters. Requires ref to be set.
access-groupnonullCredential group name for private repos. Overrides name for credential lookup. See Private git sources.
no-searchnofalseWhen true, Odood will not auto-search this source for addons. The source is still used when an addon explicitly binds to it via source:.

Layout

ValueBehaviour
standardSynced addons are placed in the dist/ subdirectory of the assembly repo.
flatSynced addons are placed directly in the root of the assembly repo.

Complete example

spec:
  addons-list:
    - generic_mixin                       # shorthand
    - name: generic_tag
    - name: generic_m2o
      source: generic_addons              # explicit source binding
    - name: paid_addon
      odoo_apps: true                     # from Odoo Apps
  sources-list:
    - github: crnd-inc/generic-addons
      name: generic_addons
      ref: '18.0'
      commit: a3f9c12bd047               # pinned commit
    - oca: web
      ref: '18.0'
    - github: my/private-repo
      name: private_repo
      ref: '18.0'
      access-group: my_creds
      no-search: true                     # only used for explicitly bound addons
  known-addons:
    - sale
    - account
  layout: standard