Skip to content

Commit abb9a67

Browse files
committed
fix changelog
1 parent 7f59592 commit abb9a67

5 files changed

Lines changed: 68 additions & 35 deletions

File tree

CHANGELOG.md

Lines changed: 15 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1919

2020
- Read the Docs: standard sphinx-rtd-theme palette (dark grey sidebar frame,
2121
light content panel, default blue links/headings); explicit table/body text
22-
contrast on the light panel; screenshots and figures capped at 60% width
23-
(centered) via ``docs/_static/custom.css``.
22+
contrast on the light panel; browser tab favicon uses the logo on a cream
23+
background (``scripts/generate_docs_favicon.py``); screenshots and figures
24+
capped at 60% width (centered) via ``docs/_static/custom.css``.
2425
- Docs screenshot pipeline: wizard captures use 60% of the app's normal step window
2526
size (``WIZARD_SCREENSHOT_SIZE_RATIO`` in ``tests/docs/screenshot_helpers.py``)
2627
for denser, balanced full-window PNGs on RTD.
@@ -50,38 +51,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
5051

5152
### Added
5253

53-
- Read the Docs: dark outer page background (matching the sidebar); browser tab
54-
favicon uses the application icon.
55-
56-
### Changed
57-
58-
- Clinical and session preset pill buttons grow to fit their full label (theme
59-
``max-width`` cap removed).
60-
- Step 1 and Step 2 scale name/value fields widen as needed to show the full text.
61-
62-
### Fixed
63-
64-
- Step 1 clinical preset buttons disappearing after adding a preset in settings
65-
(horizontal scroll strip sizing).
66-
- Step 3 session settings: external vertical scrollbar column (same layout as Step 1;
67-
no overlap with electrode canvases).
68-
- Dependency audit: pin ``uv>=0.11.15`` (GHSA-4gg8-gxpx-9rph).
69-
70-
## [0.4.0] - 2026-06-01
71-
72-
### Changed
73-
74-
- Step 1 clinical preset buttons scroll horizontally when they do not fit on one row.
75-
76-
### Fixed
77-
78-
- Wizard window: title-bar maximize and resize on steps 1+ (step 0 stays compact).
79-
- Step 1 initial settings: vertical scrollbar in its own column; no overlap with electrode canvases.
80-
81-
## [0.4.0b2] - 2026-05-21
82-
83-
### Added
84-
8554
- In-app **Update now** on the update-available dialog: downloads and runs the
8655
platform install scripts (``install.ps1`` on Windows, ``install.sh`` on macOS /
8756
Linux) for the selected GitHub release tag, then prompts you to restart the
@@ -90,6 +59,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9059
GitHub link) in a separate window.
9160
- ``dbs_annotator.utils.auto_update`` with optional ``dry_run=True`` (PowerShell
9261
``-WhatIf`` / ``install.sh --dry-run``) for maintainers to preview an install.
62+
- Read the Docs: dark outer page background (matching the sidebar); browser tab
63+
favicon uses the application icon.
9364
- Read the Docs screenshot pipeline: home screen (light and dark theme), clinical
9465
and session scales settings dialogs, and regenerated workflow captures at
9566
native resolution (HiDPI-aware screen grab, improved PNG settings).
@@ -103,6 +74,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
10374

10475
### Changed
10576

77+
- Clinical and session preset pill buttons grow to fit their full label (theme
78+
``max-width`` cap removed).
79+
- Step 1 and Step 2 scale name/value fields widen as needed to show the full text.
10680
- **Help** dialog rewritten around the standard **Complete Workflow** programming
10781
pipeline, timestamped ``task-programming`` TSV output, and Word/PDF reports;
10882
notes that each stimulation configuration is saved and summarised in reports;
@@ -146,8 +120,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
146120

147121
### Fixed
148122

