Skip to content
Merged
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
140 changes: 76 additions & 64 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,24 @@
# Changelog

## [0.9.9](https://github.com/python-ring-doorbell/python-ring-doorbell/tree/0.9.9) (2024-11-06)

[Full Changelog](https://github.com/python-ring-doorbell/python-ring-doorbell/compare/0.9.8...0.9.9)

**Release highlights:**

- Support for asynchronous webrtc offers with trickle ice candidates

**Merged pull requests:**

- Enable async webrtc offers with trickle ICE candidates [\#460](https://github.com/python-ring-doorbell/python-ring-doorbell/pull/460) (@sdb9696)

## [0.9.8](https://github.com/python-ring-doorbell/python-ring-doorbell/tree/0.9.8) (2024-10-18)

[Full Changelog](https://github.com/python-ring-doorbell/python-ring-doorbell/compare/0.9.7...0.9.8)

**Release highlights:**
- **Breaking** - Devices no longer automatically refresh after calling setters. Consumers should call `async_refresh_devices` to get updated values. This allows consumers to wait for the api to properly reflect changes before reporting them back.
**Release highlights:**

- **Breaking** - Devices no longer automatically refresh after calling setters. Consumers should call `async_refresh_devices` to get updated values. This allows consumers to wait for the api to properly reflect changes before reporting them back.
- Fixes floodcam light switches - Ring servers suddenly require `PUT` requests to provide null json values.

**Breaking change pull requests:**
Expand All @@ -26,8 +38,8 @@

[Full Changelog](https://github.com/python-ring-doorbell/python-ring-doorbell/compare/0.9.6...0.9.7)

**Release highlights:**
**Release highlights:**

- Type checking will now raise errors when using deprecated attributes

**Breaking change pull requests:**
Expand All @@ -50,8 +62,8 @@

[Full Changelog](https://github.com/python-ring-doorbell/python-ring-doorbell/compare/0.9.5...0.9.6)

**Release highlights:**
**Release highlights:**

- Fix for a critical issue due to the ring authorisation api changing. All previous versions of this library will no longer work.

**Implemented enhancements:**
Expand All @@ -66,9 +78,9 @@

[Full Changelog](https://github.com/python-ring-doorbell/python-ring-doorbell/compare/0.9.4...0.9.5)

**Release highlights:**
- New CLI commands
**Release highlights:**

- New CLI commands
- Enhancement to the experimental WebRTC stream feature

**Implemented enhancements:**
Expand Down Expand Up @@ -97,9 +109,9 @@

[Full Changelog](https://github.com/python-ring-doorbell/python-ring-doorbell/compare/0.9.3...0.9.4)

**Release highlights:**
- Migrate from poetry to uv for package management
**Release highlights:**

- Migrate from poetry to uv for package management
- Bugfixes for in-home-chime

**Implemented enhancements:**
Expand All @@ -122,9 +134,9 @@

[Full Changelog](https://github.com/python-ring-doorbell/python-ring-doorbell/compare/0.9.2...0.9.3)

**Release highlights:**
- The python-ring-doorbell code repository has moved to https://github.com/python-ring-doorbell/python-ring-doorbell
**Release highlights:**

- The python-ring-doorbell code repository has moved to https://github.com/python-ring-doorbell/python-ring-doorbell
- Fix for enabling in-home chimes - Many thanks @briangoldstein!

**Fixed bugs:**
Expand All @@ -145,9 +157,9 @@

[Full Changelog](https://github.com/python-ring-doorbell/python-ring-doorbell/compare/0.9.1...0.9.2)

**Release highlights:**
- Fixes the broken event listener by migrating to the new `firebase-messaging` library to support FCM HTTP v1 api
**Release highlights:**

- Fixes the broken event listener by migrating to the new `firebase-messaging` library to support FCM HTTP v1 api
- **breaking** - the `RingEventListener` will only support async queries. Hence `start` and `stop` are now async defs

**Fixed bugs:**
Expand All @@ -173,15 +185,15 @@ Hotfix for missing typing_extensions dependency

[Full Changelog](https://github.com/python-ring-doorbell/python-ring-doorbell/compare/0.8.12...0.9.0)

**Release highlights:**
- Async support for the library
- Removed python 3.8 support
**Breaking changes:**
- Synchronous api calls are now deprecated. For example calling `Ring.update_data()` will emit a deprecation warning to use `await Ring.async_update_data()` which should be run within an event loop via `asyncio.run()`. See `test.py` for an example.
- Calling the deprecated sync api methods from inside a running event loop is not supported. This is unlikely to affect many consumers as the norm if running in an event loop is to make synchronous api calls from an executor thread.
**Release highlights:**

- Async support for the library
- Removed python 3.8 support

**Breaking changes:**

- Synchronous api calls are now deprecated. For example calling `Ring.update_data()` will emit a deprecation warning to use `await Ring.async_update_data()` which should be run within an event loop via `asyncio.run()`. See `test.py` for an example.
- Calling the deprecated sync api methods from inside a running event loop is not supported. This is unlikely to affect many consumers as the norm if running in an event loop is to make synchronous api calls from an executor thread.
- Python 3.8 is no longer officially supported and could break in future releases.

**Breaking change pull requests:**
Expand Down Expand Up @@ -229,8 +241,8 @@ Hotfix for missing typing_extensions dependency

[Full Changelog](https://github.com/python-ring-doorbell/python-ring-doorbell/compare/0.8.9...0.8.10)

**Release highlights:**
**Release highlights:**

- py.typed added to library for type checkers

**Merged pull requests:**
Expand Down Expand Up @@ -265,8 +277,8 @@ Hotfix for missing typing_extensions dependency

[Full Changelog](https://github.com/python-ring-doorbell/python-ring-doorbell/compare/0.8.6...0.8.7)

**Release highlights:**
**Release highlights:**

- Support for Ring Intercoms. Many thanks to @rautsch & @andrew-rinato for initial PRs and special thanks to @cosimomeli for getting this over the line!

**Merged pull requests:**
Expand All @@ -287,8 +299,8 @@ Hotfix for missing typing_extensions dependency

[Full Changelog](https://github.com/python-ring-doorbell/python-ring-doorbell/compare/0.8.5...0.8.6)

**Breaking change:**
**Breaking change:**

- Breaking change to the listen subpackage api to allow the listener be configurable.

**Merged pull requests:**
Expand Down Expand Up @@ -442,24 +454,24 @@ Hotfix for missing typing_extensions dependency

[Full Changelog](https://github.com/python-ring-doorbell/python-ring-doorbell/compare/0.5.0...0.6.0)

**Major breaking change:**
Ring APIs offer 1 endpoint with all device info. 1 with all health for doorbells etc. The API used to make a request from each device to the "all device" endpoint and fetch its own data.
With the new approach we now just fetch the data once and each device will fetch that data. This significantly reduces the number of requests.
See updated [test.py](https://github.com/tchellomello/python-ring-doorbell/blob/0.6.0/test.py) on usage.
Changes:
- Pass a user agent to the auth class to identify your project (at request from Ring)
- For most updates, just call `ring.update_all()`. If you want health data (wifi stuff), call `device.update_health_data()` on each device
- Renamed `device.id` -> `device.device_id`, `device.account_id` -> `device.id` to follow API naming.
- Call `ring.update_all()` at least once before querying for devices
- Querying devices now is a function `ring.devices()` instead of property `ring.devices`
- Removed `ring.chimes`, `ring.doorbells`, `ring.stickup_cams`
- Cleaned up tests with pytest fixtures
- Run Black on code to silence hound.
**Major breaking change:**

Ring APIs offer 1 endpoint with all device info. 1 with all health for doorbells etc. The API used to make a request from each device to the "all device" endpoint and fetch its own data.

With the new approach we now just fetch the data once and each device will fetch that data. This significantly reduces the number of requests.

See updated [test.py](https://github.com/tchellomello/python-ring-doorbell/blob/0.6.0/test.py) on usage.

Changes:
- Pass a user agent to the auth class to identify your project (at request from Ring)
- For most updates, just call `ring.update_all()`. If you want health data (wifi stuff), call `device.update_health_data()` on each device
- Renamed `device.id` -> `device.device_id`, `device.account_id` -> `device.id` to follow API naming.
- Call `ring.update_all()` at least once before querying for devices
- Querying devices now is a function `ring.devices()` instead of property `ring.devices`
- Removed `ring.chimes`, `ring.doorbells`, `ring.stickup_cams`
- Cleaned up tests with pytest fixtures
- Run Black on code to silence hound.



**Merged pull requests:**
Expand All @@ -470,8 +482,8 @@ Changes:

[Full Changelog](https://github.com/python-ring-doorbell/python-ring-doorbell/compare/0.4.0...0.5.0)

**Breaking Change:**
**Breaking Change:**

The `Auth` class no longer takes an `otp_callback` but now takes an `otp_code`. It raises `MissingTokenError` if `otp_code` is required. See the [updated example](https://github.com/tchellomello/python-ring-doorbell/blob/261eaf96875e51fc266a5dbfc6198f8cbb8006e0/test.py).

**Implemented enhancements:**
Expand All @@ -486,14 +498,14 @@ The `Auth` class no longer takes an `otp_callback` but now takes an `otp_code`.

[Full Changelog](https://github.com/python-ring-doorbell/python-ring-doorbell/compare/0.2.9...0.4.0)

**Major breaking change:**
This release is a major breaking change to clean up the auth and follow proper OAuth2. Big thanks to @steve-gombos for this.
All authentication is now done inside `Auth`. The first time you need username, password and optionally an 2-factor auth callback function. After that you have a token and that can be used.
The old cache file is no longer in use and can be removed.
**Major breaking change:**

This release is a major breaking change to clean up the auth and follow proper OAuth2. Big thanks to @steve-gombos for this.

All authentication is now done inside `Auth`. The first time you need username, password and optionally an 2-factor auth callback function. After that you have a token and that can be used.

The old cache file is no longer in use and can be removed.

Example usage in `test.py`.

**Implemented enhancements:**
Expand Down Expand Up @@ -672,8 +684,8 @@ Example usage in `test.py`.

[Full Changelog](https://github.com/python-ring-doorbell/python-ring-doorbell/compare/0.0.4...0.1.0)

**Breaking change:**
**Breaking change:**

The code was refactored to allow to manipulate the objects in a better way.

**Implemented enhancements:**
Expand Down
1 change: 1 addition & 0 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ sed -i "0,/version = /{s/version = .*/version = \"${NEW_RELEASE}\"/}" pyproject.
```bash
uv sync --all-extras
uv lock --upgrade
uv sync --all-extras
```

### Run pre-commit and tests
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "ring-doorbell"
version = "0.9.8"
version = "0.9.9"
description = "A Python library to communicate with Ring Door Bell (https://ring.com/)"
authors = [{ name = "python-ring-doorbell developers" }]
license = { text="LGPL-3.0-or-later" }
Expand Down
Loading