Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,68 @@
# CHANGES

## 0.17.0 Velma (2026-01-21)

Happy new year! This release brings support for Guide and Control Center
buttons (@henrikwidlund), per-device volume control (@albaintor), and modernized
packaging (@cdce8p). There is also official upport for Python 3.14. As a final
housekeeping item, support for pydantic v1 has been dropped—make sure to have
pydantic 2.x installed.

**Changes:**

*Other:*

```
0b643bec Add support for Guide and Control Center (#2699)
1ce4dbc9 Modernize packaging (#2734)
dfed887f Added ability to set volume per (connected) device (#2673)
a722f9c3 fix link for `c4-pyatv-remote`
67508775 Add Python 3.14 (#2800)
410d415c Use asyncio.timeout for Python 3.11+ (#2735)
504ddf4c Update stringify_model for Python 3.14
2a6d8ead Drop support for pydantic v1
```

**All changes:**

```
d64a63f4 build(deps): Bump types-protobuf in /requirements
0b643bec Add support for Guide and Control Center (#2699)
1ce4dbc9 Modernize packaging (#2734)
dfed887f Added ability to set volume per (connected) device (#2673)
e418960e build(deps): Bump pylint from 3.3.7 to 4.0.4 in /requirements
9dd16dc7 build(deps): Bump types-requests in /requirements
a722f9c3 fix link for `c4-pyatv-remote`
faf313ff build(deps): Bump mypy-protobuf from 3.6.0 to 3.7.0 in /requirements
5432ae37 build(deps): Bump python from 3.15.0a2-alpine to 3.15.0a5-alpine (#2811)
667c6a7f build(deps): Bump aiohttp from 3.13.2 to 3.13.3 in /requirements
2514da5f build(deps): Bump protobuf from 6.33.0 to 6.33.2 in /requirements
6b9a6324 build(deps): Bump requests from 2.32.4 to 2.32.5 in /requirements
487b1136 build(deps): Bump pytest from 8.4.1 to 9.0.2 in /requirements (#2797)
67508775 Add Python 3.14 (#2800)
410d415c Use asyncio.timeout for Python 3.11+ (#2735)
504ddf4c Update stringify_model for Python 3.14
2a6d8ead Drop support for pydantic v1
299f2c03 build(deps): Bump mypy from 1.18.2 to 1.19.0 in /requirements
d205d5b7 build(deps): Bump python from 3.14.1-alpine to 3.15.0a2-alpine
ef434437 build(deps): Bump pydantic from 2.11.7 to 2.12.5 in /requirements
9c1f65f4 build(deps): Bump pyfakefs from 5.10.1 to 5.10.2 in /requirements
965fe67a build(deps): Bump zeroconf from 0.147.0 to 0.148.0 in /requirements
40e84e91 build(deps): Bump python from 3.14.0-alpine to 3.14.1-alpine
fda09e0a build(deps): Bump black from 25.1.0 to 25.11.0 in /requirements
ffcf348b build(deps): Bump tinytag from 2.1.1 to 2.1.2 in /requirements
c6a9b363 build(deps): Bump types-protobuf in /requirements
98fd8145 build(deps): Bump pytest-cov from 6.2.1 to 7.0.0 in /requirements
d06069ac build(deps): Bump protobuf from 6.31.1 to 6.33.0 in /requirements
1aec1c07 build(deps): Bump aiohttp from 3.12.13 to 3.13.2 in /requirements
03a5b901 build(deps): Bump pyfakefs from 5.9.1 to 5.10.1 in /requirements
82cee18f build(deps): Bump cryptography from 45.0.5 to 46.0.3 in /requirements
abe575d0 build(deps): Bump python from 3.13.5-alpine to 3.14.0-alpine
3ad82779 build(deps): Bump mypy from 1.16.1 to 1.18.2 in /requirements
9afe19e2 build(deps): Bump types-protobuf in /requirements
dcbb4d57 build(deps): Bump deepdiff from 8.5.0 to 8.6.1 in /requirements
```

## 0.16.1 Uter (2025-07-12)

Hey-ho, minor release (finally) that should fix:
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.15.0a5-alpine
FROM python:3.14.2-alpine
ARG VERSION

