14 Commits

Author SHA1 Message Date
Gitea CI
9b20484753 Bump version: 0.2.0 → 0.2.1 2025-05-29 09:32:44 +00:00
e5ede589e7 Merge pull request 'dev to main' (#12) from dev into main
Reviewed-on: #12
2025-05-29 10:32:23 +01:00
c7089edfdc Delete .bumpversion.toml 2025-05-29 10:31:28 +01:00
1ed1403c43 allow dirty bumps, manually adjust version to match remote version 2025-05-29 11:30:24 +02:00
40d6e8824e move bumpversion to pyproject, update workflow, add database configuration to config class 2025-05-29 11:28:55 +02:00
Gitea CI
d4ef36a54b Bump version: 0.1.9 → 0.2.0 2025-05-23 14:52:49 +00:00
8a0b73c60d Merge pull request 'refactor: update release notes handling in build workflow' (#10) from dev into main
Reviewed-on: #10
2025-05-23 15:50:59 +01:00
c9d6d5de8f refactor: update release notes handling in build workflow 2025-05-23 16:50:41 +02:00
Gitea CI
8d8e7549f6 Bump version: 0.1.8 → 0.1.9 2025-05-23 14:47:46 +00:00
5f09116071 Merge pull request 'refactor: remove changelog generation and use release notes for release body' (#9) from dev into main
Reviewed-on: #9
2025-05-23 15:46:55 +01:00
26ef555765 refactor: remove changelog generation and use release notes for release body 2025-05-23 16:45:59 +02:00
Gitea CI
ea68370451 Bump version: 0.1.7 → 0.1.8 2025-05-23 14:43:37 +00:00
2343d66fe2 Merge pull request 'fix: update changelog generator token to use GITHUB_TOKEN' (#8) from dev into main
Reviewed-on: #8
2025-05-23 15:43:10 +01:00
302599bb80 fix: update changelog generator token to use GITHUB_TOKEN 2025-05-23 16:36:02 +02:00
4 changed files with 74 additions and 47 deletions

View File

@@ -1,24 +0,0 @@
[tool.bumpversion]
current_version = "0.1.7"
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"

View File

@@ -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,28 +44,22 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: ${{ github.ref }}
- name: Add release notes to environment
id: add_release_notes
run: |
echo "RELEASE_NOTES<<EOF" >> $GITHUB_ENV
echo "${{ github.event.inputs.release_notes }}" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- 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
env:
USERNAME: ${{ github.repository_owner }}
run: uv publish --publish-url https://git.theprivateserver.de/api/packages/$USERNAME/pypi/ -t ${{ secrets.TOKEN }}
- name: Generate changelog
id: changelog
uses: metcalfc/changelog-generator@v4.6.2
with:
token: ${{ secrets.TOKEN }}
- name: Get the changelog
run: |
cat << "EOF"
${{ steps.changelog.outputs.changelog }}
EOF
- name: Create release
id: create_release
@@ -78,7 +68,7 @@ jobs:
with:
tag_name: ${{ env.VERSION }}
release_name: Release ${{ env.VERSION }}
body: ${{ steps.changelog.outputs.changelog }}
body: ${{steps.build_changelog.outputs.changelog}}
draft: false
prerelease: false
make_latest: true

View File

@@ -1,6 +1,6 @@
[project]
name = "komconfig"
version = "0.1.7"
version = "0.2.1"
description = "A small library providing a config class that provides settings data for the KomSuite"
readme = "README.md"
authors = [{ name = "WorldTeacher", email = "coding_contact@pm.me" }]
@@ -13,3 +13,25 @@ build-backend = "hatchling.build"
[dependency-groups]
test = ["pytest>=8.3.4"]
[tool.bumpversion]
current_version = "0.2.1"
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 = true
commit = true
message = "Bump version: {current_version} → {new_version}"
moveable_tags = []
commit_args = ""
setup_hooks = []
pre_commit_hooks = []
post_commit_hooks = []

View File

@@ -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)