Community Improvements!
To foster growth and fortify support for this library, we've initiated steps to streamline external contributions. Our goal is to ensure clarity in our guidelines, making it straightforward for contributors to get their code merged. To this end, we've integrated the following changes:
- **GitHub Actions CI Migration**: This is a shift towards an efficient Continuous Integration process.
- **GitHub Templates**: We've added templates for both pull requests and issues, simplifying the process to report bugs, request features, and contribute.
- **Contribution Guidelines**: Introduced to maintain a consistent code and standards across the board.
We're excited to announce that our project roadmap is now public! If you're keen on keeping tabs on our development journey, peek into our [next release roadmap](https://github.com/users/palazzem/projects/3/views/1). Plus, for those who have questions or seek support regarding this library or its Home Assistant integration version, we've launched a dedicated Discord channel. [We invite you to join](https://discord.gg/NSmAPWw8tE)!
While these improvements are not that significant, they're the beginning. Our commitment is to continually update and rejuvenate the development of this library. A heartfelt thanks to our vibrant community for your invaluable feedback, bug reports, and engaging discussions on feature enhancements!
What's Changed
Dependencies and Requirements
- Update supported Python versions: removed 3.5 (EOL) and added 3.9 (https://github.com/palazzem/econnect-python/pull/60) - this change is to respect the development of `0.4.0`. We'll update the test matrix in the upcoming release.
Client/API
- `ElmoClient` constructor has defaults to establish the connection (https://github.com/palazzem/econnect-python/pull/61)
- Introduce a safer API so that only HTTPS urls can be used (https://github.com/palazzem/econnect-python/pull/63)
- The client now handles session token expiration (10m) (https://github.com/palazzem/econnect-python/pull/64)
- Improved error handling to provide better descriptions in case of exceptions (https://github.com/palazzem/econnect-python/pull/65)
- Ensure `unlock()` is called even if an exception is raised in the block (https://github.com/palazzem/econnect-python/pull/66)
- Implement long-polling to retrieve state updates (https://github.com/palazzem/econnect-python/pull/67)
- Add support for selective exclusion and readmission of inputs (https://github.com/palazzem/econnect-python/pull/55 - thanks davidecavestro!)
- Remove `check()` API (https://github.com/palazzem/econnect-python/pull/71)
- Refactor `query()` API so that a raw query is returned; add `excluded` field to returned dict (https://github.com/palazzem/econnect-python/issues/57, https://github.com/palazzem/econnect-python/pull/72)
- `query()` API returns also `last_id` field; items are grouped under `sectors` or `inputs` keys (https://github.com/palazzem/econnect-python/pull/73)
- Include `status` field in `query()` API (https://github.com/palazzem/econnect-python/pull/74)
Documentation
- Better description about how to use `secret-code` in the README example (https://github.com/palazzem/econnect-python/pull/62/)
Read the [full changeset](https://github.com/palazzem/econnect-python/compare/v0.3.1...v0.4.0) and the [release milestone](https://github.com/palazzem/econnect-python/milestone/5?closed=1).