123+
- Step 1 clinical preset buttons disappearing after adding a preset in settings
124+
(horizontal scroll strip sizing).
125+
- Step 3 session settings: external vertical scrollbar column (same layout as Step 1;
126+
no overlap with electrode canvases).
149127
- Dependency audit: pin ``idna>=3.15`` (GHSA-65pc-fj4g-8rjx); allow ``idna`` in
150128
``exclude-newer-package`` so the fix is not blocked by the one-week cooldown.
129+
- Dependency audit: pin ``uv>=0.11.15`` (GHSA-4gg8-gxpx-9rph).
151130
- Update checker: HTTPS uses the ``certifi`` CA bundle (fixes failed or empty
152131
GitHub API responses in Briefcase MSI/ZIP on Windows); compares against
153132
``APP_VERSION``; empty or invalid release data surfaces as errors instead of
@@ -171,6 +150,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
171150
- Persist deactivated Step 3 session scales as ``NaN`` in the session TSV and omit them from Word and PDF reports. ([#94](https://github.com/Brain-Modulation-Lab/DBSAnnotator/pull/94))
172151
- Refreshed ``uv.lock`` with upgraded dependencies (including security-related updates for
173152
``pip`` and ``gitpython``). ([#95](https://github.com/Brain-Modulation-Lab/DBSAnnotator/pull/95))
153+
174154
### Fixed
175155

176156
- Fix `install.ps1` when run with `iex`: move install into a nested function so `$PSCmdlet` binds; document `iex` vs script parameters (`& ([scriptblock]::Create((iwr …).Content))` or local `install.ps1`). ([#77](https://github.com/Brain-Modulation-Lab/DBSAnnotator/pull/77))
@@ -184,6 +164,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
184164

185165
- Add a Windows PowerShell installer (``scripts/install.ps1``) and README one-liner to install the portable release ``.zip`` from GitHub when the MSI is unsigned. ([#70](https://github.com/Brain-Modulation-Lab/DBSAnnotator/pull/70))
186166
- Add ``scripts/install.sh`` (curl/wget) to install from GitHub Releases on Linux x86_64 and macOS (raw ``.tar.gz`` when present, else ``.deb`` / ``.dmg``), with README and installation docs. ([#71](https://github.com/Brain-Modulation-Lab/DBSAnnotator/pull/71))
167+
187168
## [0.4.0a1] - 2026-04-22
188169

189170
### Added

docs/_static/favicon-32.png

-822 Bytes
Loading

docs/_static/favicon.ico

-409 Bytes
Binary file not shown.

docs/conf.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@
5858
html_theme = "sphinx_rtd_theme"
5959
html_static_path = ["_static"]
6060
html_css_files = ["custom.css"]
61-
# Browser tab icon (same asset as the packaged Qt / Briefcase application).
61+
# Browser tab icon — cream background for RTD only
62+
# (regenerate: scripts/generate_docs_favicon.py).
6263
html_favicon = "_static/favicon.ico"
6364

6465
html_theme_options = {

scripts/generate_docs_favicon.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#!/usr/bin/env python3
2+
"""Generate Read the Docs favicons with a light cream background.
3+
4+
The packaged desktop app keeps the default logo icon; RTD uses these files
5+
under ``docs/_static/`` only (see ``docs/conf.py`` ``html_favicon``).
6+
"""
7+
8+
from __future__ import annotations
9+
10+
from pathlib import Path
11+
12+
from PIL import Image
13+
14+
ROOT = Path(__file__).resolve().parents[1]
15+
SOURCE = ROOT / "icons" / "logosimple" / "logosimple-256.png"
16+
OUT_DIR = ROOT / "docs" / "_static"
17+
# Warm off-white ("panna") — distinct from the app's dark-framed icon.
18+
BACKGROUND = "#FAF6F0"
19+
ICO_SIZES = (16, 32, 48)
20+
21+
22+
def _render(size: int) -> Image.Image:
23+
logo = Image.open(SOURCE).convert("RGBA")
24+
canvas = Image.new("RGBA", (size, size), BACKGROUND)
25+
pad = max(2, size // 14)
26+
inner = size - 2 * pad
27+
logo.thumbnail((inner, inner), Image.Resampling.LANCZOS)
28+
x = (size - logo.width) // 2
29+
y = (size - logo.height) // 2
30+
canvas.paste(logo, (x, y), logo)
31+
return canvas.convert("RGB")
32+
33+
34+
def main() -> None:
35+
if not SOURCE.is_file():
36+
raise FileNotFoundError(f"Logo not found: {SOURCE}")
37+
38+
OUT_DIR.mkdir(parents=True, exist_ok=True)
39+
icons = [_render(size) for size in ICO_SIZES]
40+
icons[0].save(
41+
OUT_DIR / "favicon.ico",
42+
format="ICO",
43+
sizes=[(size, size) for size in ICO_SIZES],
44+
append_images=icons[1:],
45+
)
46+
_render(32).save(OUT_DIR / "favicon-32.png", format="PNG")
47+
print(f"Wrote {OUT_DIR / 'favicon.ico'} and {OUT_DIR / 'favicon-32.png'}")
48+
49+
50+
if __name__ == "__main__":
51+
main()

0 commit comments

Comments
 (0)