v1.2.1: clickable update-available hyperlink in header
This commit is contained in:
parent
88f282f1e0
commit
816cc9a459
5 changed files with 18 additions and 7 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
|
@ -7,7 +7,10 @@ dist/
|
|||
__pycache__/
|
||||
*.py[cod]
|
||||
|
||||
# Distribution staging folders (built per-version, attached to GitHub Releases)
|
||||
# Local build cache (prod/test/old portable folders per version)
|
||||
builds/
|
||||
|
||||
# Legacy staging folders (kept for compatibility with old checkouts)
|
||||
portable-v*/
|
||||
|
||||
# Local backup of release archives (kept locally for history, not in repo)
|
||||
|
|
|
|||
|
|
@ -6,6 +6,11 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
|
|||
|
||||
## [Unreleased]
|
||||
|
||||
## [1.2.1] - 2026-05-18
|
||||
### Changed
|
||||
- The `Update available (vX.Y.Z)` hint in the header is now a clickable hyperlink that opens the GitHub releases page (OSC 8 terminal hyperlink). Modern terminals (Windows Terminal, VS Code, WezTerm, most Linux/macOS terminals) render it as a link — `Ctrl+Click` to follow. Older consoles show the plain text, so nothing breaks.
|
||||
- Russian tagline tightened: dropped the `для инженера` phrase, the wording was carried over from an earlier draft and felt out of place.
|
||||
|
||||
## [1.2.0] - 2026-05-18
|
||||
### Added
|
||||
- Russian UI translation. On first launch the application asks which language to use (`1) English`, `2) Русский`) and writes the answer to a fresh `config.ini` next to `dhcpsrv.exe`. To change the language later, edit `language = en` / `language = ru` in that file — the comment at the top of the file explains how, in both languages.
|
||||
|
|
@ -46,7 +51,8 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
|
|||
- Scrollback cleared on startup so mouse-wheel doesn't expose pre-launch text.
|
||||
- MIT licensed.
|
||||
|
||||
[Unreleased]: https://github.com/Engelgardt23/dhcpsrv/compare/v1.2.0...HEAD
|
||||
[Unreleased]: https://github.com/Engelgardt23/dhcpsrv/compare/v1.2.1...HEAD
|
||||
[1.2.1]: https://github.com/Engelgardt23/dhcpsrv/compare/v1.2.0...v1.2.1
|
||||
[1.2.0]: https://github.com/Engelgardt23/dhcpsrv/compare/v1.1.3...v1.2.0
|
||||
[1.1.3]: https://github.com/Engelgardt23/dhcpsrv/compare/v1.1.2...v1.1.3
|
||||
[1.1.2]: https://github.com/Engelgardt23/dhcpsrv/compare/v1.1.1...v1.1.2
|
||||
|
|
|
|||
|
|
@ -6,5 +6,5 @@ The single source of truth for the project version. Bump this before tagging
|
|||
a release; CI reads the tag, the code reads this constant.
|
||||
"""
|
||||
|
||||
__version__ = "1.2.0"
|
||||
__version__ = "1.2.1"
|
||||
GITHUB_REPO = "Engelgardt23/dhcpsrv"
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ from rich.console import Console
|
|||
from rich.prompt import Confirm, Prompt
|
||||
from rich.table import Table
|
||||
|
||||
from . import __version__
|
||||
from . import __version__, GITHUB_REPO
|
||||
from .platform_win import enable_vt, require_admin
|
||||
from .update_check import check_for_update
|
||||
from .network import list_adapters, set_static_ip, revert_to_dhcp
|
||||
|
|
@ -53,10 +53,12 @@ def main() -> None:
|
|||
title = f"[bold cyan]dhcpsrv v{__version__}[/] {t('tagline')}"
|
||||
latest = check_for_update()
|
||||
if latest:
|
||||
release_url = f"https://github.com/{GITHUB_REPO}/releases/latest"
|
||||
notice = t("update_available", tag=latest)
|
||||
header = Table.grid(expand=True)
|
||||
header.add_column(justify="left", ratio=1)
|
||||
header.add_column(justify="right")
|
||||
header.add_row(title, f"[dim]{t('update_available', tag=latest)}[/]")
|
||||
header.add_row(title, f"[dim][link={release_url}]{notice}[/link][/]")
|
||||
console.print(header)
|
||||
else:
|
||||
console.print(title)
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ STRINGS: dict[str, dict[str, str]] = {
|
|||
"en": {
|
||||
# app.py / startup
|
||||
"tagline": "- portable laptop-side DHCP server",
|
||||
"update_available": "update available ({tag})",
|
||||
"update_available": "Update available ({tag})",
|
||||
"available_adapters": "Available adapters",
|
||||
"no_adapters": "No suitable wired adapters found.",
|
||||
"select_adapter": "Select adapter number",
|
||||
|
|
@ -57,7 +57,7 @@ STRINGS: dict[str, dict[str, str]] = {
|
|||
},
|
||||
"ru": {
|
||||
"tagline": "— портативный DHCP-сервер",
|
||||
"update_available": "доступно обновление ({tag})",
|
||||
"update_available": "Доступно обновление ({tag})",
|
||||
"available_adapters": "Доступные адаптеры",
|
||||
"no_adapters": "Подходящие проводные адаптеры не найдены.",
|
||||
"select_adapter": "Введите номер адаптера",
|
||||
|
|
|
|||
Loading…
Reference in a new issue