diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..d9f5596 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,45 @@ +# Changelog + +Notable changes to MeshTerm, newest first. + +The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the version +numbers follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html) — with the caveat +SemVer itself makes for a leading zero: while the major version is `0`, a **minor** bump is +allowed to change behaviour, not just add to it. + +## [Unreleased] + +## [0.2.0] — 2026-09-07 + +The first version to carry a changelog. Everything before it is in the commit log and is +deliberately not reconstructed here. + +### Added + +- This file. + +### Changed + +- The project description now says what MeshTerm is, how it reaches a radio, and which + systems it runs on, instead of naming a category. It is the PyPI summary and the package + docstring, which no longer disagree. +- The version is written in exactly one place, `meshterm/__init__.py`. The distribution + metadata reads it from there rather than repeating it, so the number on the splash screen + and the number in a built wheel cannot drift apart. +- The basemap user agent identifies the real repository and reports the running version. + It previously sent a bare `https://github.com/` and a hardcoded `0.1` to OpenFreeMap, + which is the only handle a tile operator has on a client. +- `macOS` and `Bluetooth` are spelled one way across the project. `BLE` stays where it is + an identifier — the transport name, the config keys, the CLI. + +### Fixed + +- The three commands `CONTRIBUTING.md` asks contributors to run all pass: + `python -m pytest -q`, `ruff check .`, and `ruff format --check .`. The lint gate had been + reporting 2222 errors and the format gate 154 files, so a first contributor could not tell + their own diff from the background. +- Two `TYPE_CHECKING` imports the test suite referenced but never imported, on paths that + happened never to run. + +[Unreleased]: https://github.com/jpmartineau/MeshTerm/compare/v0.2.0...HEAD +[0.2.0]: https://github.com/jpmartineau/MeshTerm/releases/tag/v0.2.0 diff --git a/meshterm/__init__.py b/meshterm/__init__.py index 4d78531..4ef5b3a 100644 --- a/meshterm/__init__.py +++ b/meshterm/__init__.py @@ -5,7 +5,7 @@ Supports USB, Bluetooth and TCP companion connection. For Windows, macOS and Lin from datetime import datetime -__version__ = "0.1.0" +__version__ = "0.2.0" __author__ = "Jean-Pierre Martineau" #: The year MeshTerm was first published; the copyright span starts here. diff --git a/pyproject.toml b/pyproject.toml index a50b810..13ba21e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "meshterm" -version = "0.1.0" +dynamic = ["version"] description = "MeshTerm is a full-featured TUI-based MeshCore client for your terminal. Supports USB, Bluetooth and TCP companion connection. For Windows, macOS and Linux." readme = "README.md" requires-python = ">=3.10" @@ -37,6 +37,11 @@ dev = [ [project.scripts] meshterm = "meshterm.cli:main" +# The one place a version is written; `[project] version` is dynamic so the package +# attribute and the distribution metadata cannot drift apart. +[tool.hatch.version] +path = "meshterm/__init__.py" + [tool.hatch.build.targets.wheel] packages = ["meshterm"]