move bumpversion to pyproject, update workflow, add database configuration to config class
This commit is contained in:
@@ -1,24 +0,0 @@
|
||||
[tool.bumpversion]
|
||||
current_version = "0.1.6"
|
||||
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
|
||||
serialize = ["{major}.{minor}.{patch}"]
|
||||
search = "{current_version}"
|
||||
replace = "{new_version}"
|
||||
regex = false
|
||||
ignore_missing_version = false
|
||||
ignore_missing_files = false
|
||||
tag = true
|
||||
sign_tags = false
|
||||
tag_name = "v{new_version}"
|
||||
tag_message = "Bump version: {current_version} → {new_version}"
|
||||
allow_dirty = false
|
||||
commit = true
|
||||
message = "Bump version: {current_version} → {new_version}"
|
||||
moveable_tags = []
|
||||
commit_args = ""
|
||||
setup_hooks = []
|
||||
pre_commit_hooks = []
|
||||
post_commit_hooks = []
|
||||
|
||||
[[tool.bumpversion.files]]
|
||||
filename = "pyproject.toml"
|
||||
@@ -1,10 +1,6 @@
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
release_notes:
|
||||
description: Release notes (use \n for newlines)
|
||||
type: string
|
||||
required: false
|
||||
github_release:
|
||||
description: 'Create Gitea Release'
|
||||
default: true
|
||||
@@ -48,13 +44,15 @@ jobs:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
branch: ${{ github.ref }}
|
||||
|
||||
- name: Create release notes
|
||||
run: |
|
||||
mkdir release_notes
|
||||
echo -e "${{ inputs.release_notes }}" >> release_notes/release_notes.md
|
||||
echo "Release notes:"
|
||||
cat release_notes/release_notes.md
|
||||
echo ""
|
||||
- name: Build Changelog
|
||||
id: build_changelog
|
||||
uses: https://github.com/mikepenz/release-changelog-builder-action@v5
|
||||
with:
|
||||
platform: "gitea"
|
||||
baseURL: "http://gitea:3000"
|
||||
configuration: ".gitea/changelog-config.json"
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
||||
- name: Build package
|
||||
run: uv build
|
||||
- name: Publish package
|
||||
@@ -70,7 +68,7 @@ jobs:
|
||||
with:
|
||||
tag_name: ${{ env.VERSION }}
|
||||
release_name: Release ${{ env.VERSION }}
|
||||
body_path: release_notes/release_notes.md
|
||||
body: ${{steps.build_changelog.outputs.changelog}}
|
||||
draft: false
|
||||
prerelease: false
|
||||
make_latest: true
|
||||
|
||||
@@ -13,3 +13,25 @@ build-backend = "hatchling.build"
|
||||
|
||||
[dependency-groups]
|
||||
test = ["pytest>=8.3.4"]
|
||||
|
||||
[tool.bumpversion]
|
||||
current_version = "0.1.6"
|
||||
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
|
||||
serialize = ["{major}.{minor}.{patch}"]
|
||||
search = "{current_version}"
|
||||
replace = "{new_version}"
|
||||
regex = false
|
||||
ignore_missing_version = false
|
||||
ignore_missing_files = false
|
||||
tag = true
|
||||
sign_tags = false
|
||||
tag_name = "v{new_version}"
|
||||
tag_message = "Bump version: {current_version} → {new_version}"
|
||||
allow_dirty = false
|
||||
commit = true
|
||||
message = "Bump version: {current_version} → {new_version}"
|
||||
moveable_tags = []
|
||||
commit_args = ""
|
||||
setup_hooks = []
|
||||
pre_commit_hooks = []
|
||||
post_commit_hooks = []
|
||||
@@ -1,13 +1,48 @@
|
||||
from dataclasses import dataclass
|
||||
from typing import List, Optional
|
||||
from typing import List, Optional, Union
|
||||
import os
|
||||
from omegaconf import OmegaConf, DictConfig
|
||||
from pathlib import Path
|
||||
from komconfig import CONFIG_PATH
|
||||
from urllib.parse import quote_plus
|
||||
|
||||
SETTINGS_PATH = os.path.join(CONFIG_PATH, "config.yaml")
|
||||
@dataclass
|
||||
class RemoteSettings:
|
||||
url: str
|
||||
port: int
|
||||
user: str
|
||||
password: str
|
||||
database_name: str = "komcache"
|
||||
|
||||
|
||||
@dataclass
|
||||
class Cache:
|
||||
mode: str
|
||||
remote: dict[str, Union[str, int]] |RemoteSettings
|
||||
local_path: str | Path
|
||||
|
||||
|
||||
|
||||
def __post__init__(self):
|
||||
if self.mode == "remote":
|
||||
self.remote = RemoteSettings(**self.remote)
|
||||
else:
|
||||
self.remote = None
|
||||
self.local_path = Path(self.local_path).expanduser()
|
||||
|
||||
@property
|
||||
def path(self):
|
||||
if self.mode == "local":
|
||||
return Path(self.local_path).expanduser()
|
||||
else:
|
||||
return f"{self.remote.url}:{self.remote.port}"
|
||||
|
||||
@property
|
||||
def url(self):
|
||||
password = quote_plus(self.remote.password) if self.remote else ""
|
||||
return f"mysql+pymysql://{self.remote.user}:{password}@{self.remote.url}:{self.remote.port}/{self.remote.database_name}"
|
||||
|
||||
@dataclass
|
||||
class Komga:
|
||||
"""Komga server settings."""
|
||||
@@ -328,6 +363,10 @@ class Settings:
|
||||
@property
|
||||
def komtagger(self):
|
||||
return KomTagger(**self._config.komtagger)
|
||||
|
||||
@property
|
||||
def cache(self):
|
||||
return Cache(**self._config.cache)
|
||||
|
||||
def komtagger_attr(self, name):
|
||||
return getattr(self.komtagger, name)
|
||||
|
||||
Reference in New Issue
Block a user