Skip to content

Commit 3d99356

Browse files
authored
Merge branch 'main' into duplicate_code_mappings
2 parents 4cf323b + bfc23b5 commit 3d99356

75 files changed

Lines changed: 4828 additions & 2208 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,11 +127,20 @@ jobs:
127127
with:
128128
fetch-depth: 0
129129
persist-credentials: false
130+
- name: Create release GitHub App token
131+
id: release-token
132+
uses: actions/create-github-app-token@v3
133+
with:
134+
client-id: ${{ vars.RELEASE_APP_CLIENT_ID }}
135+
private-key: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
136+
permission-contents: write
130137
- name: Python Semantic Release
131138
id: release
132139
uses: python-semantic-release/python-semantic-release@v10.5.3
133140
with:
134-
github_token: ${{ secrets.GH_TOKEN }}
141+
# The release App is allowed to bypass the pull-request requirement so
142+
# semantic-release can commit the version and changelog back to main.
143+
github_token: ${{ steps.release-token.outputs.token }}
135144
changelog: true
136145

137146
- name: Publish package distributions to PyPI
@@ -148,5 +157,5 @@ jobs:
148157
uses: python-semantic-release/publish-action@v10.5.3
149158
if: steps.release.outputs.released == 'true'
150159
with:
151-
github_token: ${{ secrets.GITHUB_TOKEN }}
160+
github_token: ${{ steps.release-token.outputs.token }}
152161
tag: ${{ steps.release.outputs.tag }}

CHANGELOG.md

Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,224 @@
22

33
<!-- version list -->
44

