Compare commits

...

2 Commits

Author SHA1 Message Date
alexei.dolgolyov af556e0bff chore: release v0.1.7
Lint & Test / test (push) Successful in 14s
Release / create-release (push) Successful in 3s
Release / build-windows (push) Successful in 47s
Release / build-linux (push) Successful in 29s
2026-04-17 23:40:45 +03:00
alexei.dolgolyov 26b4672a99 chore: release v0.1.6
Release / create-release (push) Successful in 3s
Lint & Test / test (push) Successful in 10s
Release / build-linux (push) Successful in 31s
Release / build-windows (push) Successful in 52s
2026-04-11 03:36:55 +03:00
4 changed files with 21 additions and 17 deletions
+10 -11
View File
@@ -1,17 +1,16 @@
## v0.1.5 (2026-04-11) ## v0.1.7 (2026-04-17)
### Bug Fixes ### Changes
- Make WebSocket token query parameter optional to prevent connection failures for clients that authenticate via other means ([34eb7c7](https://git.dolgolyov-family.by/alexei.dolgolyov/media-player-server/commit/34eb7c7)) - Bundle the audio visualizer by default. `soundcard` and `numpy` are now mandatory dependencies instead of gated behind the optional `[visualizer]` extra, so the visualizer works out of the box on every install.
- Fetch playback status eagerly on new WebSocket connection instead of waiting for the next poll cycle ([d09a0b9](https://git.dolgolyov-family.by/alexei.dolgolyov/media-player-server/commit/d09a0b9))
--- ---
<details> ### Development / Internal
<summary>All Commits</summary>
| Hash | Message | Author | #### CI/Build
|------|---------|--------| - Simplify `build-dist-linux.sh` to install `.` instead of `.[visualizer]` now that the deps are part of the base install.
| [34eb7c7](https://git.dolgolyov-family.by/alexei.dolgolyov/media-player-server/commit/34eb7c7) | fix(ws): make WebSocket token parameter optional | alexei.dolgolyov |
| [d09a0b9](https://git.dolgolyov-family.by/alexei.dolgolyov/media-player-server/commit/d09a0b9) | fix(ws): fetch status eagerly on new WebSocket connection | alexei.dolgolyov |
</details> ---
### Contributors
- @alexei.dolgolyov — 1 change
+1 -1
View File
@@ -21,7 +21,7 @@ echo "Creating virtualenv..."
python3 -m venv "${DIST_DIR}/venv" python3 -m venv "${DIST_DIR}/venv"
source "${DIST_DIR}/venv/bin/activate" source "${DIST_DIR}/venv/bin/activate"
pip install --quiet --upgrade pip pip install --quiet --upgrade pip
pip install --quiet ".[visualizer]" pip install --quiet "."
# Remove the installed package (app source is on PYTHONPATH via launcher) # Remove the installed package (app source is on PYTHONPATH via launcher)
rm -rf "${DIST_DIR}"/venv/lib/python*/site-packages/media_server* rm -rf "${DIST_DIR}"/venv/lib/python*/site-packages/media_server*
+6
View File
@@ -60,12 +60,18 @@ CORE_DEPS=(
) )
# Windows-specific dependencies # Windows-specific dependencies
# NOTE: wmi is a transitive dep of screen-brightness-control gated on
# `platform_system == "Windows"`. pip evaluates env markers against the HOST
# (Linux in CI), so it gets skipped during cross-build. Listed explicitly here
# so the wheel actually lands in the Windows bundle. Same gotcha as the
# uvicorn[standard]/uvloop case documented above.
WIN_DEPS=( WIN_DEPS=(
"winsdk>=1.0.0b10" "winsdk>=1.0.0b10"
"pywin32>=306" "pywin32>=306"
"comtypes>=1.2.0" "comtypes>=1.2.0"
"pycaw>=20230407" "pycaw>=20230407"
"screen-brightness-control>=0.20.0" "screen-brightness-control>=0.20.0"
"wmi>=1.5.1"
"monitorcontrol>=3.0.0" "monitorcontrol>=3.0.0"
) )
+4 -5
View File
@@ -1,6 +1,6 @@
[project] [project]
name = "media-server" name = "media-server"
version = "0.1.5" version = "0.1.7"
description = "REST API server for controlling system-wide media playback" description = "REST API server for controlling system-wide media playback"
readme = "README.md" readme = "README.md"
license = { text = "MIT" } license = { text = "MIT" }
@@ -32,6 +32,8 @@ dependencies = [
"pyyaml>=6.0", "pyyaml>=6.0",
"mutagen>=1.47.0", "mutagen>=1.47.0",
"pillow>=10.0.0", "pillow>=10.0.0",
"soundcard>=0.4.0",
"numpy>=1.24.0,<2.0",
] ]
[project.optional-dependencies] [project.optional-dependencies]
@@ -41,13 +43,10 @@ windows = [
"comtypes>=1.2.0", "comtypes>=1.2.0",
"pycaw>=20230407", "pycaw>=20230407",
"screen-brightness-control>=0.20.0", "screen-brightness-control>=0.20.0",
"wmi>=1.5.1",
"monitorcontrol>=3.0.0", "monitorcontrol>=3.0.0",
"pystray>=0.19.0", "pystray>=0.19.0",
] ]
visualizer = [
"soundcard>=0.4.0",
"numpy>=1.24.0,<2.0",
]
dev = [ dev = [
"pytest>=7.0", "pytest>=7.0",
"pytest-asyncio>=0.21", "pytest-asyncio>=0.21",