release: v1.2.0 — About+update checker, log viewer, restart button, dup-name fix, stale-file hardening #26
Reference in New Issue
Block a user
Delete Branch "release/v1.2.0"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Integration of the five reviewed feature branches for the v1.2.0 release, merged with real git 3-way merges, conflicts resolved, and verified green locally (
ruff format --check,ruff check,pytest~138 tests pass).Closes #6
Closes #8
Closes #9
Closes #17
Closes #18
Closes #19
Included
__version__single source, numeric version compare, fail-quiet tokenless releases fetch, throttled once/day startup check). (PR #25)server_log_path()+ read-only auto-tailingLogViewerDialog). (PR #23)ConfigStat/config_fingerprint). (PR #22)_import_serverprompt + pureresolve_name_collision. (PR #21)Conflict resolutions
_normalize_unicodeNBSP line — kept the singleout.replace(chr(0xA0), " ")form (all branches were equivalent).bcc.py—LogViewerDialog(#6) andAboutDialog(#18/19) both inserted a class at the same anchor; kept both. Imports andMainWindowhooks merged cleanly.tests/test_core.py— each branch appended tests at EOF; concatenated all.__version__,pyproject.toml, andtest_dunder_version_matches_pyproject.Supersedes the individual feature PRs #21–#25 (to be closed on merge).
- Add `__version__ = "1.1.0"` as the single source of truth (matches pyproject.toml). - Add parse_version()/is_newer_version() for numeric (never lexical) version comparison, handling v-prefix, pre-release suffixes, and malformed input. - Add fetch_latest_release(): reads the public Gitea releases API (anonymous, no token) and returns {version, url} or None on any failure. Never downloads or touches a binary — metadata only.