Skip to main content

Small CLI tool for Odoo

Project description

odoo-tools-grap

License: AGPL v3

PyPI - Python Version PyPI - Downloads GitLab last commit GitLab stars

This tools provide extra cli commands to simplify recurring operations for Odoo developers.

  • To develop and contribute to the library, refer to the DEVELOP.md file.
  • Refer to the ROADMAP.md file to see the current limitation, bugs, and task to do.
  • See authors in the CONTRIBUTORS.md file.

Table of Contents

Installation

The library is available on PyPI.

To install it simply run :

pipx install odoo-tools-grap

(See alternative installation in DEVELOP.md file.)

Usage

Note:

The term odoo-tools-grap can be replaced by otg in all the command lines below.

Command: diff (View repositories status)

Based on a repos config file (repos.yml file, used by gitaggregate by exemple), this script will display the result of the git diff for each repository.

odoo-tools-grap diff --config repos.yml

Result Sample

2024-03-27 16:37:24.725 | WARNING  | odoo_tools_grap.cli.cli_diff:diff:31 - [BAD BRANCH] ./src/OCA/product-attribute is on 16.0-product_pricelist_simulation-various-fixes.(Should be on 16.0-current)
2024-03-27 16:37:25.395 | WARNING  | odoo_tools_grap.cli.cli_diff:diff:38 - [LOCAL CHANGES] ./src/OCA/sale-workflow has 1 local changes.
2024-03-27 16:37:25.444 | WARNING  | odoo_tools_grap.cli.cli_diff:diff:43 - [UNTRACKED] ./src/OCA/sale-workflow has 2 untracked files.

Command: generate (Generate Odoo config File)

Base on a repos config file, (repos.yml file, used by gitaggregate by exemple), and template(s) of odoo config file, this script will generate a complete config file for Odoo with addons_path depending on the repos config file.

odoo-tools-grap generate\
    --config repos.yml\
    --input-files ./template.config.cfg\
    --output-file ./odoo.cfg

Command: create-branch (Create new Orphan Branch)

This command will:

  • create a new orphan target version
  • add a copier-answers.yml file base on the previous copier answers in the initial version and commit it
  • Adapt copier answers to new GRAP conventions
  • Ask for copier answers. (At this step, answer default value to all questions)
  • Run pre-commit
  • Push the new branch on github

Before using this command, clone your repo in the previous existing branch. for exemple:

git clone git@github.com:grap/grap-odoo-custom --origin=grap --branch 12.0
cd grap-odoo-custom

Example:

odoo-tools-grap create-branch\
    --initial-version 12.0\
    --target-version 16.0\
    --remote grap\
    --copier-url https://github.com/grap/oca-addons-repo-template-v16

Command: migrate (Migrate module from a version to another)

This command will:

  • Pull the last commits of the initial version
  • Pull the last commits of the target version
  • Create a new branch named for the module to migrate
  • Cherry pick commits of the module to migrate. See OCA Documentation
  • Eventually merge neighboring commits. (if the commit contains --fixup, or have the same name)
  • Run pre-commit and commit changes
  • Call odoo-module-migrate
  • (At this step, please note warning and error that should be fixed in a second step)
  • Commit changes
  • Push the new branch on github
  • Create a new draft Pull Request

Before using this command:

  • you should be in the folder of the repository. (created with create-branch command.)
  • having added your personal remote with git remote add YOUR-GITHUB-ACCOUNT git@github.com:YOUR-GITHUB-ACCOUNT/grap-odoo-custom
odoo-tools-grap migrate\
    --initial-version 12.0\
    --target-version 16.0\
    --modules grap_cooperative\
    --distant-remote grap\
    --local-remote YOUR-GITHUB-ACCOUNT\
    --github-token-file ABSOLUTE-PATH-TO-A-FILE-THAT-CONTAINS-GITHUB-TOKEN

Prerequites

To understand this tool:

  • You need to know the following tools:
    • gitaggregate tools ([https://github.com/acsone/git-aggregator])
    • odoo-module-migrate tools ([https://github.com/OCA/odoo-module-migrator])
  • Understand the OCA migration process

Credits

Authors

  • GRAP, Groupement Régional Alimentaire de Proximité ([http://www.grap.coop])

Contributors

  • Sylvain LE GAL, from GRAP ([http://www.grap.coop])

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_tools_grap-1.3.4.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

odoo_tools_grap-1.3.4-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file odoo_tools_grap-1.3.4.tar.gz.

File metadata

  • Download URL: odoo_tools_grap-1.3.4.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.12.3 Linux/6.14.0-33-generic

File hashes

Hashes for odoo_tools_grap-1.3.4.tar.gz
Algorithm Hash digest
SHA256 ddc6c807890c85d80f615f4f1e2ecc1e6623288d9f81a89dceba7aa644e875c3
MD5 440d8b098a726d23a72caa361e68b6b2
BLAKE2b-256 dc95a3eecbfeee20085157c058c24a50fa8291c2a6470ec68a72317d70aee661

See more details on using hashes here.

File details

Details for the file odoo_tools_grap-1.3.4-py3-none-any.whl.

File metadata

  • Download URL: odoo_tools_grap-1.3.4-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.12.3 Linux/6.14.0-33-generic

File hashes

Hashes for odoo_tools_grap-1.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 438dde7a4887366b957230b2e5a8768e7cab49c4b844bcdd115f8004e65d65b7
MD5 9e8e20f6e0df85f4c0756de05bb82384
BLAKE2b-256 db9a7eb0345b1cadc5e33097e033b8d97be7a7d72beaffb4e505c02db08c2a60

See more details on using hashes here.

Supported by

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