WORKDIR .
Expand Down
24 changes: 17 additions & 7 deletions docs/api/pyatv.const.html
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,11 @@ <h4><code><a title="pyatv.const.FeatureName" href="#pyatv.const.FeatureName">Fea
<li><code><a title="pyatv.const.FeatureName.ChannelUp" href="#pyatv.const.FeatureName.ChannelUp">ChannelUp</a></code></li>
<li><code><a title="pyatv.const.FeatureName.Click" href="#pyatv.const.FeatureName.Click">Click</a></code></li>
<li><code><a title="pyatv.const.FeatureName.ContentIdentifier" href="#pyatv.const.FeatureName.ContentIdentifier">ContentIdentifier</a></code></li>
<li><code><a title="pyatv.const.FeatureName.ControlCenter" href="#pyatv.const.FeatureName.ControlCenter">ControlCenter</a></code></li>
<li><code><a title="pyatv.const.FeatureName.Down" href="#pyatv.const.FeatureName.Down">Down</a></code></li>
<li><code><a title="pyatv.const.FeatureName.EpisodeNumber" href="#pyatv.const.FeatureName.EpisodeNumber">EpisodeNumber</a></code></li>
<li><code><a title="pyatv.const.FeatureName.Genre" href="#pyatv.const.FeatureName.Genre">Genre</a></code></li>
<li><code><a title="pyatv.const.FeatureName.Guide" href="#pyatv.const.FeatureName.Guide">Guide</a></code></li>
<li><code><a title="pyatv.const.FeatureName.Home" href="#pyatv.const.FeatureName.Home">Home</a></code></li>
<li><code><a title="pyatv.const.FeatureName.HomeHold" href="#pyatv.const.FeatureName.HomeHold">HomeHold</a></code></li>
<li><code><a title="pyatv.const.FeatureName.LaunchApp" href="#pyatv.const.FeatureName.LaunchApp">LaunchApp</a></code></li>
Expand Down Expand Up @@ -225,7 +227,7 @@ <h1 class="title">Module <code>pyatv.const</code></h1>
</header>
<section id="section-intro">
<p>Constants used in the public API.</p>
<div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/const.py#L1-L460" class="git-link">Browse git</a></div>
<div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/const.py#L1-L466" class="git-link">Browse git</a></div>
</section>
<section>
</section>
Expand Down Expand Up @@ -354,7 +356,7 @@ <h3>Class variables</h3>
</code></dt>
<dd>
<section class="desc"><p>All supported features.</p></section>
<div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/const.py#L252-L451" class="git-link">Browse git</a></div>
<div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/const.py#L252-L457" class="git-link">Browse git</a></div>
<h3>Ancestors</h3>
<ul class="hlist">
<li>enum.Enum</li>
Expand Down Expand Up @@ -409,6 +411,10 @@ <h3>Class variables</h3>
<dd>
<section class="desc"><p>Identifier for Content</p></section>
</dd>
<dt id="pyatv.const.FeatureName.ControlCenter"><code class="name">var <span class="ident">ControlCenter</span> = 68</code></dt>
<dd>
<section class="desc"><p>Open the Control Center.</p></section>
</dd>
<dt id="pyatv.const.FeatureName.Down"><code class="name">var <span class="ident">Down</span> = 1</code></dt>
<dd>
<section class="desc"><p>Down button on remote.</p></section>
Expand All @@ -421,6 +427,10 @@ <h3>Class variables</h3>
<dd>
<section class="desc"><p>Genre of playing song.</p></section>
</dd>
<dt id="pyatv.const.FeatureName.Guide"><code class="name">var <span class="ident">Guide</span> = 66</code></dt>
<dd>
<section class="desc"><p>Show EPG.</p></section>
</dd>
<dt id="pyatv.const.FeatureName.Home"><code class="name">var <span class="ident">Home</span> = 14</code></dt>
<dd>
<section class="desc"><p>Home/TV button.</p></section>
Expand Down Expand Up @@ -941,7 +951,7 @@ <h3>Class variables</h3>
</code></dt>
<dd>
<section class="desc"><p>Touch action constants.</p></section>
<div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/const.py#L454-L460" class="git-link">Browse git</a></div>
<div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/const.py#L460-L466" class="git-link">Browse git</a></div>
<h3>Ancestors</h3>
<ul class="hlist">
<li>enum.Enum</li>
Expand All @@ -950,19 +960,19 @@ <h3>Class variables</h3>
<dl>
<dt id="pyatv.const.TouchAction.Click"><code class="name">var <span class="ident">Click</span> = 5</code></dt>
<dd>
<section class="desc"></section>
<section class="desc"><p>The type of the None singleton.</p></section>
</dd>
<dt id="pyatv.const.TouchAction.Hold"><code class="name">var <span class="ident">Hold</span> = 3</code></dt>
<dd>
<section class="desc"></section>
<section class="desc"><p>The type of the None singleton.</p></section>
</dd>
<dt id="pyatv.const.TouchAction.Press"><code class="name">var <span class="ident">Press</span> = 1</code></dt>
<dd>
<section class="desc"></section>
<section class="desc"><p>The type of the None singleton.</p></section>
</dd>
<dt id="pyatv.const.TouchAction.Release"><code class="name">var <span class="ident">Release</span> = 4</code></dt>
<dd>
<section class="desc"></section>
<section class="desc"><p>The type of the None singleton.</p></section>
</dd>
</dl>
</dd>
Expand Down
Loading
Loading