Merge branch 'add-repo-url' into 'main'
[ADD] repos url git log! See merge request odoo-openupgrade-wizard/odoo-openupgrade-wizard!17
This commit is contained in:
commit
0e44cad60d
37
README.md
37
README.md
|
|
@ -80,10 +80,10 @@ scripts/
|
||||||
...
|
...
|
||||||
src/
|
src/
|
||||||
env_10.0/
|
env_10.0/
|
||||||
debian_requirements.txt
|
extra_debian_requirements.txt
|
||||||
Dockerfile
|
Dockerfile
|
||||||
odoo.cfg
|
odoo.cfg
|
||||||
python_requirements.txt
|
extra_python_requirements.txt
|
||||||
repos.yml
|
repos.yml
|
||||||
src/
|
src/
|
||||||
env_11.0/
|
env_11.0/
|
||||||
|
|
@ -124,12 +124,12 @@ modules.csv
|
||||||
Repo files are pre-generated. You can update them with your custom settings.
|
Repo files are pre-generated. You can update them with your custom settings.
|
||||||
(custom branches, extra PRs, git shallow options, etc...)
|
(custom branches, extra PRs, git shallow options, etc...)
|
||||||
|
|
||||||
- ``python_requirements.txt`` enumerates the list of extra python librairies
|
- ``extra_python_requirements.txt`` enumerates the list of extra python librairies
|
||||||
required to run the odoo instance.
|
required to run the odoo instance.
|
||||||
The syntax should respect the ``pip install -r`` command.
|
The syntax should respect the ``pip install -r`` command.
|
||||||
(See : https://pip.pypa.io/en/stable/reference/requirements-file-format/)
|
(See : https://pip.pypa.io/en/stable/reference/requirements-file-format/)
|
||||||
|
|
||||||
- ``debian_requirements.txt`` enumerates the list of extra system librairies
|
- ``extra_debian_requirements.txt`` enumerates the list of extra system librairies
|
||||||
required to run the odoo instance.
|
required to run the odoo instance.
|
||||||
|
|
||||||
- ``odoo.cfg`` file. Add here extra configuration required for your custom modules.
|
- ``odoo.cfg`` file. Add here extra configuration required for your custom modules.
|
||||||
|
|
@ -144,6 +144,28 @@ extra repositories, or dependencies...
|
||||||
- In your repos.yml, preserve ``openupgrade`` and ``server-tools`` repositories
|
- In your repos.yml, preserve ``openupgrade`` and ``server-tools`` repositories
|
||||||
to have all the features of the librairies available.
|
to have all the features of the librairies available.
|
||||||
|
|
||||||
|
## Command: ``pull-submodule``
|
||||||
|
|
||||||
|
**Prerequites:** init
|
||||||
|
|
||||||
|
if you already have a repos.yml file on github / gitlab, it can be convenient to
|
||||||
|
synchronize the repository, instead of copy past the ``repos.yml`` manually.
|
||||||
|
|
||||||
|
In that case, you can add extra values, in the ``config.yml`` file in the section
|
||||||
|
|
||||||
|
```
|
||||||
|
odoo_version_settings:
|
||||||
|
12.0:
|
||||||
|
repo_url: url_of_the_repo_that_contains_a_repos_yml_file
|
||||||
|
repo_branch: 12.0
|
||||||
|
repo_file_path: repos.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
then run following command :
|
||||||
|
|
||||||
|
```
|
||||||
|
odoo-openupgrade-wizard pull-submodule
|
||||||
|
```
|
||||||
|
|
||||||
## Command: ``get-code``
|
## Command: ``get-code``
|
||||||
|
|
||||||
|
|
@ -156,7 +178,8 @@ odoo-openupgrade-wizard get-code
|
||||||
This command will simply get all the Odoo code required to run all the steps
|
This command will simply get all the Odoo code required to run all the steps
|
||||||
for your migration with the ``gitaggregate`` tools.
|
for your migration with the ``gitaggregate`` tools.
|
||||||
|
|
||||||
The code is defined in the ``repos.yml`` of each sub folders.
|
The code is defined in the ``repos.yml`` of each environment folders. (or in the
|
||||||
|
directory ``repo_submodule`` if you use ``pull-submodule`` feature.)
|
||||||
|
|
||||||
**Note**
|
**Note**
|
||||||
|
|
||||||
|
|
@ -178,10 +201,6 @@ odoo-openupgrade-wizard get-code --versions 10.0,11.0
|
||||||
|
|
||||||
This will build local docker images that will be used in the following steps.
|
This will build local docker images that will be used in the following steps.
|
||||||
|
|
||||||
This script will pull official odoo docker images, defined in the ``Dockerfile`` of
|
|
||||||
each folder, and build a custom images on top the official one, installing inside
|
|
||||||
custom librairies defined in ``debian_requirements.txt``, ``python_requirements.txt``.
|
|
||||||
|
|
||||||
At this end of this step executing the following command should show a docker image per version.
|
At this end of this step executing the following command should show a docker image per version.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ from odoo_openupgrade_wizard.cli.cli_generate_module_analysis import (
|
||||||
from odoo_openupgrade_wizard.cli.cli_get_code import get_code
|
from odoo_openupgrade_wizard.cli.cli_get_code import get_code
|
||||||
from odoo_openupgrade_wizard.cli.cli_init import init
|
from odoo_openupgrade_wizard.cli.cli_init import init
|
||||||
from odoo_openupgrade_wizard.cli.cli_install_from_csv import install_from_csv
|
from odoo_openupgrade_wizard.cli.cli_install_from_csv import install_from_csv
|
||||||
|
from odoo_openupgrade_wizard.cli.cli_pull_submodule import pull_submodule
|
||||||
from odoo_openupgrade_wizard.cli.cli_run import run
|
from odoo_openupgrade_wizard.cli.cli_run import run
|
||||||
from odoo_openupgrade_wizard.cli.cli_upgrade import upgrade
|
from odoo_openupgrade_wizard.cli.cli_upgrade import upgrade
|
||||||
from odoo_openupgrade_wizard.tools.tools_system import ensure_folder_exists
|
from odoo_openupgrade_wizard.tools.tools_system import ensure_folder_exists
|
||||||
|
|
@ -116,5 +117,6 @@ main.add_command(generate_module_analysis)
|
||||||
main.add_command(get_code)
|
main.add_command(get_code)
|
||||||
main.add_command(init)
|
main.add_command(init)
|
||||||
main.add_command(install_from_csv)
|
main.add_command(install_from_csv)
|
||||||
|
main.add_command(pull_submodule)
|
||||||
main.add_command(run)
|
main.add_command(run)
|
||||||
main.add_command(upgrade)
|
main.add_command(upgrade)
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,10 @@ from odoo_openupgrade_wizard.cli.cli_options import (
|
||||||
get_odoo_versions_from_options,
|
get_odoo_versions_from_options,
|
||||||
versions_options,
|
versions_options,
|
||||||
)
|
)
|
||||||
from odoo_openupgrade_wizard.tools.tools_odoo import get_odoo_env_path
|
from odoo_openupgrade_wizard.tools.tools_odoo import (
|
||||||
|
get_odoo_env_path,
|
||||||
|
get_repo_file_path,
|
||||||
|
)
|
||||||
from odoo_openupgrade_wizard.tools.tools_system import git_aggregate
|
from odoo_openupgrade_wizard.tools.tools_system import git_aggregate
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -24,5 +27,5 @@ def get_code(ctx, versions, jobs):
|
||||||
|
|
||||||
for odoo_version in get_odoo_versions_from_options(ctx, versions):
|
for odoo_version in get_odoo_versions_from_options(ctx, versions):
|
||||||
folder_path = get_odoo_env_path(ctx, odoo_version)
|
folder_path = get_odoo_env_path(ctx, odoo_version)
|
||||||
repo_file_path = folder_path / "repos.yml"
|
repo_file_path = get_repo_file_path(ctx, odoo_version)
|
||||||
git_aggregate(folder_path, repo_file_path, jobs)
|
git_aggregate(folder_path, repo_file_path, jobs)
|
||||||
|
|
|
||||||
51
odoo_openupgrade_wizard/cli/cli_pull_submodule.py
Normal file
51
odoo_openupgrade_wizard/cli/cli_pull_submodule.py
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
import click
|
||||||
|
from loguru import logger
|
||||||
|
|
||||||
|
from odoo_openupgrade_wizard.cli.cli_options import (
|
||||||
|
get_odoo_versions_from_options,
|
||||||
|
versions_options,
|
||||||
|
)
|
||||||
|
from odoo_openupgrade_wizard.tools.tools_odoo import get_odoo_env_path
|
||||||
|
from odoo_openupgrade_wizard.tools.tools_system import execute_check_output
|
||||||
|
|
||||||
|
|
||||||
|
@click.command()
|
||||||
|
@versions_options
|
||||||
|
@click.pass_context
|
||||||
|
def pull_submodule(ctx, versions):
|
||||||
|
"""Pull submodule that contains repos.yml file, if define in config.yml"""
|
||||||
|
|
||||||
|
for odoo_version in get_odoo_versions_from_options(ctx, versions):
|
||||||
|
version_cfg = (
|
||||||
|
ctx.obj["config"]["odoo_version_settings"][odoo_version] or {}
|
||||||
|
)
|
||||||
|
if version_cfg.get("repo_url"):
|
||||||
|
logger.info(
|
||||||
|
f"Pull repos.yml from git repository"
|
||||||
|
f" for version {odoo_version} ..."
|
||||||
|
)
|
||||||
|
submodule_path = (
|
||||||
|
get_odoo_env_path(ctx, odoo_version) / "repo_submodule"
|
||||||
|
)
|
||||||
|
if not submodule_path.exists():
|
||||||
|
execute_check_output(
|
||||||
|
[
|
||||||
|
"git",
|
||||||
|
"submodule",
|
||||||
|
"add",
|
||||||
|
"-b",
|
||||||
|
str(version_cfg["repo_branch"]),
|
||||||
|
version_cfg["repo_url"],
|
||||||
|
submodule_path,
|
||||||
|
]
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
execute_check_output(
|
||||||
|
["git", "pull", "origin", str(version_cfg["repo_branch"])],
|
||||||
|
working_directory=submodule_path,
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
logger.warning(
|
||||||
|
f"No submodule configuration found"
|
||||||
|
f" for version {odoo_version} ..."
|
||||||
|
)
|
||||||
|
|
@ -17,7 +17,6 @@ odoo_versions:
|
||||||
odoo_version_settings:
|
odoo_version_settings:
|
||||||
{%- for odoo_version in odoo_versions %}
|
{%- for odoo_version in odoo_versions %}
|
||||||
{{odoo_version}}:
|
{{odoo_version}}:
|
||||||
repo_url: False
|
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,12 +24,32 @@ from odoo_openupgrade_wizard.tools.tools_postgres import get_postgres_container
|
||||||
from odoo_openupgrade_wizard.tools.tools_system import get_script_folder
|
from odoo_openupgrade_wizard.tools.tools_system import get_script_folder
|
||||||
|
|
||||||
|
|
||||||
|
def get_repo_file_path(ctx, odoo_version: float) -> Path:
|
||||||
|
"""return the relative path of the repos.yml file
|
||||||
|
of a given odoo version"""
|
||||||
|
repo_file = False
|
||||||
|
# Check if submodule path exists
|
||||||
|
version_cfg = (
|
||||||
|
ctx.obj["config"]["odoo_version_settings"][odoo_version] or {}
|
||||||
|
)
|
||||||
|
submodule_path = get_odoo_env_path(ctx, odoo_version) / "repo_submodule"
|
||||||
|
|
||||||
|
if submodule_path.exists():
|
||||||
|
repo_file = submodule_path / version_cfg["repo_file_path"]
|
||||||
|
if repo_file.exists():
|
||||||
|
return repo_file
|
||||||
|
else:
|
||||||
|
logger.warning(f"Unable to find the repo file {repo_file}.")
|
||||||
|
repo_file = get_odoo_env_path(ctx, odoo_version) / Path("repos.yml")
|
||||||
|
if not repo_file.exists():
|
||||||
|
raise Exception(f"Unable to find the repo file {repo_file}.")
|
||||||
|
return repo_file
|
||||||
|
|
||||||
|
|
||||||
def get_odoo_addons_path(
|
def get_odoo_addons_path(
|
||||||
ctx, root_path: Path, migration_step: dict, execution_context: str = False
|
ctx, root_path: Path, migration_step: dict, execution_context: str = False
|
||||||
) -> str:
|
) -> str:
|
||||||
repo_file = get_odoo_env_path(ctx, migration_step["version"]) / Path(
|
repo_file = get_repo_file_path(ctx, migration_step["version"])
|
||||||
"repos.yml"
|
|
||||||
)
|
|
||||||
base_module_folder = get_base_module_folder(migration_step)
|
base_module_folder = get_base_module_folder(migration_step)
|
||||||
stream = open(repo_file, "r")
|
stream = open(repo_file, "r")
|
||||||
data = yaml.safe_load(stream)
|
data = yaml.safe_load(stream)
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
|
import subprocess
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
import importlib_resources
|
import importlib_resources
|
||||||
|
|
@ -104,3 +105,8 @@ def git_aggregate(folder_path: Path, config_path: Path, jobs: int):
|
||||||
|
|
||||||
def get_local_user_id():
|
def get_local_user_id():
|
||||||
return os.getuid()
|
return os.getuid()
|
||||||
|
|
||||||
|
|
||||||
|
def execute_check_output(args_list, working_directory=False):
|
||||||
|
logger.debug("Execute %s" % " ".join(args_list))
|
||||||
|
subprocess.check_output(args_list, cwd=working_directory)
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,7 @@ odoo_versions:
|
||||||
|
|
||||||
odoo_version_settings:
|
odoo_version_settings:
|
||||||
14.0:
|
14.0:
|
||||||
repo_url: False
|
|
||||||
15.0:
|
15.0:
|
||||||
repo_url: False
|
|
||||||
|
|
||||||
|
|
||||||
migration_steps:
|
migration_steps:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user