Skip to content
Snippets Groups Projects

:sparkles: Also check $HOME/src/user/VERSION for a version number.

Merged Vincent Hatakeyama requested to merge topic/16.0/odoo-sh into branch/16.0
4 files
+ 74
32
Compare changes
  • Side-by-side
  • Inline
Files
4
+ 48
30
@@ -29,6 +29,8 @@
_logger = logging.getLogger(__name__)
# Name of the environment variable containing a Python package name.
PACKAGE_NAME_ENV: str = "VERSION_PACKAGE"
# Name of the environment variable that can contain a path to a version number.
_VERSION_FILE_ENV_VAR: str = "ODOO_ADDON_VERSION_FILE"
class CodeVersion(models.AbstractModel):
@@ -45,5 +47,6 @@
:return: tuple with the version string and a debug string with more detail
:rtype: tuple[str, str]
"""
version_string: str = ""
# Fallback if nothing found
version_string: str = ""
full_version_info: list[str] = []
@@ -49,27 +52,26 @@
full_version_info: list[str] = []
# Add package name if package is specified
package_name = os.environ.get(PACKAGE_NAME_ENV, None)
if package_name:
try:
version_string = version(package_name)
full_version_info.append(f"{package_name}: {version_string}")
except PackageNotFoundError:
# An incorrect package was provided
_logger.warning(
"Package %s not found (provided with environment variable %s)",
package_name,
PACKAGE_NAME_ENV,
)
for env_var in ("VERSION", "SENTRY_RELEASE"):
env_var_value = os.environ.get(env_var, None)
if env_var_value is not None:
full_version_info.append(f"{env_var}={env_var_value}")
if not version_string:
version_string = env_var_value
# marabunta information
# Test marabunta table existence, which should be present due to
# the environment variable
# Compatibility with odoo.sh where setting an environment variable is not
# possible: use $HOME/src/user/VERSION content if it exists or
# use ODOO_ADDON_VERSION_FILE if set.
if _VERSION_FILE_ENV_VAR in os.environ or "HOME" in os.environ:
version_file = (
os.environ[_VERSION_FILE_ENV_VAR]
if _VERSION_FILE_ENV_VAR in os.environ
else os.path.join(os.environ["HOME"], "src", "user", "VERSION")
)
if os.path.exists(version_file):
with open(version_file, "r") as f:
version_string = f.read().split("\n")[0]
full_version_info.append(_("Version File: %s", version_string))
else:
if _VERSION_FILE_ENV_VAR in os.environ:
_logger.warning(
"File %s not found (provided with environment variable %s)",
version_file,
_VERSION_FILE_ENV_VAR,
)
# Use marabunta information
# Test marabunta table existence
self.env.cr.execute(
"SELECT EXISTS(SELECT relname FROM pg_class WHERE relname = "
"'marabunta_version')"
@@ -99,8 +101,7 @@
)
if marabunta_migration_file:
if (
not version_string
and marabunta_force_version
marabunta_force_version
and marabunta_force_version != marabunta_latest_done_version
):
version_string = _("⚠ %s") % marabunta_force_version
@@ -104,5 +105,5 @@
and marabunta_force_version != marabunta_latest_done_version
):
version_string = _("⚠ %s") % marabunta_force_version
if not version_string and marabunta_latest_done_version:
if marabunta_latest_done_version:
version_string = marabunta_latest_done_version
@@ -108,5 +109,22 @@
version_string = marabunta_latest_done_version
# Fallback if nothing found
if not version_string:
version_string = "😕"
# Use environment variables
for env_var in ("SENTRY_RELEASE", "VERSION"):
env_var_value = os.environ.get(env_var, None)
if env_var_value is not None:
full_version_info.append(f"{env_var}={env_var_value}")
version_string = env_var_value
# Use package name if package is specified
package_name = os.environ.get(PACKAGE_NAME_ENV, None)
if package_name:
try:
version_string = version(package_name)
full_version_info.append(f"{package_name}: {version_string}")
except PackageNotFoundError:
# An incorrect package was provided
_logger.warning(
"Package %s not found (provided with environment variable %s)",
package_name,
PACKAGE_NAME_ENV,
)
return version_string, "\n".join(full_version_info)
Loading