Skip to main content

Small tools to migrate Odoo modules from a version to another

Project description

License: AGPL-3 Python support: 3.6 https://travis-ci.org/grap/odoo-module-migrator.svg?branch=master https://coveralls.io/repos/grap/odoo-module-migrator/badge.png?branch=master

odoo-module-migrator

odoo-module-migrator is a python3 library that allows you to realize automatically recurring changes when migrating Odoo modules from a version to another. for exemple:

  • renaming __openerp__.py file into __manifest__.py

  • removing # -*- encoding: utf-8 -*- since V11.0

  • replacing openerp import by odoo import

  • removing migrations folders

This library will so:

  • (optionnaly) get commits from the old branch (if format-patch is enabled)

  • apply automatically changes. (renaming, replacing, etc.)

  • (depending of the config and the version) black your code.

  • commit your changes.

  • Display warnings or errors in log if your code belong obsolete code patterns.

INFO log

It mentions that the lib automatically changed something. A priori you have nothing to do. For example, for a migration from 8.0 to a more recent version:

12:38:54 INFO Renaming file: '/my_module/__openerp__.py' by '/my_module/__manifest__.py'

WARNING log

It mentions that you should check something. There is maybe something to do to make the module working. For exemple:

19:37:55 WARNING Replaced dependency of 'account_analytic_analysis' by 'contract' (Moved to OCA/contract)

ERROR log

It mentions that you should change something in your code. It not, the module will not work for sure. (not installable, or generating error during the execution)

For example, if you have a 8.0 module that depends on ‘account_anglo_saxon’, that disappeared in more recent version, the following log will be displayed

12:38:54 ERROR Depends on removed module 'account_anglo_saxon'

Development and improvment

If you want to improve or complete this library, please read the DEVELOP.rst file and the ‘Roadmap / Know issues’ sections.

Installation

pip3 install odoo-module-migrator

Usage

Using Format Patch command

(Recommanded by the OCA)

If you want to migrate an Odoo module from a version 8.0 to 12.0, for exemple the module pos_order_pricelist_change in the OCA “pos” repository.

git clone https://github.com/OCA/pos -b 12.0
cd pos
odoo-module-migrator
    --directory             ./
    --modules               pos_order_pricelist_change
    --init-version-name     8.0
    --target-version-name  12.0
    --format-patch

Without format Patch command

(Mainly for your custom modules)

if you have created a new branch (for exemple 12.0) based on your 10.0 branch you can run the following command

odoo-module-migrator
    --directory             /path/to/repository
    --modules               module_1,module_2,module_3
    --init-version-name     10.0
    --target-version-name   12.0

This tools will operate the changes for each module.

Available arguments

name

shortcut

Options

description

--directory

-d

Default: ./

Local folder that belongs the module(s) to migrate.

--init-version-name

-i

Required

Initial version of your module(s) you want to migrate.

--target-version-name

-t

Default: the laster odoo version

Final Version you want to migrate.

--modules

-m

Default: All modules present in the directory

Module(s) to migrate. Note if format-patch option is enabled, you have to provide only one module.

--format-patch

-fp

disabled by default

Recover code, using git format-patch command.

--remote-name

-rn

Default: origin

Name of the main remote, used by format-patch command.

--force-black

-fb

depends on the configuration

Force to use black library.

--log-level

-ll

Default: INFO

Possible value: DEBUG, INFO, WARNING, etc.

--log-path

-lp

Default: False

If set, the logs will not be displayed at screen, but stored in a file

--no-commit

-nc

Default: commit

If set the library will not git add and git commit changes.

Roadmap / Know issues

  • replacement of tag <openerp><data> by <odoo> will fail in the case where there are many <data> occurency. We could fix that, using lxml lib instead of regular expression.

Changes

0.2.0 (October 13, 2019)

  • Second release

0.1.4 (October 12, 2019)

  • Test

[ADD] test

  • framework

[ADD] --file-path option. [ADD] _DEPRECATED_MODULES syntax.

  • migration script

[FIX] Incorrect syntax of regular expression, to remove python 2 header [IMP] first release of all the steps from 8.0 to 13.0

0.1.3 (October 11, 2019)

  • framework

[ADD] --no-commit option that disable git add and git commit calls [FIX] do not commit many times if migration has many steps. [REF] remove useless commented code [REF] create _commit_changes() and _replace_in_file() functions

  • Meta

[FIX] github url of the project in setup.py [ADD] Travis file + links to coveralls [ADD] test_requirements.txt

  • migration script

[ADD] 12.0 to 13.0 and add a warning if reference to web_settings_dashboard are found. cortesy @yelizariev [ADD] bump version in manifest file [ADD] set installable to True

0.1.2 (October 10, 2019)

  • First release

Credits

Authors

Contributors

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

odoo-module-migrator-0.3.1.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

odoo_module_migrator-0.3.1-py3-none-any.whl (32.5 kB view details)

Uploaded Python 3

File details

Details for the file odoo-module-migrator-0.3.1.tar.gz.

File metadata

  • Download URL: odoo-module-migrator-0.3.1.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.6.8

File hashes

Hashes for odoo-module-migrator-0.3.1.tar.gz
Algorithm Hash digest
SHA256 6e6e985b286085d9e6d3dbe0b714e2213eede0ad41b54a52d04aaa42d950353a
MD5 8b54383620d7a0b81333a02f12790328
BLAKE2b-256 f7c5dd9694f2157566ce6a462fc61496c30fcf7b7c0e0cd92a5d545da7ff1066

See more details on using hashes here.

File details

Details for the file odoo_module_migrator-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: odoo_module_migrator-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 32.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.6.8

File hashes

Hashes for odoo_module_migrator-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e4b452698bfd8fc1075f5895e0011feff97aadd0c4cf1e507fb78333497ea496
MD5 f15759a8411ff9cd3f68e5ecff62224c
BLAKE2b-256 259885a25aeea82afd0d946ef69b852d1cf251b57a1b4a6a9ffd298bb75bc5dd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page