A buildout recipe to install and configure Odoo
This recipe for Buildout is a fully featured tool allowing you to define and deploy quickly Odoo installations of any kinds, starting from the 8.0 series, and ranging from development setups to fully automated production deployments or continuous integration.
Some of its main features include:
- uniformity across Odoo versions (from 8.0 onwards)
- installation of Odoo server
- retrieval of main software and addons from various sources, including the major version control systems
- ability to pinpoint everything for replayability
- management of Odoo configuration
- dedicated scripts creation for easy integration of external tools, such as test launchers
- packaging: creation of self-contained equivalents for easy deployment in tightly controlled hosting environmenents.
All these to be considered together with Buildout‘s general properties, such as an extensible configuration file format for easy variation or separation of concerns, native Python distributions installation, and of course the huge ecosystem of other recipes.
The full documentation is written with Sphinx, built continuously and uploaded to http://docs.anybox.fr/anybox.recipe.odoo by Anybox’ public buildbot. The Sphinx source tree is to be found under the doc subdirectory of this project.
The latest released version of the documentation is uploaded to PyPI alongside with the package. See PyPIDocumentationHosting for details.
Bug reports and Feedback
Please don’t hesitate to give feedback and especially report bugs or ask for new features on GitHub: https://github.com/anybox/anybox.recipe.odoo
- Christophe Combelles
- Georges Racinet
- Jean-Sébastien Suzanne
- Yannick Vaucher
- Jacques-Etienne Baudoux
- Laurent Mignon
- Leonardo Pistone
- Stefan Rijnhart
- Stéphane Bidoul
- Sebastian Kennedy
- Laetitia Gangloff
- Sandy Carter
- Holger Brunn
- Leonardo Rochael Almeida
The 1.9 series of anybox.recipe.openerp and anybox.recipe.odoo are stable versions.
This changelog displays timelines for the two recipes anybox.recipe.openerp was considered upstream of anybox.recipe.odoo until release of version 1.9.2b1 of the latter.
anybox.recipe.odoo 1.9.2 (2016-09-20)
- identical to 1.9.2b1
anybox.recipe.odoo 1.9.2b1 (2016-08-29)
- github #43: new option apply-requirements-file (and pip version compatibilities handled in #76)
- github #18: Support develop-dir option from gp.vcsdevelop
- adapted nightly archive UR
- github #63: option via environment variable to skip PostgreSQL user checks (useful in Docker cases)
- github #30: fixed regression with option gunicorn.preload_databases that appeared in 1.9.0
- github #78: skip querying remote for commit specified by its SHA and already locally available
- github #69: (git) allow merging via sha1 hash
- github #29: merge broken with Git 1.7.9
- github #71: (git) option to disable the warning about relying on SHAs
Runtime / scripts / upgrade
- github #37: made Odoo’s new API Environment instance available
to Session instance, and subsequent fixes:
- github #77: environment (part of Odoo’s new API) used to be broken by installation of modules
- github #23: cursor auto-closing in upgrades, and more robustness of Session.close()
- github #37: fetch and apply superuser’s context to session.
- github #33: during freeze, if the origin buildout configuration uses an already frozen revision specification, do not replace it by the result of introspection of local clone. Especially meaningful with Git, because this used to replace nice tags with SHAs that are less reliable.
- github #20: value of recipe option now gets copied to extracted buildout even if it has no extras such as [bzr]
- github #73: consistency of working dirs in shell code examples
- github #60: new responsive theme using Sphinx Bootstrap Theme
- renamed many occurrences of OpenERP to Odoo
- Github pull requests get tested by Travis with Coveralls. Anybox’s buildbot is still around for integration tests actually requiring to install Odoo and to run unit test against slightly different software bases
- cleanup and unification of setup.py subcommands
- less setuptools clutter in unit tests runs
anybox.recipe.odoo 1.9.1 (2014-12-17)
- github #20: Avoid duplicate entries in the addons option generated by extract-downloads-to
- github #7: template for upgrade.py was missing for a.r.odoo
anybox.recipe.openerp 1.9.1 (2015-01-12)
- github PR #5: ir_model_data helpers for the Session API (sripts and python shell)
- github #6: fixed download URL for OpenERP 6.1-1
- github #3: [git] support HEAD as a (remote) revision specification. In a related way, added the branch indication to SHA pinning, which isn’t deprecated any more due to wide usage, only warned that it’s suboptimal.
anybox.recipe.odoo 1.9.0 (2014-12-05)
- first release, skimmed from anybox.recipe.openerp 1.9.0
- rename to anybox.recipe.odoo
anybox.recipe.openerp 1.9.0 (2014-12-02)
- launchpad #1332147: insensitivity to project name in setup.py (openerp, odoo, whatever).
- launchpad #1332465: [git] support for shallow clones (–depth), refactor to allow this consistently with detached head states, branch changes, etc.
- launchpad #1358353: with github layout, respect ordering if the place of the standards (non-base) addons is explicitely set as ‘local’ (allows to insert overrides before them).
- launchpad #1391571 (related): revert used to fail with grouped standalone addons
- launchpad #1391571 (related): revert used to fail if some sources were ‘local’ or ‘downloadable’.
- launchpad #1214832 (related): introduction of explicit ‘group’ option for standalone addons.
- launchpad #1294020: vcs-revert=on-merge option, and implementation for bzr
- launchpad #1274174: new feature for automatic merge of remote VCS sources, with bzr support.
- launchpad #1327773: [git] support for automatic merges
- launchpad #1392913: extract-download-to completely removes the gp.vcsdevelop extension and the bzr extra in the produced buildout
- launchpad #1232729: handling of server-wide modules by the recipe
- launchpad #1327609: support inline comments in multi-line options
- launchpad #1358353: with github layout, respect ordering if the place of the standards (non-base) addons is explicitely set as ‘local’ (allows to insert overrides before them).
- launchpad #1391258: [git] clear-retry is now honoured (a last chance in case of non updatable repos), but a ‘git reset’ gets tried first to circumvent impossible fast-forwards and avoid full recloning in these cases.
- launchpad #1208028: another case where parsing of exception while installing egg failed. Rewrote the whole logic, with much unit-testing
- fixed URL and filenames for nightlies
- gevent script generation backported to version 7.saas~3 and following
- launchpad #1343518: versions < 8 with layout of odoo on Github had severe shadowing issues.
- launchpad #1338405: [odoo] provided necessary environments init in session (needed for interactive session and various scripts)
- launchpad #1249566: [bzr] avoid outgoing requests in offline mode due to lp: locations resolution
- launchpad #1244721: fixed final reporting of upgrade script with python 2.6
- launchpad #1208745: [hg] robustness about content of .hg/hgrc
- launchpad #1327756: support new addons layout on github
- launchpad #1324579: [odoo] generation of gevent script (longpolling) and have it used through the –workers option
- launchpad #1321919: [v8] fixed potential masking of standard library by addons of the same name
- launchpad #1234014: [git] tracked branch were not properly updated if the branch was already the current one
- launchpad #1320198: [bzr] using revids internally and in particular in freeze/extract features
- launchpad #1320198: [bzr] forbidding change of parent location in offline mode unless this is for a fixed revision ID (no ambiguity), and forcing a pull in non offline mode.
- launchpad #1317269: [v8] OpenERP server can’t start in a multi workers mode
- launchpad #1314566: [v8] OpenERP scripts & interpreter can’t load db
- launchpad #1281262: new openerp-log-level modifier in openerp_scripts
- launchpad #1289761: using the proper zc.buildout.UserError in lots of places.
- launchpad #1296178: have unparseable addons lines end up in UserError as well.
- launchpad #1229908: fixed tarball download url for the 6.0.x releases
- launchpad #1275168: when freeze nightly version was not set correctly
- launchpad #1245261: new --init-all option in test_openerp and start_openerp scripts.
- launchpad #1235946 (demo data): consistent behaviour and capability to load them.
- launchpad #1239721: now session has ‘is_initialization’ attribute for creation use-cases of upgrade script; using it to improve logging, and in default upgrade script.
- launchpad #1222482: upgrade toolkit and upgrade scripts generation
- launchpad #1222116: [Gunicorn] option to preload databases
- launchpad #1246822: restored the ordering of addons_path as it was in 1.7.0 (main addons first).
- Fixed the licence in setup.py and hence on PyPI page. The ZPL indicated was contradictory with what is stated on Launchpad’s project page, and plain non applicable, since the recipe does import from OpenERP.
- launchpad #1232806: custom interpreter and openerp_scripts now work with OpenERP 6.1
- launchpad #1233606: [bzr] lightweight checkout now respects –offline
- launchpad #1232724: [gunicorn] properly switching openerp to multi-process mode
- SAAS versions now recognized, and treated as X.5
- launchpad #1228997: [v5] in some cases, start_openerp –stop-after-init was not honoured.
- launchpad #1222562: [git] error in extract-downloads-to
- launchpad #1215838: don’t freeze develop / gp.vcsdevelop distributions
- launchpad #1213469: openerp scripts: support for entry point arguments
- launchpad #1215833: preserve regular develops in extract-downloads-to
- launchpad #1215873: [git] re-buildout with revision fixed versions crashes
- launchpad #1217816: [bzr] proper update of lightweight checkouts
- launchpad #1203550: [v8] using the openerpcommand that comes now bundled with openobject-server
- launchpad MP #182002: new ‘etc-directory’ option (default behaviour unchanged).
- launchpad #1208028: wrong error message in case of distribution version conflict
- launchpad #1216498: fixed python interpreter extra paths
- launchpad #1216835: [bzr] mispelling in ‘lightweight-checkout’ option
- launchpad #1205063: no more error if no addons are specified (might lead to problems with the default config, though, because of server wide modules, but that’s supposed to be overridable)
- launchpad #1189160: easy integration of general purpose unit test launchers
- launchpad #1201715: allow easily working in a virtualenv with extra-requires on bzr (allows easily to work with zc.buildout 2.2 on systems providing setuptools < 0.7 / distribute)
- launchpad #1202150: [git] proper support for remote branches
- launchpad #1200449: new flexible openerp_scripts; general refactor of script generation code.
- launchpad #1203005: vcs options not passed through (addons and main software)
- [bzr] support for lightweight checkout, with uniform ‘bzr-init’ option
- launchpad #1204573: [bzr] retry in two steps for some bzr branching cases where it fails to branch directly to wished revision.
- launchpad #1128146: new option in freeze-to to disallow picked versions, stopping not freezing of distribute.
- introduced vcs.base.CloneError with wrappers for check_call and check_output.
- launchpad #1200198: hg: determination whether rev spec is fixed could be wrong
- launchpad #1194887: ‘clean’ option for git and hg now use the native solution
- launchpad #1192973: ‘clean’ option now based on bzr clean-tree (more powerful, and avoids in particular removing empty dirs, which is a local modification that prevents later on freezing)
- launchpad #1189402: order of the addons_path is now deterministic
- launchpad #1189162: registry helping avoid double evaluaton of custom addons models (helps launching unittest2 tests directly)
- launchpad #1191279: first implementation of new ‘clean’ option, dealing with python object files only.
- launchpad #1188402: fixed git clone init on a precise revision
- launchpad #1183005: python interpreter that can bootstrap OpenERP and open a database for interactive session or to launch a script.
- launchpad #1182589: avoid IOError if a bzr branch has no branch.conf
- launchpad #1185097, #1185100, #1185101, #1185741: advanced support for Git (precise revision, freeze, extract) allows including Git repositories in a full release process for tarball deployments.
- launchpad #1182146: clearer user feedback and exit status code = 17 for freeze-to in case of local modifications of VCS server or addons.
- launchpad #1169124: regression: offline mode not honoured with bzr
- launchpad #1166788: regression with bzr “revid:” revision specifications
- launchpad #1154719: freeze-to does not take the correct bzr revision number
- launchpad #1133248: “need more than 1 value to unpack” if some bzr’s branch.conf has extra content not in the key = value form
- support for bzr stacked branches for the server branch in the same way as was already done in addons.
- launchpad #1152808: corrected parsing of options.log_handler in gunicorn setups (introduced a constant to treat comma-separated list options in gunicorn conf)
- launchpad #1153036: avoid pulls in case the specified revision is a fixed one that we already have (bzr and hg only)
- launchpad #1115504: extract-downloads-to now works with bzr version shipping with Debian squeeze
- launchpad #1130590: errors with inline comments such as freeze-to produces
- works with zc.buildout 2.0
- launchpad #1115503: now it’s possible to apply extract-downloads-to for a buildout configuration that uses the revisions option: the produced configuration resets revisions if needed.
- launchpad #1122015: soft requirements problem if offline on zc.buildout 2.0
- quality: now entirely flake8 compliant
- launchpad #1093771: extraction feature of downloaded code (notably vcs)
- launchpad #1068360: new ‘revisions’ option to fix VCS revisions separately
- launchpad #1093474: freeze feature of revisions and versions of python distributions
- launchpad #1084535: finer behaviour of with_devtools option: load testing hacks only in tests launcher script
- launchpad #1095645: missing devtools loading in openerp-command scripts
- launchpad #1096472: forbid standalone (single) local addons. A local addon must always be a directory that has addons inside.
- launchpad #1096472: trailing slash in a standalone addon directory name led to error.
- launchpad #1077048: fix gunicorn startup script for OpenERP 7
- launchpad #1079819: take into account newly introduced hard dependency to PIL in OpenERP 7
- launchpad #1055466: refactor version logic by providing major version tuple for comparisons.
- launchpad #1081039: introduced soft requirements and made openerp-command one of these.
- Nothing but fix of changelog RST
- Fixed an error in user feedback if openerp-command package is missing but needed
- launchpad #1073917: separated test command (bin/test_openerp)
- launchpad #1073127: support for openerp-command
- major improvement of test coverage in server recipe
- included buildout configurations for buildbotting of the recipe in source distribution
- Improved documentation (bootstrap and sample buildouts)
- Re-enabled support for trunk nightly (and maybe 7.0 final)
- fixed a packaging problem with openerp-cron-worker in 1.1.4
- launchpad #1041231: Resilience to changes of bzr locations
- launchpad #1049519: openerp-cron-worker startup script
- launchpad #1025144: By default, admin passwd is now disabled
- launchpad #1054667: Problem with current dev nightlies for OpenERP 6.2
- fixed a packaging problem with openerp-cron-worker in 1.1.2
- no actual difference with 1.0 (only changelogs and the like)
- launchpad #1040011: works with current OpenERP trunk (future 7.0)
- launchpad #1027994: ‘base_url’ option, to download from mirrors
- launchpad #1035978: restored ‘local’ version scheme for OpenERP itself. Also implemented the ‘url’ version scheme.
- removed deprecated renaming of 6.1 to 6.1-1
- Refactored the documentation
- launchpad #1033525: startup_delay option
- launchpad #1019888: Gunicorn integration.
- launchpad #1019886: installation of ‘openerp’ as a develop distribution, and full python server startup script.
- launchpad #1025617: Support for nightly versions in 6.1 series
- launchpad #1025620: Support for latest version
- launchpad #1034124: Fix interference of buildout options with gtkclient recipe
- launchpad #1021083: optional development tools loading in startup script
- launchpad #1020967: stop creating scripts by default
- launchpad #1027986: Better handling of interrupted downloads
- launchapd #1017252: relying on Pillow to provide PIL unless PIL is explicitely wanted.
- launchpad #1014066: lifted the prerequirement for Babel. Now the recipe installs it if needed before inspection of OpenERP’s setup.py
- launchpad #1008931: Mercurial pull don’t take URL changes into account. Now the recipe manages the repo-local hgrc [paths] section, updates the default paths while storing earlier values
- launchpad #1012899: Update problems with standalone vcs addons
- launchpad #1005509: Now bzr branches are stacked only if
- bzr-stacked-branches option is set to True.
- launchpad #1000352: fixed a concrete problem in Bzr reraising
- launchpad #1000352: option vcs-clear-retry to retrieve from scratch in case of diverged Bzr branches. Raising UpdateError in right place would trigger the same for other VCSes.
- Basic tests for Git and Svn
- Refactor with classes of VCS package
- launchpad #997107: fixed vcs-clear-locks option for bzr, that requires a user confirmation that cannot be bypassed in older versions
- launchpad #998404: more robust calls to hg and bzr (w/ unit tests), and have exception raised if vcs call failed (break early, break often).
- launchpad #997107: vcs-clear-locks option (currently interpreted by Bzr only)
- launchpad #993362: addons subdir option, and made repositories being one addon usable by creating an intermediate directory.
- Faster tarball inspection (see lp issue #984237)
- Shared downloads and more generally configurable downloads directory, see https://blueprints.launchpad.net/anybox.recipe.openerp/+spec/shared-downloads
- fixed the sample buildouts in the readme file
- Clean-up and refactoring
- Removed url option (download url supported through version)
- Support OpenERP 6.1 and 6.0
- Added an ‘addons’ option allowing remote repositories and local directories
- Improved error messages
- Updated the documentation
- Handle bad Babel import in setup.py
- Support offline mode of buildout
- Create gtk client config without starting it
- handle deploying custom bzr branches
- handle new sections in openerp config
- Overwrite config files each time
- Make the “dsextras” error more explicit (install PyGObject and PyGTK)
- fixed some deps
- improved the doc
- Use dotted notation to add openerp options in the generated configs
- Added support for the web client and gtk client
- fixed config file creation
- Pass the trailing args to the startup script of the server
- Initial implementation for the OpenERP server only