Odoo Upgrade Service

Upload your Custom Module Archive

Any Question ?

If there is no issue in the archive you have submitted on this form, you'll receive a preliminary analysis of your modules. This will give you the number of lines of code.
The quotation issued to you by the Sales Department will be based on the number of lines of code.

If you don't agree with this preliminary analysis, you'll be able to request a discussion with the Upgrade Team and share your point of view.
We'll then fulfil a brief analysis of your files to check if all of them need to be upgraded and we'll contact you in a very short time to discuss about this analysis.

If you agree with this analysis, you still need to request a discussion with the Upgrade Team. You just need to click on a button on your project status page (you'll receive the address by email) and you'll be contacted shortly afer a brief analysis of your modules.

Step 2: Contact your Account Manager

You'll need an Enterprise Contract in order to request a Custom Module Upgrade.
So, once you are satisfied with our analysis and you want the Upgrade Service to convert your custom modules, you'll need to contact your Account Manager (if you already have one) or contact us

Step 3: Approval from your Account Manager

Once we receive the approval from your Account Manager, we'll start to upgrade your custom modules.
You'll receive an email stating that the project has started.

Step 4: Test your Upgraded Modules

As soon as the modules are upgraded, you'll be notified by email and you'll be able to download them.
You then need to test them and report any issues found to upgrade@odoo.com

Step 5: Validate your Custom Module Upgrade

Once you are satisfied with the result, you can:

  • start using them on your current database
  • or send us your old database. We'll upgrade it to the same version than your upgraded modules and it will be upgraded using these upgraded custom modules

Archive format

The Upgrade platform supports several file formats. You can choose from tar.gz, tar.xz, zip or rar file formats.

Archive content

Except for standard modules, your archive needs to contain all Odoo modules required to install them. It means that you need to submit all modules with their corresponding dependencies.

For example, if you just want to migrate a module named stock_b depending on:

  • stock_a
  • stock
You need to send us an archive containing the stock_b and stock_a modules. You are not required to submit the stock module since it's a standard module. But if your archive also contains the stock module, it will not be analyzed and we will not count the lines of code of this module.

If you don't supply all the required modules, we will not be able to install them and your request will be invalidated.

You archive should also contain at least one module. It means that even if you want to submit only one module, the archive needs to contain a directory with the same name than your module.
Do not send an archive containing the files at the root of this archive. The files of your module need to be inside a directory whose name should be the same than the name of your module.

And do not send separate archives. Send one archive containing all your modules.

We are using cloc with these command line parameters:

  • --by-file-by-lang: gives a report by lang and also by file
  • --force-lang=xml,rml: rml files are analyzed as xml files
  • --force-lang=xml,mako: mako files are analyzed as xml files
  • --exclude-dir=doc,static: do not analyze files in doc and static directories
  • --exclude-ext=sh,bash: do not analyze files having .sh extention
  • --exclude-lang=HTML,Java,Scala: do not analyze HTML, JAVA and Scala files
  • --lang-no-ext=Scala: analyze files without extention as being Scala files (This is a trick to ignore files without extention in fact)

The result displayed to you is an automatic analysis. We analyze all files contained in your modules. You are required to clean your modules before uploading your archive. Otherwise, we will also analyze backup files like product_old.py or Copy of product.py which are probably not used by your modules.

So you need to give us an archive containing clean modules without any backup files or files not used by your modules.

We are excluding Java and HTML files and also all files contained in directories named doc or static.
We can also exclude more file types if you give us a little explanation about why we need to exclude them.
Just send us an email with your explanation and your request number.
We will not exclude backup or duplicate files. Please send us an archive containing clean modules.

You can probably upgrade your custom modules yourself very easily if you are a little bit technical.
There are some cases where upgrading your modules is relatively easy:

  • if your custom modules defines custom models (models not related to any standard models)
  • if your custom modules just adds new and simple (Char, Float, Integer, ...) custom fields
  • if your custom modules adds custom fields linked to a standard model (and this standard model has not changed bewteen versions)

The difficult parts are mostly:

  • views inheriting from standard views that have changed in the new version
  • models inheriting from standard models that have disappeared or changed heavily
  • fields related to standard models that have disappeared or changed heavily
  • methods that were using models that have changed or disappeared