[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/odoo-tools-grap)
![PyPI - Downloads](https://img.shields.io/pypi/dm/odoo-tools-grap)
![GitLab last commit](https://img.shields.io/gitlab/last-commit/34780558)
![GitLab stars](https://img.shields.io/gitlab/stars/34780558?style=social)
# 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.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](#installation)
* [Usage](#usage)
* [Command ``diff`` (View repositories status)](#command-diff)
* [Command ``generate`` (Generate Odoo config File)](#command-generate)
* [Command ``create-branch`` (Create new Orphan Branch)](#command-create-branch)
* [Command: ``migrate`` (Migrate module from a version to another)](#command-migrate)
* [Prerequites](#prerequites)
<a name="installation"/>
# Installation
The library is available on [PyPI](https://pypi.org/project/odoo-tools-grap/).
To install it simply run :
``pipx install odoo-tools-grap``
(See alternative installation in ``DEVELOP.md`` file.)
<a name="usage"/>
# Usage
**Note:**
the term ``odoo-tools-grap`` can be replaced by ``otg``
in all the command lines below.
<a name="command-diff"/>
## 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.
```
<a name="command-generate"/>
## 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
```
<a name="command-create-branch"/>
## 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
```
<a name="command-migrate"/>
## 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: https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-16.0#technical-method-to-migrate-a-module-from-150-to-160-branch
- Eventually merge neighboring commits. (if the commit contains --fixup, or have the same name)
- Run pre-commit and commit changes
- Call odoo-module-migrate (https://github.com/OCA/odoo-module-migrator)
- (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
```
<a name="prerequites"/>
# 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 following processes:
* https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-17.0#technical-method-to-migrate-a-module-from-160-to-170-branch
Raw data
{
"_id": null,
"home_page": "https://gitlab.com/grap-rhone-alpes/odoo-tools-grap",
"name": "odoo-tools-grap",
"maintainer": "Sylvain LE GAL",
"docs_url": null,
"requires_python": "<4.0.0,>=3.9",
"maintainer_email": null,
"keywords": "cli, odoo",
"author": "GRAP, Groupement R\u00e9gional Alimentaire de Proximit\u00e9",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/d3/12/c26a55ea896eae26d714ca9d225a1b67617f57786050ded3a036f411eec8/odoo_tools_grap-1.2.2.tar.gz",
"platform": null,
"description": "[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)\n\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/odoo-tools-grap)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/odoo-tools-grap)\n![GitLab last commit](https://img.shields.io/gitlab/last-commit/34780558)\n![GitLab stars](https://img.shields.io/gitlab/stars/34780558?style=social)\n\n# odoo-tools-grap\n\nThis tools provide extra cli commands to simplify recurring operations for Odoo developers.\n\n* To develop and contribute to the library, refer to the ``DEVELOP.md`` file.\n* Refer to the ``ROADMAP.md`` file to see the current limitation, bugs, and task to do.\n* See authors in the ``CONTRIBUTORS.md`` file.\n\n\n# Table of Contents\n\n* [Installation](#installation)\n* [Usage](#usage)\n * [Command ``diff`` (View repositories status)](#command-diff)\n * [Command ``generate`` (Generate Odoo config File)](#command-generate)\n * [Command ``create-branch`` (Create new Orphan Branch)](#command-create-branch)\n * [Command: ``migrate`` (Migrate module from a version to another)](#command-migrate)\n* [Prerequites](#prerequites)\n\n\n<a name=\"installation\"/>\n\n# Installation\n\nThe library is available on [PyPI](https://pypi.org/project/odoo-tools-grap/).\n\nTo install it simply run :\n\n``pipx install odoo-tools-grap``\n\n(See alternative installation in ``DEVELOP.md`` file.)\n\n<a name=\"usage\"/>\n\n# Usage\n\n**Note:**\n\nthe term ``odoo-tools-grap`` can be replaced by ``otg``\nin all the command lines below.\n\n<a name=\"command-diff\"/>\n\n## Command: ``diff`` (View repositories status)\n\nBased on a repos config file (``repos.yml file``, used by gitaggregate by\nexemple), this script will display the result of the ``git diff`` for each\nrepository.\n\n```\n odoo-tools-grap diff --config repos.yml\n```\n\n**Result Sample**\n\n```\n2024-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)\n2024-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.\n2024-03-27 16:37:25.444 | WARNING | odoo_tools_grap.cli.cli_diff:diff:43 - [UNTRACKED] ./src/OCA/sale-workflow has 2 untracked files.\n```\n\n<a name=\"command-generate\"/>\n\n## Command: ``generate`` (Generate Odoo config File)\n\nBase on a repos config file, (``repos.yml file``, used by gitaggregate by exemple),\nand template(s) of odoo config file, this script will generate a complete config file for Odoo\nwith addons_path depending on the repos config file.\n\n```\n\n odoo-tools-grap generate\\\n --config repos.yml\\\n --input-files ./template.config.cfg\\\n --output-file ./odoo.cfg\n```\n\n<a name=\"command-create-branch\"/>\n\n## Command: ``create-branch`` (Create new Orphan Branch)\n\nThis command will:\n\n- create a new orphan target version\n- add a ``copier-answers.yml`` file base on the previous copier answers in the initial version and commit it\n- Adapt copier answers to new GRAP conventions\n- Ask for copier answers. (At this step, answer default value to all questions)\n- Run pre-commit\n- Push the new branch on github\n\nBefore using this command, clone your repo in the previous existing branch.\nfor exemple:\n\n```\ngit clone git@github.com:grap/grap-odoo-custom --origin=grap --branch 12.0\ncd grap-odoo-custom\n```\n\nExample:\n\n```\nodoo-tools-grap create-branch\\\n --initial-version 12.0\\\n --target-version 16.0\\\n --remote grap\\\n --copier-url https://github.com/grap/oca-addons-repo-template-v16\n```\n\n<a name=\"command-migrate\"/>\n\n## Command: ``migrate`` (Migrate module from a version to another)\n\nThis command will:\n\n- Pull the last commits of the initial version\n- Pull the last commits of the target version\n- Create a new branch named for the module to migrate\n- Cherry pick commits of the module to migrate. See OCA Documentation: https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-16.0#technical-method-to-migrate-a-module-from-150-to-160-branch\n- Eventually merge neighboring commits. (if the commit contains --fixup, or have the same name)\n- Run pre-commit and commit changes\n- Call odoo-module-migrate (https://github.com/OCA/odoo-module-migrator)\n- (At this step, please note warning and error that should be fixed in a second step)\n- Commit changes\n- Push the new branch on github\n- Create a new draft Pull Request\n\nBefore using this command:\n\n- you should be in the folder of the repository. (created with ``create-branch`` command.)\n- having added your personal remote with\n ``git remote add YOUR-GITHUB-ACCOUNT git@github.com:YOUR-GITHUB-ACCOUNT/grap-odoo-custom``\n\n```\nodoo-tools-grap migrate\\\n --initial-version 12.0\\\n --target-version 16.0\\\n --modules grap_cooperative\\\n --distant-remote grap\\\n --local-remote YOUR-GITHUB-ACCOUNT\\\n --github-token-file ABSOLUTE-PATH-TO-A-FILE-THAT-CONTAINS-GITHUB-TOKEN\n```\n\n<a name=\"prerequites\"/>\n\n# Prerequites\n\nTo understand this tool:\n\n* You need to know the following tools:\n\n * ``gitaggregate`` tools (https://github.com/acsone/git-aggregator)\n * ``odoo-module-migrate`` tools (https://github.com/OCA/odoo-module-migrator)\n\n* Understand the following processes:\n\n * https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-17.0#technical-method-to-migrate-a-module-from-160-to-170-branch\n",
"bugtrack_url": null,
"license": "AGPLv3+",
"summary": "Small CLI tool for Odoo",
"version": "1.2.2",
"project_urls": {
"Homepage": "https://gitlab.com/grap-rhone-alpes/odoo-tools-grap",
"Repository": "https://gitlab.com/grap-rhone-alpes/odoo-tools-grap"
},
"split_keywords": [
"cli",
" odoo"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "286a2a41acf6708b9463d3a9a77ac020e04c03adbea1d68763e1e2f97a5d2bd7",
"md5": "5163c1c14c70e54d52efc2c96b53bd16",
"sha256": "16a5c84ce9594fbb233e8be890205aaa311acae91d121a6e8bf383bdb673718a"
},
"downloads": -1,
"filename": "odoo_tools_grap-1.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5163c1c14c70e54d52efc2c96b53bd16",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0.0,>=3.9",
"size": 11264,
"upload_time": "2024-06-05T00:39:48",
"upload_time_iso_8601": "2024-06-05T00:39:48.393904Z",
"url": "https://files.pythonhosted.org/packages/28/6a/2a41acf6708b9463d3a9a77ac020e04c03adbea1d68763e1e2f97a5d2bd7/odoo_tools_grap-1.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d312c26a55ea896eae26d714ca9d225a1b67617f57786050ded3a036f411eec8",
"md5": "881640e9e71a919e0664234282c02757",
"sha256": "ced96c48cb1e7aae2f92fa0b5b9040c57cce3fb618f111dba917f1d656a82fa4"
},
"downloads": -1,
"filename": "odoo_tools_grap-1.2.2.tar.gz",
"has_sig": false,
"md5_digest": "881640e9e71a919e0664234282c02757",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0.0,>=3.9",
"size": 10113,
"upload_time": "2024-06-05T00:39:49",
"upload_time_iso_8601": "2024-06-05T00:39:49.788505Z",
"url": "https://files.pythonhosted.org/packages/d3/12/c26a55ea896eae26d714ca9d225a1b67617f57786050ded3a036f411eec8/odoo_tools_grap-1.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-05 00:39:49",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "grap-rhone-alpes",
"gitlab_project": "odoo-tools-grap",
"lcname": "odoo-tools-grap"
}