From 041d1509d28d59e2371e391507013b723a06d5b3 Mon Sep 17 00:00:00 2001 From: Steven B <51370195+sdb9696@users.noreply.github.com> Date: Wed, 21 Aug 2024 10:46:19 +0100 Subject: [PATCH] Update instructions for releasing and migrate to github_changelog_generator --- .github/workflows/release-drafter.yml | 15 - .github_changelog_generator | 10 + CHANGELOG.md | 585 ++++++++++++++++++++++++++ CHANGELOG.rst | 5 - RELEASING.md | 166 ++++++++ RELEASING.rst | 40 -- docs/source/changelog.md | 1 + docs/source/changelog.rst | 8 - docs/source/conf.py | 8 +- poetry.lock | 106 ++++- pyproject.toml | 4 +- 11 files changed, 854 insertions(+), 94 deletions(-) delete mode 100644 .github/workflows/release-drafter.yml create mode 100644 .github_changelog_generator create mode 100644 CHANGELOG.md delete mode 100644 CHANGELOG.rst create mode 100644 RELEASING.md delete mode 100644 RELEASING.rst create mode 100644 docs/source/changelog.md delete mode 100644 docs/source/changelog.rst diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml deleted file mode 100644 index 490103ec..00000000 --- a/.github/workflows/release-drafter.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Release Drafter - -on: - push: - branches: - - master - -jobs: - update_release_draft: - runs-on: ubuntu-latest - steps: - # Drafts your next Release notes as Pull Requests are merged into "master" - - uses: release-drafter/release-drafter@v5 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github_changelog_generator b/.github_changelog_generator new file mode 100644 index 00000000..e303d39f --- /dev/null +++ b/.github_changelog_generator @@ -0,0 +1,10 @@ +output=CHANGELOG.md +user=tchellomello +project=python-ring-doorbell +release_branch=master +usernames-as-github-logins=true +breaking_labels=breaking change +add-sections={"new-device":{"prefix":"**Added support for devices:**","labels":["new device"]},"docs":{"prefix":"**Documentation updates:**","labels":["documentation"]},"maintenance":{"prefix":"**Project maintenance:**","labels":["maintenance"]}} +exclude-labels=duplicate,question,invalid,wontfix,release-prep,stale +issues-wo-labels=false +unreleased=false \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..7c26671d --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,585 @@ +# Changelog + +## [0.8.12](https://github.com/tchellomello/python-ring-doorbell/tree/0.8.12) (2024-06-27) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.8.11...0.8.12) + +**Merged pull requests:** + +- Fix license value in pyproject.toml for better compliance with accepted values [\#386](https://github.com/tchellomello/python-ring-doorbell/pull/386) (@joostlek) +- Fix stale workflow exclude list [\#377](https://github.com/tchellomello/python-ring-doorbell/pull/377) (@sdb9696) +- Fix lock and stale workflows [\#376](https://github.com/tchellomello/python-ring-doorbell/pull/376) (@sdb9696) +- Add stale and lock github workflows [\#375](https://github.com/tchellomello/python-ring-doorbell/pull/375) (@sdb9696) +- Update dependencies in lock file and pre-commit [\#374](https://github.com/tchellomello/python-ring-doorbell/pull/374) (@sdb9696) +- Enable windows, macos and pypy in the CI [\#373](https://github.com/tchellomello/python-ring-doorbell/pull/373) (@sdb9696) +- Update CI to cache pipx poetry app install [\#372](https://github.com/tchellomello/python-ring-doorbell/pull/372) (@sdb9696) + +## [0.8.11](https://github.com/tchellomello/python-ring-doorbell/tree/0.8.11) (2024-04-09) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.8.10...0.8.11) + +**Merged pull requests:** + +- Fix get\_device missing authorized doorbots [\#368](https://github.com/tchellomello/python-ring-doorbell/pull/368) (@sdb9696) + +## [0.8.10](https://github.com/tchellomello/python-ring-doorbell/tree/0.8.10) (2024-04-04) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.8.9...0.8.10) + +**Release highlights:** + +- py.typed added to library for type checkers + +**Merged pull requests:** + +- Update RingDevices class for better typing support and add py.typed [\#366](https://github.com/tchellomello/python-ring-doorbell/pull/366) (@sdb9696) +- Enable more ruff rules [\#365](https://github.com/tchellomello/python-ring-doorbell/pull/365) (@joostlek) +- Bump ruff to 0.3.5 [\#364](https://github.com/tchellomello/python-ring-doorbell/pull/364) (@joostlek) + +## [0.8.9](https://github.com/tchellomello/python-ring-doorbell/tree/0.8.9) (2024-04-02) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.8.8...0.8.9) + +**Merged pull requests:** + +- Fix issue with third party devices returned in the group other [\#362](https://github.com/tchellomello/python-ring-doorbell/pull/362) (@sdb9696) +- Save gcm credentials in the cli as default [\#360](https://github.com/tchellomello/python-ring-doorbell/pull/360) (@sdb9696) +- Add typing and mypy checking [\#359](https://github.com/tchellomello/python-ring-doorbell/pull/359) (@sdb9696) +- Fix readme example and add to test.py [\#358](https://github.com/tchellomello/python-ring-doorbell/pull/358) (@sdb9696) +- Update CI to use environment caches [\#355](https://github.com/tchellomello/python-ring-doorbell/pull/355) (@sdb9696) + +## [0.8.8](https://github.com/tchellomello/python-ring-doorbell/tree/0.8.8) (2024-03-18) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.8.7...0.8.8) + +**Merged pull requests:** + +- Bump cryptography from 41.0.6 to 42.0.0 [\#343](https://github.com/tchellomello/python-ring-doorbell/pull/343) (@dependabot[bot]) +- Handle Intercom unlock event [\#341](https://github.com/tchellomello/python-ring-doorbell/pull/341) (@sdb9696) +- Add history to Ring Intercom [\#340](https://github.com/tchellomello/python-ring-doorbell/pull/340) (@cosimomeli) + +## [0.8.7](https://github.com/tchellomello/python-ring-doorbell/tree/0.8.7) (2024-02-06) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.8.6...0.8.7) + +**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:** + +- Add history to has\_capability check [\#342](https://github.com/tchellomello/python-ring-doorbell/pull/342) (@sdb9696) +- Upgrade CI poetry version to 1.7.1 [\#338](https://github.com/tchellomello/python-ring-doorbell/pull/338) (@sdb9696) +- Fix changelog link [\#337](https://github.com/tchellomello/python-ring-doorbell/pull/337) (@sdb9696) +- Migrate to ruff [\#336](https://github.com/tchellomello/python-ring-doorbell/pull/336) (@sdb9696) +- Make changelog autogenerated as part of CI [\#335](https://github.com/tchellomello/python-ring-doorbell/pull/335) (@sdb9696) +- Fix coverage over-reporting by uploading xml report [\#333](https://github.com/tchellomello/python-ring-doorbell/pull/333) (@sdb9696) +- Use coveralls github action [\#332](https://github.com/tchellomello/python-ring-doorbell/pull/332) (@sdb9696) +- Updated Intercom Support \(2024\) [\#330](https://github.com/tchellomello/python-ring-doorbell/pull/330) (@cosimomeli) +- Bump jinja2 from 3.1.2 to 3.1.3 [\#327](https://github.com/tchellomello/python-ring-doorbell/pull/327) (@dependabot[bot]) +- Remove exec permissions of ring\_doorbell/cli.py [\#323](https://github.com/tchellomello/python-ring-doorbell/pull/323) (@cpina) +- Bump cryptography from 41.0.5 to 41.0.6 [\#313](https://github.com/tchellomello/python-ring-doorbell/pull/313) (@dependabot[bot]) + +## [0.8.6](https://github.com/tchellomello/python-ring-doorbell/tree/0.8.6) (2024-01-25) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.8.5...0.8.6) + +**Breaking change:** + +- Breaking change to the listen subpackage api to allow the listener be configurable. + +**Merged pull requests:** + +- Allow ring listener to be configurable [\#329](https://github.com/tchellomello/python-ring-doorbell/pull/329) (@sdb9696) +- Thank note for Debian package [\#326](https://github.com/tchellomello/python-ring-doorbell/pull/326) (@tchellomello) + +## [0.8.5](https://github.com/tchellomello/python-ring-doorbell/tree/0.8.5) (2023-12-21) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.8.4...0.8.5) + +**Merged pull requests:** + +- Fix history timeformat and bump to 0.8.5 [\#320](https://github.com/tchellomello/python-ring-doorbell/pull/320) (@sdb9696) + +## [0.8.4](https://github.com/tchellomello/python-ring-doorbell/tree/0.8.4) (2023-12-12) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.8.3...0.8.4) + +**Merged pull requests:** + +- Add Spotlight Cam Pro and enable motion detection for Stickup Cam [\#316](https://github.com/tchellomello/python-ring-doorbell/pull/316) (@sdb9696) + +## [0.8.3](https://github.com/tchellomello/python-ring-doorbell/tree/0.8.3) (2023-11-27) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.8.2...0.8.3) + +**Merged pull requests:** + +- Fix auth when token invalid & rename device\_id parameters [\#311](https://github.com/tchellomello/python-ring-doorbell/pull/311) (@sdb9696) +- fix typo in the documentation [\#284](https://github.com/tchellomello/python-ring-doorbell/pull/284) (@ghost) + +## [0.8.2](https://github.com/tchellomello/python-ring-doorbell/tree/0.8.2) (2023-11-24) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.8.1...0.8.2) + +**Merged pull requests:** + +- Add ring devices and bump version to 0.8.2 [\#310](https://github.com/tchellomello/python-ring-doorbell/pull/310) (@sdb9696) + +## [0.8.1](https://github.com/tchellomello/python-ring-doorbell/tree/0.8.1) (2023-11-15) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.8.0...0.8.1) + +**Merged pull requests:** + +- Update CI for python 3.12 [\#307](https://github.com/tchellomello/python-ring-doorbell/pull/307) (@sdb9696) +- Wrap more exceptions in RingError [\#306](https://github.com/tchellomello/python-ring-doorbell/pull/306) (@sdb9696) + +## [0.8.0](https://github.com/tchellomello/python-ring-doorbell/tree/0.8.0) (2023-11-08) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.7.7...0.8.0) + +**Merged pull requests:** + +- Add custom exceptions and encapsulate oauth error handling [\#304](https://github.com/tchellomello/python-ring-doorbell/pull/304) (@sdb9696) + +## [0.7.7](https://github.com/tchellomello/python-ring-doorbell/tree/0.7.7) (2023-10-31) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.7.6...0.7.7) + +**Merged pull requests:** + +- Improve stability and capabilities of realtime event listener [\#300](https://github.com/tchellomello/python-ring-doorbell/pull/300) (@sdb9696) + +## [0.7.6](https://github.com/tchellomello/python-ring-doorbell/tree/0.7.6) (2023-10-25) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.7.5...0.7.6) + +**Merged pull requests:** + +- Fix anyio dependency preventing ha install [\#298](https://github.com/tchellomello/python-ring-doorbell/pull/298) (@sdb9696) + +## [0.7.5](https://github.com/tchellomello/python-ring-doorbell/tree/0.7.5) (2023-10-25) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.7.4...0.7.5) + +**Merged pull requests:** + +- Add event listener for getting realtime dings [\#296](https://github.com/tchellomello/python-ring-doorbell/pull/296) (@sdb9696) +- Add cli commands: devices, groups, dings and history [\#293](https://github.com/tchellomello/python-ring-doorbell/pull/293) (@sdb9696) +- Add motion detection cli command and improve formatting of show command [\#292](https://github.com/tchellomello/python-ring-doorbell/pull/292) (@sdb9696) +- Add tests for cli and fix issues with videos [\#290](https://github.com/tchellomello/python-ring-doorbell/pull/290) (@sdb9696) + +## [0.7.4](https://github.com/tchellomello/python-ring-doorbell/tree/0.7.4) (2023-09-27) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.7.3...0.7.4) + +**Merged pull requests:** + +- Fix and update cli [\#288](https://github.com/tchellomello/python-ring-doorbell/pull/288) (@sdb9696) +- Update to pyproject.toml, poetry, and update docs to use yaml config [\#287](https://github.com/tchellomello/python-ring-doorbell/pull/287) (@sdb9696) + +## [0.7.3](https://github.com/tchellomello/python-ring-doorbell/tree/0.7.3) (2023-09-11) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.7.2...0.7.3) + +**Merged pull requests:** + +- 0.7.3 release [\#285](https://github.com/tchellomello/python-ring-doorbell/pull/285) (@sdb9696) +- Add motion detection enabled switch [\#282](https://github.com/tchellomello/python-ring-doorbell/pull/282) (@sdb9696) +- Fix ci to use up to date python versions and include pre-commit-config [\#281](https://github.com/tchellomello/python-ring-doorbell/pull/281) (@sdb9696) +- Add support for Floodlight Cam Pro [\#280](https://github.com/tchellomello/python-ring-doorbell/pull/280) (@twasilczyk) + +## [0.7.2](https://github.com/tchellomello/python-ring-doorbell/tree/0.7.2) (2021-12-18) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.7.1...0.7.2) + +**Merged pull requests:** + +- Recognize cocoa\_floodlight as a floodlight kind [\#255](https://github.com/tchellomello/python-ring-doorbell/pull/255) (@mwren) + +## [0.7.1](https://github.com/tchellomello/python-ring-doorbell/tree/0.7.1) (2021-08-26) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.7.0...0.7.1) + +**Fixed bugs:** + +- TypeError: 'NoneType' object is not iterable [\#240](https://github.com/tchellomello/python-ring-doorbell/issues/240) + +**Merged pull requests:** + +- fix memory growth when calling url\_recording [\#253](https://github.com/tchellomello/python-ring-doorbell/pull/253) (@prwood80) +- \[dist\] Fix coveralls build issue [\#238](https://github.com/tchellomello/python-ring-doorbell/pull/238) (@decompil3d) +- \[dist\] Disable Travis now that GH Actions is setup [\#236](https://github.com/tchellomello/python-ring-doorbell/pull/236) (@decompil3d) +- get\_snapshot\(\) logic to be compliant with legacy [\#234](https://github.com/tchellomello/python-ring-doorbell/pull/234) (@tchellomello) +- \[dist\] Use GitHub Actions [\#233](https://github.com/tchellomello/python-ring-doorbell/pull/233) (@decompil3d) +- \[feat\] Add support for Light Groups [\#231](https://github.com/tchellomello/python-ring-doorbell/pull/231) (@decompil3d) +- fix: prevent multiple device entries for "Python" in the Ring app when using this library [\#228](https://github.com/tchellomello/python-ring-doorbell/pull/228) (@riptidewave93) +- Fix live streaming json [\#225](https://github.com/tchellomello/python-ring-doorbell/pull/225) (@JoeDaddy7105) +- Fix Build Errors [\#224](https://github.com/tchellomello/python-ring-doorbell/pull/224) (@JoeDaddy7105) +- Fixed RingDoorBell.get\_snapshot\(\) and added download [\#218](https://github.com/tchellomello/python-ring-doorbell/pull/218) (@NSEvent) +- Fix get snapshot based on comments [\#196](https://github.com/tchellomello/python-ring-doorbell/pull/196) (@dshokouhi) +- Return None if no battery installed [\#185](https://github.com/tchellomello/python-ring-doorbell/pull/185) (@balloob) + +## [0.7.0](https://github.com/tchellomello/python-ring-doorbell/tree/0.7.0) (2021-02-05) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.6.2...0.7.0) + +## [0.6.2](https://github.com/tchellomello/python-ring-doorbell/tree/0.6.2) (2020-11-21) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.6.1...0.6.2) + +## [0.6.1](https://github.com/tchellomello/python-ring-doorbell/tree/0.6.1) (2020-09-28) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.6.0...0.6.1) + +**Fixed bugs:** + +- test.py Line 31 is missing the User-Agent [\#189](https://github.com/tchellomello/python-ring-doorbell/issues/189) + +**Merged pull requests:** + +- Add latest device kinds [\#207](https://github.com/tchellomello/python-ring-doorbell/pull/207) (@jsetton) +- Pushes new documentation to \(http://python-ring-doorbell.readthedocs.io/\) [\#194](https://github.com/tchellomello/python-ring-doorbell/pull/194) (@tchellomello) +- Drop python 2.7/3.5. Updated readme and test.py examples [\#192](https://github.com/tchellomello/python-ring-doorbell/pull/192) (@steve-gombos) + +## [0.6.0](https://github.com/tchellomello/python-ring-doorbell/tree/0.6.0) (2020-01-14) + +[Full Changelog](https://github.com/tchellomello/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. + + + +**Merged pull requests:** + +- Refactor data handling [\#184](https://github.com/tchellomello/python-ring-doorbell/pull/184) (@balloob) + +## [0.5.0](https://github.com/tchellomello/python-ring-doorbell/tree/0.5.0) (2020-01-12) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.4.0...0.5.0) + +**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:** + +- Removed otp\_callback [\#180](https://github.com/tchellomello/python-ring-doorbell/pull/180) (@steve-gombos) + +**Fixed bugs:** + +- Issues with token refresh requests [\#174](https://github.com/tchellomello/python-ring-doorbell/issues/174) + +**Merged pull requests:** + +- Increased timeout from 5 to 10 seconds [\#179](https://github.com/tchellomello/python-ring-doorbell/pull/179) (@cyberjunky) + +## [0.4.0](https://github.com/tchellomello/python-ring-doorbell/tree/0.4.0) (2020-01-11) + +[Full Changelog](https://github.com/tchellomello/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. + +Example usage in `test.py`. + +**Implemented enhancements:** + +- Auth and ring class refactor [\#175](https://github.com/tchellomello/python-ring-doorbell/pull/175) (@steve-gombos) +- Use auth expires\_in to refresh oauth tokens [\#167](https://github.com/tchellomello/python-ring-doorbell/pull/167) (@jeromelaban) +- Implemented timeouts for HTTP requests methods [\#165](https://github.com/tchellomello/python-ring-doorbell/pull/165) (@tchellomello) +- Support for device model name property and has capability method [\#116](https://github.com/tchellomello/python-ring-doorbell/pull/116) (@jsetton) +- Fixes battery\_life attribute because sometimes the JSON return a str instead of an int [\#92](https://github.com/tchellomello/python-ring-doorbell/pull/92) (@tchellomello) + +**Fixed bugs:** + +- 0.2.9 breaks recording\_download [\#171](https://github.com/tchellomello/python-ring-doorbell/issues/171) +- Video download fix [\#172](https://github.com/tchellomello/python-ring-doorbell/pull/172) (@ZachBenz) +- OAuth Fixes [\#152](https://github.com/tchellomello/python-ring-doorbell/pull/152) (@steve-gombos) +- Added oauth bearer token authentication to Ring [\#96](https://github.com/tchellomello/python-ring-doorbell/pull/96) (@tchellomello) + +**Merged pull requests:** + +- Blocked user agent temp fix [\#176](https://github.com/tchellomello/python-ring-doorbell/pull/176) (@steve-gombos) +- Fixed logic and simplified module imports [\#168](https://github.com/tchellomello/python-ring-doorbell/pull/168) (@tchellomello) +- Fixes for tchellomello/python-ring-doorbell\#162 [\#163](https://github.com/tchellomello/python-ring-doorbell/pull/163) (@ZachBenz) +- Make consistent requirements.txt and setup.py [\#158](https://github.com/tchellomello/python-ring-doorbell/pull/158) (@tchellomello) +- Fixed requirements.xt [\#155](https://github.com/tchellomello/python-ring-doorbell/pull/155) (@tchellomello) +- fix R1705: Unnecessary elif after return \(no-else-return\) [\#151](https://github.com/tchellomello/python-ring-doorbell/pull/151) (@xernaj) +- Fix for Issue \#146 [\#149](https://github.com/tchellomello/python-ring-doorbell/pull/149) (@ZachBenz) +- Fix/oauth fail due to blocked user agent [\#143](https://github.com/tchellomello/python-ring-doorbell/pull/143) (@xernaj) +- Add additional device kinds for new products [\#137](https://github.com/tchellomello/python-ring-doorbell/pull/137) (@jsetton) +- Add a couple of device kinds [\#135](https://github.com/tchellomello/python-ring-doorbell/pull/135) (@dshokouhi) +- Fixed pylint and test errors [\#115](https://github.com/tchellomello/python-ring-doorbell/pull/115) (@tchellomello) +- support of externally powered new stickup cam [\#109](https://github.com/tchellomello/python-ring-doorbell/pull/109) (@steveww) +- Add support for downloading snapshot from doorbell [\#108](https://github.com/tchellomello/python-ring-doorbell/pull/108) (@MorganBulkeley) +- Support for Spotlight Battery cameras with multiple battery bays [\#106](https://github.com/tchellomello/python-ring-doorbell/pull/106) (@evanjd) + +## [0.2.9](https://github.com/tchellomello/python-ring-doorbell/tree/0.2.9) (2020-01-03) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.2.8...0.2.9) + +**Implemented enhancements:** + +- add timeout to requests [\#164](https://github.com/tchellomello/python-ring-doorbell/issues/164) + +**Closed issues:** + +- 3000 DNS queries a minute [\#160](https://github.com/tchellomello/python-ring-doorbell/issues/160) + +## [0.2.8](https://github.com/tchellomello/python-ring-doorbell/tree/0.2.8) (2019-12-27) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.2.6...0.2.8) + +## [0.2.6](https://github.com/tchellomello/python-ring-doorbell/tree/0.2.6) (2019-12-27) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.2.5...0.2.6) + +**Fixed bugs:** + +- 401 Client Error: Unauthorized for url [\#146](https://github.com/tchellomello/python-ring-doorbell/issues/146) + +## [0.2.5](https://github.com/tchellomello/python-ring-doorbell/tree/0.2.5) (2019-12-20) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.2.3...0.2.5) + +## [0.2.3](https://github.com/tchellomello/python-ring-doorbell/tree/0.2.3) (2019-03-05) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.2.2...0.2.3) + +**Implemented enhancements:** + +- Feature Request: Add a model property to identify the different products [\#112](https://github.com/tchellomello/python-ring-doorbell/issues/112) + +**Closed issues:** + +- MSG\_GENERIC\_FAIL [\#114](https://github.com/tchellomello/python-ring-doorbell/issues/114) + +## [0.2.2](https://github.com/tchellomello/python-ring-doorbell/tree/0.2.2) (2018-10-29) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.2.1...0.2.2) + +## [0.2.1](https://github.com/tchellomello/python-ring-doorbell/tree/0.2.1) (2018-06-15) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.2.0...0.2.1) + +**Implemented enhancements:** + +- Authentication issues [\#94](https://github.com/tchellomello/python-ring-doorbell/issues/94) +- \[bug\] Battery life shows 100 when its not [\#91](https://github.com/tchellomello/python-ring-doorbell/issues/91) +- Should session cache be saved if save session is set to False? [\#79](https://github.com/tchellomello/python-ring-doorbell/issues/79) + +## [0.2.0](https://github.com/tchellomello/python-ring-doorbell/tree/0.2.0) (2018-05-16) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.1.9...0.2.0) + +**Fixed bugs:** + +- Getting TypeError [\#86](https://github.com/tchellomello/python-ring-doorbell/issues/86) +- Make sure battery\_life argument exists before comparison [\#88](https://github.com/tchellomello/python-ring-doorbell/pull/88) (@tchellomello) + +**Closed issues:** + +- Push Notification Token [\#61](https://github.com/tchellomello/python-ring-doorbell/issues/61) + +**Merged pull requests:** + +- only save token to disk if reuse session is true [\#81](https://github.com/tchellomello/python-ring-doorbell/pull/81) (@andrewkress) + +## [0.1.9](https://github.com/tchellomello/python-ring-doorbell/tree/0.1.9) (2017-11-29) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.1.8...0.1.9) + +**Implemented enhancements:** + +- Create a generic update\(\) call which updates all devices under top-level Ring object [\#74](https://github.com/tchellomello/python-ring-doorbell/issues/74) +- Created generic update method for all devices on Ring top-parent object [\#75](https://github.com/tchellomello/python-ring-doorbell/pull/75) (@tchellomello) + +## [0.1.8](https://github.com/tchellomello/python-ring-doorbell/tree/0.1.8) (2017-11-22) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.1.7...0.1.8) + +**Implemented enhancements:** + +- Add a controller to only call download\_url\(\) or download\_video\(\) if account has subscription [\#71](https://github.com/tchellomello/python-ring-doorbell/issues/71) +- Added controllter to verify if account has subscription [\#72](https://github.com/tchellomello/python-ring-doorbell/pull/72) (@tchellomello) + +## [0.1.7](https://github.com/tchellomello/python-ring-doorbell/tree/0.1.7) (2017-11-14) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.1.6...0.1.7) + +**Implemented enhancements:** + +- Doorbell history does not return all events [\#63](https://github.com/tchellomello/python-ring-doorbell/issues/63) +- Allows `older_than` parameter to history\(\) method [\#69](https://github.com/tchellomello/python-ring-doorbell/pull/69) (@tchellomello) + +**Fixed bugs:** + +- Change to logger.debug when calling the history\(\) method [\#67](https://github.com/tchellomello/python-ring-doorbell/issues/67) +- Traceback if req is None [\#64](https://github.com/tchellomello/python-ring-doorbell/issues/64) +- Changed from warning to logger.debug [\#68](https://github.com/tchellomello/python-ring-doorbell/pull/68) (@tchellomello) +- Fixed traceback when req.status\_code is None [\#65](https://github.com/tchellomello/python-ring-doorbell/pull/65) (@tchellomello) + +**Merged pull requests:** + +- Update README.rst [\#66](https://github.com/tchellomello/python-ring-doorbell/pull/66) (@ntalekt) + +## [0.1.6](https://github.com/tchellomello/python-ring-doorbell/tree/0.1.6) (2017-10-19) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.1.5...0.1.6) + +**Implemented enhancements:** + +- Add support to Stick Up cameras [\#38](https://github.com/tchellomello/python-ring-doorbell/issues/38) +- Added floodlight lights and siren support [\#58](https://github.com/tchellomello/python-ring-doorbell/pull/58) (@jsetton) + +## [0.1.5](https://github.com/tchellomello/python-ring-doorbell/tree/0.1.5) (2017-10-17) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.1.4...0.1.5) + +**Implemented enhancements:** + +- Split source code into different files [\#54](https://github.com/tchellomello/python-ring-doorbell/issues/54) +- Fix \_\_init\_\_ methods [\#49](https://github.com/tchellomello/python-ring-doorbell/issues/49) +- How to get RSSI? [\#47](https://github.com/tchellomello/python-ring-doorbell/issues/47) +- Limit not returning what I expected [\#45](https://github.com/tchellomello/python-ring-doorbell/issues/45) +- Allows history to enforce to return minimum number of events for a given type [\#56](https://github.com/tchellomello/python-ring-doorbell/pull/56) (@tchellomello) +- House keeping: split source code into different files [\#55](https://github.com/tchellomello/python-ring-doorbell/pull/55) (@tchellomello) +- Refactored unittests [\#53](https://github.com/tchellomello/python-ring-doorbell/pull/53) (@tchellomello) +- Refactored methods to don't override \_\_init\_\_ from RingGeneric [\#52](https://github.com/tchellomello/python-ring-doorbell/pull/52) (@tchellomello) +- Implemented health parameters reporting \(wifi, wifi\_rssi\) [\#50](https://github.com/tchellomello/python-ring-doorbell/pull/50) (@tchellomello) + +**Fixed bugs:** + +- Fix Unit Tests [\#51](https://github.com/tchellomello/python-ring-doorbell/issues/51) + +**Merged pull requests:** + +- add wifi connection status property [\#48](https://github.com/tchellomello/python-ring-doorbell/pull/48) (@keeth) +- chime: Support playing motion test sound [\#46](https://github.com/tchellomello/python-ring-doorbell/pull/46) (@vickyg3) +- adds support for stickup & floodlight cams [\#44](https://github.com/tchellomello/python-ring-doorbell/pull/44) (@jlippold) + +## [0.1.4](https://github.com/tchellomello/python-ring-doorbell/tree/0.1.4) (2017-04-30) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/v0.1.3...0.1.4) + +**Fixed bugs:** + +- AttributeError: 'Ring' object has no attribute 'has\_subscription' [\#40](https://github.com/tchellomello/python-ring-doorbell/issues/40) + +**Merged pull requests:** + +- 0.1.4 [\#42](https://github.com/tchellomello/python-ring-doorbell/pull/42) (@tchellomello) + +## [v0.1.3](https://github.com/tchellomello/python-ring-doorbell/tree/v0.1.3) (2017-03-31) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.1.2...v0.1.3) + +## [0.1.2](https://github.com/tchellomello/python-ring-doorbell/tree/0.1.2) (2017-03-20) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.1.1...0.1.2) + +**Implemented enhancements:** + +- Feature request: Change Chime ring [\#19](https://github.com/tchellomello/python-ring-doorbell/issues/19) +- Allows to filter history by event kind: 'motion', 'on\_demand', 'ding' [\#20](https://github.com/tchellomello/python-ring-doorbell/pull/20) (@tchellomello) + +**Fixed bugs:** + +- Doesn't work with shared doorbells/Chimes [\#31](https://github.com/tchellomello/python-ring-doorbell/issues/31) +- Fixes traceback when response is not a list. [\#33](https://github.com/tchellomello/python-ring-doorbell/pull/33) (@tchellomello) +- Added the ability to load devices shared to the Ring account. Fixes issue \#31 [\#32](https://github.com/tchellomello/python-ring-doorbell/pull/32) (@tchellomello) + +**Merged pull requests:** + +- Extended unittest coverage to check\_alerts [\#30](https://github.com/tchellomello/python-ring-doorbell/pull/30) (@tchellomello) +- Added new example [\#27](https://github.com/tchellomello/python-ring-doorbell/pull/27) (@tchellomello) +- Update README.rst [\#26](https://github.com/tchellomello/python-ring-doorbell/pull/26) (@tchellomello) +- Rebasing master from dev [\#25](https://github.com/tchellomello/python-ring-doorbell/pull/25) (@tchellomello) +- Added basic structure for docs [\#24](https://github.com/tchellomello/python-ring-doorbell/pull/24) (@tchellomello) +- Unittests [\#22](https://github.com/tchellomello/python-ring-doorbell/pull/22) (@tchellomello) +- Introduced check\_alerts\(\) method [\#17](https://github.com/tchellomello/python-ring-doorbell/pull/17) (@tchellomello) + +## [0.1.1](https://github.com/tchellomello/python-ring-doorbell/tree/0.1.1) (2017-03-09) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.1.0...0.1.1) + +**Merged pull requests:** + +- v0.1.1 [\#18](https://github.com/tchellomello/python-ring-doorbell/pull/18) (@tchellomello) + +## [0.1.0](https://github.com/tchellomello/python-ring-doorbell/tree/0.1.0) (2017-02-25) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.0.4...0.1.0) + +**Breaking change:** + +The code was refactored to allow to manipulate the objects in a better way. + +**Implemented enhancements:** + +- Refactored project to make it more Pythonish and transparent [\#14](https://github.com/tchellomello/python-ring-doorbell/pull/14) (@tchellomello) + +## [0.0.4](https://github.com/tchellomello/python-ring-doorbell/tree/0.0.4) (2017-02-15) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.0.3...0.0.4) + +**Merged pull requests:** + +- 0.0.4 [\#12](https://github.com/tchellomello/python-ring-doorbell/pull/12) (@tchellomello) + +## [0.0.3](https://github.com/tchellomello/python-ring-doorbell/tree/0.0.3) (2017-02-15) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.0.2...0.0.3) + +**Merged pull requests:** + +- Fixed metadata setup.py [\#11](https://github.com/tchellomello/python-ring-doorbell/pull/11) (@tchellomello) +- 0.0.3 [\#10](https://github.com/tchellomello/python-ring-doorbell/pull/10) (@tchellomello) + +## [0.0.2](https://github.com/tchellomello/python-ring-doorbell/tree/0.0.2) (2017-02-15) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/0.0.1...0.0.2) + +**Fixed bugs:** + +- Fix battery\_lifetime\(\) function [\#6](https://github.com/tchellomello/python-ring-doorbell/issues/6) +- Fix traceback when trying to download a recording without subscription [\#3](https://github.com/tchellomello/python-ring-doorbell/issues/3) +- Fix range for battery information [\#7](https://github.com/tchellomello/python-ring-doorbell/pull/7) (@tchellomello) + +## [0.0.1](https://github.com/tchellomello/python-ring-doorbell/tree/0.0.1) (2017-02-12) + +[Full Changelog](https://github.com/tchellomello/python-ring-doorbell/compare/1f01b44074cb8d72ca40c83b896ea79768fde885...0.0.1) + +**Merged pull requests:** + +- Merging from dev [\#5](https://github.com/tchellomello/python-ring-doorbell/pull/5) (@tchellomello) +- Implemented travis, tox tests [\#4](https://github.com/tchellomello/python-ring-doorbell/pull/4) (@tchellomello) +- Refactored and updated documentation [\#2](https://github.com/tchellomello/python-ring-doorbell/pull/2) (@tchellomello) +- Make flake8 happy [\#1](https://github.com/tchellomello/python-ring-doorbell/pull/1) (@tchellomello) + + + +\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)* diff --git a/CHANGELOG.rst b/CHANGELOG.rst deleted file mode 100644 index 09945c40..00000000 --- a/CHANGELOG.rst +++ /dev/null @@ -1,5 +0,0 @@ -========= -Changelog -========= - -An up to date dynamic changelog can found on `readthedocs `_. diff --git a/RELEASING.md b/RELEASING.md new file mode 100644 index 00000000..95535b7f --- /dev/null +++ b/RELEASING.md @@ -0,0 +1,166 @@ +# Releasing + +## Requirements +* [github client](https://github.com/cli/cli#installation) +* [gitchub_changelog_generator](https://github.com/github-changelog-generator) +* [github access token](https://github.com/github-changelog-generator/github-changelog-generator#github-token) + +## Export changelog token + +```bash +export CHANGELOG_GITHUB_TOKEN=token +``` + +## Set release information + +```bash +export NEW_RELEASE=x.x.x +``` + +## Normal releases from master + +### Create a branch for the release + +```bash +git checkout master +git fetch upstream master +git rebase upstream/master +git checkout -b release/$NEW_RELEASE +``` + +### Update the version number + +```bash +poetry version $NEW_RELEASE +``` + +### Update dependencies + +```bash +poetry install --all-extras --sync +poetry update +``` + +### Run pre-commit and tests + +```bash +pre-commit run --all-files +pytest +``` + +### Create release summary (skip for dev releases) + +Write a short and understandable summary for the release. Can include images. + +#### Create $NEW_RELEASE milestone in github + +If not already created + +#### Create new issue linked to the milestone + +```bash +gh issue create --label "release-summary" --milestone $NEW_RELEASE --title "$NEW_RELEASE Release Summary" --body "**Release highlights:**" +``` + +You can exclude the --body option to get an interactive editor or go into the issue on github and edit there. + +#### Close the issue + +Either via github or: + +```bash +gh issue close ISSUE_NUMBER +``` + +### Generate changelog + +Configuration settings are in `.github_changelog_generator` + +#### For pre-release + +EXCLUDE_TAGS will exclude all dev tags except for the current release dev tags. + +Regex should be something like this `^((?!0\.9\.0)(.*dev\d))+`. The first match group negative matches on the current release and the second matches on releases ending with dev. + +```bash +EXCLUDE_TAGS=${NEW_RELEASE%.dev*}; EXCLUDE_TAGS=${EXCLUDE_TAGS//"."/"\."}; EXCLUDE_TAGS="^((?!"$EXCLUDE_TAGS")(.*dev\d))+" +echo "$EXCLUDE_TAGS" +github_changelog_generator --future-release $NEW_RELEASE --exclude-tags-regex "$EXCLUDE_TAGS" +``` + +#### For production + +```bash +github_changelog_generator --future-release $NEW_RELEASE --exclude-tags-regex 'dev\d$' +``` + +You can ignore warnings about missing PR commits like below as these relate to PRs to branches other than master: +``` +Warning: PR 29 merge commit was not found in the release branch or tagged git history and no rebased SHA comment was found +``` + + +### Export new release notes to variable + +```bash +export RELEASE_NOTES=$(grep -Poz '(?<=\# Changelog\n\n)(.|\n)+?(?=\#\#)' CHANGELOG.md | tr '\0' '\n' ) +echo "$RELEASE_NOTES" # Check the output and copy paste if neccessary +``` + +### Commit and push the changed files + +```bash +git commit --all --verbose -m "Prepare $NEW_RELEASE" +git push upstream release/$NEW_RELEASE -u +``` + +### Create a PR for the release, merge it, and re-fetch the master + +#### Create the PR +``` +gh pr create --title "Prepare $NEW_RELEASE" --body "$RELEASE_NOTES" --label release-prep --base master +``` + +#### Merge the PR once the CI passes + +Create a squash commit and add the markdown from the PR description to the commit description. + +```bash +gh pr merge --squash --body "$RELEASE_NOTES" +``` + +### Rebase local master + +```bash +git checkout master +git fetch upstream master +git rebase upstream/master +``` + +### Create a release tag + +Note, add changelog release notes as the tag commit message so `gh release create --notes-from-tag` can be used to create a release draft. + +```bash +git tag --annotate $NEW_RELEASE -m "$RELEASE_NOTES" +git push upstream $NEW_RELEASE +``` + +### Create release + +#### Pre-releases + +```bash +gh release create "$NEW_RELEASE" --verify-tag --notes-from-tag --title "$NEW_RELEASE" --draft --latest=false --prerelease + +``` + +#### Production release + +```bash +gh release create "$NEW_RELEASE" --verify-tag --notes-from-tag --title "$NEW_RELEASE" --draft --latest=true +``` + +### Manually publish the release + +Go to the linked URL, verify the contents, and click "release" button to trigger the release CI. \ No newline at end of file diff --git a/RELEASING.rst b/RELEASING.rst deleted file mode 100644 index b9bb17e4..00000000 --- a/RELEASING.rst +++ /dev/null @@ -1,40 +0,0 @@ -========= -Releasing -========= - -These are the steps to create a release -======================================= - -1. Create Release branch:: - - $ git checkout -b 0.7.x-release master - -#. Bump version number:: - - $ poetry version 0.7.x - -#. Create a draft release in GitHub - - Generate the release notes in GitHub - Add to the top of the CHANGELOG.rst file (TODO automate this step into the docs build) - -#. Test the build:: - - $ poetry build - - Check the dist directory sources are as expected - -#. Commit changes and merge to master:: - - $ git commit -m "Bump version to 0.7.x" - - Create and merge PR into master - -#. Publish the release on GitHub - - GitHub workflow `pythonpublish.yml` will then publish to pypi.org - readthedocs will compile the latest docs - -#. Check the release - - Verify on pypi and readthedocs.io \ No newline at end of file diff --git a/docs/source/changelog.md b/docs/source/changelog.md new file mode 100644 index 00000000..a155cbb6 --- /dev/null +++ b/docs/source/changelog.md @@ -0,0 +1 @@ +:::{include} ../../CHANGELOG.md diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst deleted file mode 100644 index 164a1608..00000000 --- a/docs/source/changelog.rst +++ /dev/null @@ -1,8 +0,0 @@ -========= -Changelog -========= - -.. changelog:: - :changelog-url: https://python-ring-doorbell.readthedocs.io/latest/changelog.html - :github: https://github.com/tchellomello/python-ring-doorbell/releases/ - :pypi: https://pypi.org/project/ring-doorbell/ diff --git a/docs/source/conf.py b/docs/source/conf.py index 1129d073..73d3da2e 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -4,7 +4,6 @@ # https://www.sphinx-doc.org/en/master/usage/configuration.html from __future__ import annotations -import os from importlib.metadata import version as _version # -- Project information ----------------------------------------------------- @@ -24,7 +23,11 @@ "sphinx.ext.coverage", "sphinx.ext.viewcode", "sphinx.ext.todo", - "sphinx_github_changelog", + "myst_parser", +] + +myst_enable_extensions = [ + "colon_fence", ] templates_path = ["_templates"] @@ -36,4 +39,3 @@ html_theme = "sphinx_rtd_theme" html_static_path = ["_static"] master_doc = "index" -sphinx_github_changelog_token = os.environ.get("CHANGELOG_GITHUB_TOKEN") diff --git a/poetry.lock b/poetry.lock index c266a315..2682deec 100644 --- a/poetry.lock +++ b/poetry.lock @@ -824,13 +824,13 @@ files = [ [[package]] name = "importlib-metadata" -version = "8.3.0" +version = "8.4.0" description = "Read metadata from Python packages" optional = true python-versions = ">=3.8" files = [ - {file = "importlib_metadata-8.3.0-py3-none-any.whl", hash = "sha256:42817a4a0be5845d22c6e212db66a94ad261e2318d80b3e0d363894a79df2b67"}, - {file = "importlib_metadata-8.3.0.tar.gz", hash = "sha256:9c8fa6e8ea0f9516ad5c8db9246a731c948193c7754d3babb0114a05b27dd364"}, + {file = "importlib_metadata-8.4.0-py3-none-any.whl", hash = "sha256:66f342cc6ac9818fc6ff340576acd24d65ba0b3efabb2b4ac08b598965a4a2f1"}, + {file = "importlib_metadata-8.4.0.tar.gz", hash = "sha256:9a547d3bc3608b025f93d403fdd1aae741c24fbb8314df4b155675742ce303c5"}, ] [package.dependencies] @@ -869,6 +869,30 @@ MarkupSafe = ">=2.0" [package.extras] i18n = ["Babel (>=2.7)"] +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = true +python-versions = ">=3.8" +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + [[package]] name = "markupsafe" version = "2.1.5" @@ -938,6 +962,36 @@ files = [ {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, ] +[[package]] +name = "mdit-py-plugins" +version = "0.4.1" +description = "Collection of plugins for markdown-it-py" +optional = true +python-versions = ">=3.8" +files = [ + {file = "mdit_py_plugins-0.4.1-py3-none-any.whl", hash = "sha256:1020dfe4e6bfc2c79fb49ae4e3f5b297f5ccd20f010187acc52af2921e27dc6a"}, + {file = "mdit_py_plugins-0.4.1.tar.gz", hash = "sha256:834b8ac23d1cd60cec703646ffd22ae97b7955a6d596eb1d304be1e251ae499c"}, +] + +[package.dependencies] +markdown-it-py = ">=1.0.0,<4.0.0" + +[package.extras] +code-style = ["pre-commit"] +rtd = ["myst-parser", "sphinx-book-theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = true +python-versions = ">=3.7" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + [[package]] name = "mock" version = "5.1.0" @@ -1111,6 +1165,32 @@ files = [ {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, ] +[[package]] +name = "myst-parser" +version = "3.0.1" +description = "An extended [CommonMark](https://spec.commonmark.org/) compliant parser," +optional = true +python-versions = ">=3.8" +files = [ + {file = "myst_parser-3.0.1-py3-none-any.whl", hash = "sha256:6457aaa33a5d474aca678b8ead9b3dc298e89c68e67012e73146ea6fd54babf1"}, + {file = "myst_parser-3.0.1.tar.gz", hash = "sha256:88f0cb406cb363b077d176b51c476f62d60604d68a8dcdf4832e080441301a87"}, +] + +[package.dependencies] +docutils = ">=0.18,<0.22" +jinja2 = "*" +markdown-it-py = ">=3.0,<4.0" +mdit-py-plugins = ">=0.4,<1.0" +pyyaml = "*" +sphinx = ">=6,<8" + +[package.extras] +code-style = ["pre-commit (>=3.0,<4.0)"] +linkify = ["linkify-it-py (>=2.0,<3.0)"] +rtd = ["ipython", "sphinx (>=7)", "sphinx-autodoc2 (>=0.5.0,<0.6.0)", "sphinx-book-theme (>=1.1,<2.0)", "sphinx-copybutton", "sphinx-design", "sphinx-pyscript", "sphinx-tippy (>=0.4.3)", "sphinx-togglebutton", "sphinxext-opengraph (>=0.9.0,<0.10.0)", "sphinxext-rediraffe (>=0.2.7,<0.3.0)"] +testing = ["beautifulsoup4", "coverage[toml]", "defusedxml", "pytest (>=8,<9)", "pytest-cov", "pytest-param-files (>=0.6.0,<0.7.0)", "pytest-regressions", "sphinx-pytest"] +testing-docutils = ["pygments", "pytest (>=8,<9)", "pytest-param-files (>=0.6.0,<0.7.0)"] + [[package]] name = "nodeenv" version = "1.9.1" @@ -1567,22 +1647,6 @@ docs = ["sphinxcontrib-websupport"] lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-simplify", "isort", "mypy (>=0.990)", "ruff", "sphinx-lint", "types-requests"] test = ["cython (>=3.0)", "filelock", "html5lib", "pytest (>=4.6)", "setuptools (>=67.0)"] -[[package]] -name = "sphinx-github-changelog" -version = "1.4.0" -description = "Build a sphinx changelog from GitHub Releases" -optional = true -python-versions = "<4.0,>=3.8" -files = [ - {file = "sphinx_github_changelog-1.4.0-py3-none-any.whl", hash = "sha256:cdf2099ea3e4587ae8637be7ba609738bfdeca4bd80c5df6fc45046735ae5c2f"}, - {file = "sphinx_github_changelog-1.4.0.tar.gz", hash = "sha256:204745e93a1f280e4664977b5fee526b0a011c92ca19c304bd01fd641ddb6393"}, -] - -[package.dependencies] -docutils = "*" -requests = "*" -Sphinx = "*" - [[package]] name = "sphinx-rtd-theme" version = "1.3.0" @@ -1921,10 +1985,10 @@ doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linke test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] [extras] -docs = ["sphinx", "sphinx-github-changelog", "sphinx-rtd-theme"] +docs = ["myst-parser", "sphinx", "sphinx-rtd-theme"] listen = ["firebase-messaging"] [metadata] lock-version = "2.0" python-versions = "^3.9" -content-hash = "19bf4badf8680f492fb44f09e4f6d00145f26561eb1573a6ddd2c9707022c3db" +content-hash = "267dd0ebee538931ddc07f5cf615e29a611ac5ed3a18d9eccaf765d97aefbafe" diff --git a/pyproject.toml b/pyproject.toml index 232f5453..8190b257 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,7 +45,7 @@ aiofiles = ">=23" anyio = "*" # see https://github.com/python-trio/asyncclick/issues/18 sphinx = {version = "<7.2.6", optional = true} sphinx-rtd-theme = {version = "^1.3.0", optional = true} -sphinx-github-changelog = {version = "^1.2.1", optional = true} +myst-parser = { version = "*", optional = true } firebase-messaging = {version = "^0.3.0", optional = true} [tool.poetry.group.dev.dependencies] @@ -66,7 +66,7 @@ types-aiofiles = ">=23" mypy = "^1" [tool.poetry.extras] -docs = ["sphinx", "sphinx-rtd-theme", "sphinx-github-changelog"] +docs = ["sphinx", "sphinx-rtd-theme", "myst-parser"] listen = ["firebase-messaging"] [tool.pytest.ini_options]