improve version detection

This commit is contained in:
Nick Sweeting 2024-09-30 18:12:48 -07:00
parent b913e6f426
commit 66cd711df9
No known key found for this signature in database
3 changed files with 27 additions and 13 deletions

View file

@ -102,7 +102,7 @@ class BaseHook(BaseModel):
def register(self, settings):
"""Called when django.apps.AppConfig.ready() is called"""
print("REGISTERED HOOK:", self.hook_module)
# print("REGISTERED HOOK:", self.hook_module)
self._is_registered = True

View file

@ -132,8 +132,8 @@ class BasePlugin(BaseModel):
self._is_registered = True
bump_startup_progress_bar()
print('◣----------------- REGISTERED PLUGIN:', self.plugin_module, '-----------------◢')
print()
# print('◣----------------- REGISTERED PLUGIN:', self.plugin_module, '-----------------◢')
# print()
@abx.hookimpl
def ready(self, settings=None):

View file

@ -20,20 +20,34 @@ ARCHIVE_DIR: Path = DATA_DIR / 'archive' # archivebox snaps
def _detect_installed_version(PACKAGE_DIR: Path):
"""Autodetect the installed archivebox version by using pip package metadata or pyproject.toml file"""
"""Autodetect the installed archivebox version by using pip package metadata, pyproject.toml file, or package.json file"""
try:
# if in production install, use pip-installed package metadata
return importlib.metadata.version(__package__ or 'archivebox')
except importlib.metadata.PackageNotFoundError:
try:
pyproject_config = (PACKAGE_DIR / 'pyproject.toml').read_text()
for line in pyproject_config:
if line.startswith('version = '):
return line.split(' = ', 1)[-1].strip('"')
except FileNotFoundError:
# building docs, pyproject.toml is not available
return 'dev'
pass
raise Exception('Failed to detect installed archivebox version!')
try:
# if in dev Git repo dir, use pyproject.toml file
pyproject_config = (PACKAGE_DIR.parent / 'pyproject.toml').read_text().split('\n')
for line in pyproject_config:
if line.startswith('version = '):
return line.split(' = ', 1)[-1].strip('"')
except FileNotFoundError:
# building docs, pyproject.toml is not available
pass
try:
# if in dev but not in Git repo dir, fallback to using package.json file
package_json = (PACKAGE_DIR / 'package.json').read_text().split('\n')
for line in package_json:
if '"version": "' in line:
return line.replace('"', '').split(':')[-1].strip(',')
except FileNotFoundError:
pass
# raise Exception('Failed to detect installed archivebox version!')
return 'dev'
VERSION: str = _detect_installed_version(PACKAGE_DIR)