5+
## v6.0.0 (2026-07-27)
6+
7+
### Features
8+
9+
- Audit and complete Zeo protocol DP and enum mappings
10+
([#892](https://github.com/Python-roborock/python-roborock/pull/892),
11+
[`dba564d`](https://github.com/Python-roborock/python-roborock/commit/dba564d10b88afcd6195298b90c6d49844e334f5))
12+
13+
- Full Zeo protocol definition — 67 DPs, complete enum mappings, all 56 devices covered
14+
([#892](https://github.com/Python-roborock/python-roborock/pull/892),
15+
[`dba564d`](https://github.com/Python-roborock/python-roborock/commit/dba564d10b88afcd6195298b90c6d49844e334f5))
16+
17+
### Refactoring
18+
19+
- **zeo**: Replace raw integer fields with enum types
20+
([#892](https://github.com/Python-roborock/python-roborock/pull/892),
21+
[`dba564d`](https://github.com/Python-roborock/python-roborock/commit/dba564d10b88afcd6195298b90c6d49844e334f5))
22+
23+
24+
## v5.37.1 (2026-07-25)
25+
26+
### Bug Fixes
27+
28+
- Add missing dock ids
29+
([`f431c5d`](https://github.com/Python-roborock/python-roborock/commit/f431c5dbab2730df73fdaf5b6c42319a0a77a07d))
30+
31+
32+
## v5.37.0 (2026-07-25)
33+
34+
### Chores
35+
36+
- Clean up security location ([#880](https://github.com/Python-roborock/python-roborock/pull/880),
37+
[`f0579b8`](https://github.com/Python-roborock/python-roborock/commit/f0579b8dcee5be26da0c572d686f3a831d3867a9))
38+
39+
- Mild clean ups ([#880](https://github.com/Python-roborock/python-roborock/pull/880),
40+
[`f0579b8`](https://github.com/Python-roborock/python-roborock/commit/f0579b8dcee5be26da0c572d686f3a831d3867a9))
41+
42+
### Features
43+
44+
- Add photo for obstacle avoidance
45+
([#880](https://github.com/Python-roborock/python-roborock/pull/880),
46+
[`f0579b8`](https://github.com/Python-roborock/python-roborock/commit/f0579b8dcee5be26da0c572d686f3a831d3867a9))
47+
48+
49+
## v5.36.0 (2026-07-21)
50+
51+
### Features
52+
53+
- Add MQTT QoS support and timestamp to A01 protocol payload
54+
([#891](https://github.com/Python-roborock/python-roborock/pull/891),
55+
[`3deed81`](https://github.com/Python-roborock/python-roborock/commit/3deed815a886ee6844054abfad372886a536d681))
56+
57+
58+
## v5.35.0 (2026-07-21)
59+
60+
### Features
61+
62+
- Compose Q10 map content from grouped traits
63+
([#887](https://github.com/Python-roborock/python-roborock/pull/887),
64+
[`a66e7c3`](https://github.com/Python-roborock/python-roborock/commit/a66e7c37dadf50d472b7d24c4a0c960c0efea771))
65+
66+
### Refactoring
67+
68+
- Simplify Q10 map trait state ([#887](https://github.com/Python-roborock/python-roborock/pull/887),
69+
[`a66e7c3`](https://github.com/Python-roborock/python-roborock/commit/a66e7c37dadf50d472b7d24c4a0c960c0efea771))
70+
71+
- Tighten Q10 map trait lifecycle
72+
([#887](https://github.com/Python-roborock/python-roborock/pull/887),
73+
[`a66e7c3`](https://github.com/Python-roborock/python-roborock/commit/a66e7c37dadf50d472b7d24c4a0c960c0efea771))
74+
75+
76+
## v5.34.0 (2026-07-20)
77+
78+
### Chores
79+
80+
- Delete slop md
81+
([`9ba41bb`](https://github.com/Python-roborock/python-roborock/commit/9ba41bb56ce7ac329c77e6ab985c98f31fd5fe51))
82+
83+
### Features
84+
85+
- Change license to apache 2.0 ([#890](https://github.com/Python-roborock/python-roborock/pull/890),
86+
[`a304471`](https://github.com/Python-roborock/python-roborock/commit/a30447130241787cec8c6c75a63d35624e22702c))
87+
88+
89+
## v5.33.0 (2026-07-19)
90+
91+
### Chores
92+
93+
- Remove the old version of Status
94+
([#883](https://github.com/Python-roborock/python-roborock/pull/883),
95+
[`01d0cc9`](https://github.com/Python-roborock/python-roborock/commit/01d0cc9722a66ed84390bae9e67f606d378123e4))
96+
97+
### Features
98+
99+
- Compose Q10 maps in a pure renderer
100+
([#885](https://github.com/Python-roborock/python-roborock/pull/885),
101+
[`deeb775`](https://github.com/Python-roborock/python-roborock/commit/deeb7755e799d0dca5471025350d61c8d1db6f9d))
102+
103+
### Refactoring
104+
105+
- Keep Q10 render intermediates internal
106+
([#885](https://github.com/Python-roborock/python-roborock/pull/885),
107+
[`deeb775`](https://github.com/Python-roborock/python-roborock/commit/deeb7755e799d0dca5471025350d61c8d1db6f9d))
108+
109+
- Render Q10 maps through one image path
110+
([#885](https://github.com/Python-roborock/python-roborock/pull/885),
111+
[`deeb775`](https://github.com/Python-roborock/python-roborock/commit/deeb7755e799d0dca5471025350d61c8d1db6f9d))
112+
113+
- **map**: Address Q10 decoding review feedback
114+
([#884](https://github.com/Python-roborock/python-roborock/pull/884),
115+
[`6e5bf5b`](https://github.com/Python-roborock/python-roborock/commit/6e5bf5be71e9b055bf3a679c9286b96f32b9e0f2))
116+
117+
118+
## v5.32.0 (2026-07-19)
119+
120+
### Bug Fixes
121+
122+
- Preserve Q10 decoded packet API
123+
([#881](https://github.com/Python-roborock/python-roborock/pull/881),
124+
[`d2b6822`](https://github.com/Python-roborock/python-roborock/commit/d2b6822844eb7e3bdda21cbb89c8376eea53d5f9))
125+
126+
### Chores
127+
128+
- Limit aiohttp for dev ([#878](https://github.com/Python-roborock/python-roborock/pull/878),
129+
[`031b9e2`](https://github.com/Python-roborock/python-roborock/commit/031b9e2ad9ec36ebf59ae0c03b7edbe63ed71999))
130+
131+
### Features
132+
133+
- Decode Q10 map geometry metadata
134+
([#881](https://github.com/Python-roborock/python-roborock/pull/881),
135+
[`d2b6822`](https://github.com/Python-roborock/python-roborock/commit/d2b6822844eb7e3bdda21cbb89c8376eea53d5f9))
136+
137+
138+
## v5.31.1 (2026-07-18)
139+
140+
### Bug Fixes
141+
142+
- Correct reset consumable parameters for strainer and cleaning brush
143+
([#879](https://github.com/Python-roborock/python-roborock/pull/879),
144+
[`b11fc49`](https://github.com/Python-roborock/python-roborock/commit/b11fc4984445daa9a1837cef366d8543c3d1b7c8))
145+
146+
### Chores
147+
148+
- Add note about apache-II in CONTRIBUTING.md
149+
([#877](https://github.com/Python-roborock/python-roborock/pull/877),
150+
[`a8a5821`](https://github.com/Python-roborock/python-roborock/commit/a8a582192b3ec1c74f9b56c83bda026bd6ec194b))
151+
152+
153+
## v5.31.0 (2026-07-15)
154+
155+
### Features
156+
157+
- Add Q10 integration test and support stream streaming on FakeChannel
158+
([#869](https://github.com/Python-roborock/python-roborock/pull/869),
159+
[`502fa42`](https://github.com/Python-roborock/python-roborock/commit/502fa424c4a8fd36b759de8c8557c8665e4d0d13))
160+
161+
- Implement Q10VacuumSimulator and export it
162+
([#869](https://github.com/Python-roborock/python-roborock/pull/869),
163+
[`502fa42`](https://github.com/Python-roborock/python-roborock/commit/502fa424c4a8fd36b759de8c8557c8665e4d0d13))
164+
165+
- Implement stateful Q10 device simulator and integration tests
166+
([#869](https://github.com/Python-roborock/python-roborock/pull/869),
167+
[`502fa42`](https://github.com/Python-roborock/python-roborock/commit/502fa424c4a8fd36b759de8c8557c8665e4d0d13))
168+
169+
170+
## v5.30.0 (2026-07-13)
171+
172+
### Bug Fixes
173+
174+
- Gate dock_error_status on has_dock rather than is_collectable
175+
([#875](https://github.com/Python-roborock/python-roborock/pull/875),
176+
[`86acd87`](https://github.com/Python-roborock/python-roborock/commit/86acd874e74c391d85c63483bee02a88b8a2debb))
177+
178+
### Documentation
179+
180+
- Document metadata keys in field_metadata and is_field_supported
181+
([#875](https://github.com/Python-roborock/python-roborock/pull/875),
182+
[`86acd87`](https://github.com/Python-roborock/python-roborock/commit/86acd874e74c391d85c63483bee02a88b8a2debb))
183+
184+
### Features
185+
186+
- Implement device capability metadata for status computed property fields
187+
([#875](https://github.com/Python-roborock/python-roborock/pull/875),
188+
[`86acd87`](https://github.com/Python-roborock/python-roborock/commit/86acd874e74c391d85c63483bee02a88b8a2debb))
189+
190+
191+
## v5.29.0 (2026-07-12)
192+
193+
### Features
194+
195+
- Truncate large payloads in RoborockMessage __repr__
196+
([#873](https://github.com/Python-roborock/python-roborock/pull/873),
197+
[`95460d7`](https://github.com/Python-roborock/python-roborock/commit/95460d77a599613a0eddab3f4db7a36904f894d6))
198+
199+
200+
## v5.28.1 (2026-07-12)
201+
202+
### Bug Fixes
203+
204+
- Correct some dock mapping ([#872](https://github.com/Python-roborock/python-roborock/pull/872),
205+
[`9e95992`](https://github.com/Python-roborock/python-roborock/commit/9e95992fcfceb70a0e73c86dc819cecc6dc572d1))
206+
207+
### Refactoring
208+
209+
- Use stateful fakes and fixtures in integration tests
210+
([#868](https://github.com/Python-roborock/python-roborock/pull/868),
211+
[`89c8074`](https://github.com/Python-roborock/python-roborock/commit/89c80743e2c560f36f56e0c17c85c0d14544f406))
212+
213+
214+
## v5.28.0 (2026-07-08)
215+
216+
### Features
217+
218+
- Add better dock feature control
219+
([#867](https://github.com/Python-roborock/python-roborock/pull/867),
220+
[`73ba2bf`](https://github.com/Python-roborock/python-roborock/commit/73ba2bf152d1c43b4d46d1e7f397043dd195d046))
221+
222+
5223
## v5.27.0 (2026-07-07)
6224

7225
### Documentation

CONTRIBUTING.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
Thank you for your interest in contributing to `python-roborock`! We welcome contributions from the community.
44

5+
## Licensing of Contributions
6+
7+
By submitting a contribution to this repository, you agree that your contribution is
8+
licensed under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0),
9+
and you certify that you have the right to submit it under that license.
10+
511
## Getting Started
612

713
1. **Fork the repository** on GitHub.

0 commit comments

Comments
 (0)