🩹(backend) get current release from pyproject.toml
"get_release" was returning NA, we fixed it by getting the version from pyproject.toml, to do so we use tomllib Since tomllib is a native library from Python 3.11, we bump the required version to 3.11 on the pyproject.toml.
This commit is contained in:
@@ -10,8 +10,8 @@ For the full list of settings and their values, see
|
|||||||
https://docs.djangoproject.com/en/3.1/ref/settings/
|
https://docs.djangoproject.com/en/3.1/ref/settings/
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import json
|
|
||||||
import os
|
import os
|
||||||
|
import tomllib
|
||||||
|
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
@@ -27,19 +27,12 @@ DATA_DIR = os.path.join("/", "data")
|
|||||||
def get_release():
|
def get_release():
|
||||||
"""
|
"""
|
||||||
Get the current release of the application
|
Get the current release of the application
|
||||||
|
|
||||||
By release, we mean the release from the version.json file à la Mozilla [1]
|
|
||||||
(if any). If this file has not been found, it defaults to "NA".
|
|
||||||
|
|
||||||
[1]
|
|
||||||
https://github.com/mozilla-services/Dockerflow/blob/master/docs/version_object.md
|
|
||||||
"""
|
"""
|
||||||
# Try to get the current release from the version.json file generated by the
|
|
||||||
# CI during the Docker image build
|
|
||||||
try:
|
try:
|
||||||
with open(os.path.join(BASE_DIR, "version.json"), encoding="utf8") as version:
|
with open(os.path.join(BASE_DIR, "pyproject.toml"), "rb") as f:
|
||||||
return json.load(version)["version"]
|
pyproject_data = tomllib.load(f)
|
||||||
except FileNotFoundError:
|
return pyproject_data["project"]["version"]
|
||||||
|
except (FileNotFoundError, KeyError):
|
||||||
return "NA" # Default: not available
|
return "NA" # Default: not available
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -17,13 +17,13 @@ classifiers = [
|
|||||||
"License :: OSI Approved :: MIT License",
|
"License :: OSI Approved :: MIT License",
|
||||||
"Natural Language :: English",
|
"Natural Language :: English",
|
||||||
"Programming Language :: Python :: 3",
|
"Programming Language :: Python :: 3",
|
||||||
"Programming Language :: Python :: 3.10",
|
"Programming Language :: Python :: 3.12",
|
||||||
]
|
]
|
||||||
description = "An application to print markdown to pdf from a set of managed templates."
|
description = "An application to print markdown to pdf from a set of managed templates."
|
||||||
keywords = ["Django", "Contacts", "Templates", "RBAC"]
|
keywords = ["Django", "Contacts", "Templates", "RBAC"]
|
||||||
license = { file = "LICENSE" }
|
license = { file = "LICENSE" }
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.10"
|
requires-python = ">=3.12"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"boto3==1.35.44",
|
"boto3==1.35.44",
|
||||||
"Brotli==1.1.0",
|
"Brotli==1.1.0",
|
||||||
@@ -127,6 +127,7 @@ select = [
|
|||||||
[tool.ruff.lint.isort]
|
[tool.ruff.lint.isort]
|
||||||
section-order = ["future","standard-library","django","third-party","impress","first-party","local-folder"]
|
section-order = ["future","standard-library","django","third-party","impress","first-party","local-folder"]
|
||||||
sections = { impress=["core"], django=["django"] }
|
sections = { impress=["core"], django=["django"] }
|
||||||
|
extra-standard-library = ["tomllib"]
|
||||||
|
|
||||||
[tool.ruff.lint.per-file-ignores]
|
[tool.ruff.lint.per-file-ignores]
|
||||||
"**/tests/*" = ["S", "SLF"]
|
"**/tests/*" = ["S", "SLF"]
|
||||||
|
|||||||
Reference in New Issue
Block a user