odoo-tools-grap
This tools provide extra cli commands to simplify recurring operations for Odoo developers.
- To develop and contribute to the library, refer to the
DEVELOP.mdfile. - Refer to the
ROADMAP.mdfile to see the current limitation, bugs, and task to do. - See authors in the
CONTRIBUTORS.mdfile.
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.ymlfile 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-branchcommand.) - 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
Command: rebase (Rebase all branches of a repos.yml file)
This command will:
- rebase each branch defined in the repos.yml file.
- push the rebased branch on github.
odoo-tools-grap rebase\
--config-repo-file ./repos.yml\
--version 16.0\
--remotes grap --remotes legalsylvain\
--github-token-file ABSOLUTE-PATH-TO-A-FILE-THAT-CONTAINS-GITHUB-TOKEN
Prerequites
To understand this tool:
- You need to know the following tools:
gitaggregatetools (https://github.com/acsone/git-aggregator)odoo-module-migratetools (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)
Metadata
Release files for odoo-tools-grap 1.3.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| odoo_tools_grap-1.3.7.tar.gz | 11.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| odoo_tools_grap-1.3.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.7 kB
Release files / odoo_tools_grap-1.3.7.tar.gz
| Download URL | odoo_tools_grap-1.3.7.tar.gz |
|---|---|
| Size | 11.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4c487d144c33c9f20f5b45beb28f436149e60ae30a556bff7bb000667dc6ada4
|
|
BLAKE2b-256 checksum How to use checksums |
a497ae5e31e2470eb0e0f60dc89227b6d0de3d5055aeb7a025cbe85bdba373f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.2.1 CPython/3.12.3 Linux/6.14.0-33-generic
|
Release files / odoo_tools_grap-1.3.7-py3-none-any.whl
| Download URL | odoo_tools_grap-1.3.7-py3-none-any.whl |
|---|---|
| Size | 13.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0e42eac325ba544bfdf3bfc18fe55115bb97a527ba47a0032c111e06fa300de3
|
|
BLAKE2b-256 checksum How to use checksums |
2fc3c64202b008df58bf23dd9ce2af952d06df09dd386f8fc4d55a0327a54bb6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.2.1 CPython/3.12.3 Linux/6.14.0-33-generic
|
Security for odoo-tools-grap 1.3.7
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.