Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0.1.0 #146

Merged
merged 85 commits into from
Sep 3, 2024
Merged

0.1.0 #146

merged 85 commits into from
Sep 3, 2024

Conversation

github-actions[bot]
Copy link

@github-actions github-actions bot commented Sep 2, 2024

Changelog

V0.0.13a27 (2024-08-16)

Full Changelog

Breaking changes:

V0.0.13a26 (2024-08-05)

Full Changelog

Merged pull requests:

V0.0.13a25 (2024-08-03)

Full Changelog

Merged pull requests:

V0.0.13a24 (2024-07-17)

Full Changelog

Merged pull requests:

V0.0.13a23 (2024-07-11)

Full Changelog

Merged pull requests:

V0.0.13a22 (2024-06-25)

Full Changelog

Fixed bugs:

V0.0.13a21 (2024-06-22)

Full Changelog

Implemented enhancements:

V0.0.13a20 (2024-06-22)

Full Changelog

Fixed bugs:

  • log_level change should be handles by services #125

Merged pull requests:

V0.0.13a19 (2024-06-18)

Full Changelog

Fixed bugs:

  • update workflows #108
  • ovos-config set doesn't take the path syntax that ovos-config get outputs #73
  • ovos-config command line not giving expected response #59
  • fix config set #134 (JarbasAl)

Closed issues:

  • source/destination documentation #69

V0.0.13a18 (2024-06-11)

Full Changelog

Implemented enhancements:

V0.0.13a17 (2024-06-08)

Full Changelog

Fixed bugs:

  • trying to black list a skill. throws error #118
  • fix: unbound local var #127 (mikejgray)

V0.0.13a16 (2024-06-06)

Full Changelog

Merged pull requests:

  • Update python-dateutil requirement from ~=2.6 to ~=2.9 in /requirements #115 (dependabot[bot])

V0.0.13a15 (2024-06-06)

Full Changelog

Fixed bugs:

V0.0.13a14 (2024-06-04)

Full Changelog

Merged pull requests:

V0.0.13a13 (2024-05-30)

Full Changelog

Merged pull requests:

V0.0.13a12 (2024-02-26)

Full Changelog

V0.0.13a11 (2024-02-26)

Full Changelog

Merged pull requests:

V0.0.13a10 (2024-02-26)

Full Changelog

Merged pull requests:

  • Update ovos-backend-client requirement from <0.1.0 to <0.2.0 in /requirements #104 (dependabot[bot])

V0.0.13a9 (2024-02-26)

Full Changelog

Implemented enhancements:

Merged pull requests:

  • Update ovos-bus-client requirement from ~=0.0.3 to ~=0.0.8 in /requirements #106 (dependabot[bot])

V0.0.13a8 (2024-02-24)

Full Changelog

Merged pull requests:

V0.0.13a7 (2024-02-07)

Full Changelog

Fixed bugs:

V0.0.13a6 (2024-01-23)

Full Changelog

Merged pull requests:

V0.0.13a5 (2024-01-23)

Full Changelog

Implemented enhancements:

V0.0.13a4 (2024-01-23)

Full Changelog

V0.0.13a3 (2024-01-23)

Full Changelog

Implemented enhancements:

Merged pull requests:

V0.0.13a2 (2024-01-19)

Full Changelog

Implemented enhancements:

Closed issues:

  • Services don't start with malformed configuration #97

V0.0.13a1 (2023-12-29)

Full Changelog

Merged pull requests:

* This Changelog was automatically generated by github_changelog_generator

Summary by CodeRabbit

  • New Features

    • Introduced automated version updates for Python packages via Dependabot.
    • Added support for distribution-specific configuration management.
    • Enhanced configuration handling with new plugins for utterance processing.
  • Bug Fixes

    • Improved error message formatting in configuration management.
  • Documentation

    • Updated CHANGELOG to reflect significant changes and version updates.
    • Added a LICENSE file outlining usage terms under Apache License 2.0.
  • Chores

    • Updated dependency versions to ensure compatibility and access to new features.

JarbasAl and others added 30 commits December 29, 2023 22:55
* derprecated util

* derprecated util

* defaults/transformer_plugins

document transformer plugins and enable utterance normalizer by default
* update/stop_pipeline

add stop to the pipeline by default

companion to OpenVoiceOS/ovos-core#391

* Update mycroft.conf

* Update mycroft.conf
* readd low adapt matches

* adjust common_qa

* adjust pipeline
* fix/remove_broken_patch

patch for mycroft-era `Configuration.get`  (now `Configuration()`) is broken and causes .get to behave weirdly

```
  self.config = dict(Configuration()) # below is False, like in mycroft.conf
        self.config = Configuration() # below is None ????
        self.audio_enabled = self.config.get("enable_old_audioservice")
```

* bad test

* signal breaking change

ripping out a broken patch that we dont use anywhere, but technically a breaking change. 

who knows how many places are not actually reading config...

bumping to 0.1.0 in case anything depends on the broken behaviour

* Update version.py
reprioritize pipeline components
* Update meta.py

improve env vars handling

* typo

* os.env priority

* Update meta.py
…ements (#106)

Updates the requirements on [ovos-bus-client](https://github.com/OpenVoiceOS/ovos-bus-client) to permit the latest version.
- [Release notes](https://github.com/OpenVoiceOS/ovos-bus-client/releases)
- [Changelog](https://github.com/OpenVoiceOS/ovos-bus-client/blob/dev/CHANGELOG.md)
- [Commits](OpenVoiceOS/ovos-bus-client@V0.0.3...V0.0.8)

---
updated-dependencies:
- dependency-name: ovos-bus-client
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
JarbasAl and others added 13 commits July 17, 2024 23:10
document "fake_barge_in"
* deprecate/ovos_conf

move exclusively to env vars, ovos.conf file is of very limited use, also not a standard pattern and very uncommon in other projects, it just causes confusion to users and distro packagers

(i also simply don't like it and don't want to maintain it :P )

* tests

* fix test
Copy link
Contributor

coderabbitai bot commented Sep 2, 2024

Walkthrough

The changes encompass updates to configuration files, GitHub workflows, dependency management, and version control. Key modifications include the introduction of a Dependabot configuration for automated package updates, enhancements to GitHub Actions for testing workflows, and adjustments to various configuration settings across multiple files. Additionally, versioning information has been updated, and deprecated methods have been removed to streamline the codebase.

Changes

File(s) Change Summary
.github/dependabot.yml Introduced Dependabot configuration for automated Python package updates.
.github/workflows/*.yml Updated Python version matrix, actions versions, and caching options in workflow files.
.gitignore Added test_conf.json to the list of ignored files.
CHANGELOG.md Updated to reflect version transition and document enhancements, bug fixes, and breaking changes.
LICENSE Added Apache License, Version 2.0 for legal framework.
ovos_config/*.py Modified configuration handling, introduced new classes and methods, and removed deprecated code.
ovos_config/mycroft.conf Enhanced configuration settings for plugins and updated deprecated options.
requirements/*.txt Updated version constraints for dependencies to allow newer versions.
test/unittests/*.py Removed and modified test cases to reflect changes in configuration management logic.
ovos_config/version.py Incremented VERSION_MINOR and reset VERSION_BUILD.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant GitHub Actions
    participant Dependabot
    participant Python Packages

    User->>GitHub Actions: Trigger CI/CD workflow
    GitHub Actions->>Python Packages: Install dependencies
    GitHub Actions->>Dependabot: Check for package updates
    Dependabot->>Python Packages: Update to latest versions
    Python Packages-->>GitHub Actions: Confirm updates
    GitHub Actions-->>User: Complete CI/CD process
Loading

🐰 In the meadow, changes bloom,
New configs and workflows loom.
With every hop, the code does cheer,
Fresh updates bring us all good cheer!
Dependencies dance, and tests take flight,
A brighter future, oh what a sight! 🌼


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.
Early access features: disabled

We are currently testing the following features in early access:

  • Anthropic claude-3-5-sonnet for code reviews: Anthropic claims that the new Claude model has stronger code understanding and code generation capabilities than their previous models. Note: Our default code review model was also updated late last week. Please compare the quality of the reviews between the two models by toggling the early access feature.

Note:

  • You can enable or disable early access features from the CodeRabbit UI or by updating the CodeRabbit configuration file.
  • Please join our Discord Community to provide feedback and report issues on the discussion post.

@JarbasAl
Copy link
Member

JarbasAl commented Sep 2, 2024

@coderabbitai review

Copy link
Contributor

coderabbitai bot commented Sep 2, 2024

Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Outside diff range, codebase verification and nitpick comments (2)
ovos_config/meta.py (1)

Line range hint 94-105: Move the dirname function call within the function body.

The static analysis tool Ruff has flagged a valid hint for the set_default_config function. It suggests not performing the dirname function call in the argument defaults. Instead, it recommends moving the call within the function body or reading the default from a module-level singleton variable.

To address this, consider applying the following change:

-def set_default_config(file_path=f"{dirname(__file__)}/mycroft.conf"):
+def set_default_config(file_path=None):
     """ full path to default config file to be used
     NOTE: this is a full path, not a directory! "config_filename" parameter is not used here

     different derivative cores may change this file, this value is derived from ovos.conf

     NOTE: this value will be set globally, per core overrides in ovos.conf take precedence
     """
     from ovos_utils.log import LOG

+    if file_path is None:
+        file_path = f"{dirname(__file__)}/mycroft.conf"
+
     LOG.info(f"default config file changed to: {file_path}")
     os.environ["OVOS_DEFAULT_CONFIG"] = file_path

This change moves the dirname function call within the function body, addressing the Ruff hint and improving the code quality.

CHANGELOG.md (1)

100-100: Fix the spelling of "blacklist".

The word "blacklist" should be spelled as one word, not two.

-trying to black list a skill.  throws error
+trying to blacklist a skill.  throws error
Tools
LanguageTool

[uncategorized] ~100-~100: The verb “blacklist” is spelled as one word.
Context: ....0.13a17) Fixed bugs: - trying to black list a skill. throws error [#118](https://...

(BLACK_LIST_COMPOUND)

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between b864210 and 21d775b.

Files selected for processing (20)
  • .github/dependabot.yml (1 hunks)
  • .github/workflows/build_tests.yml (1 hunks)
  • .github/workflows/install_tests.yml (2 hunks)
  • .github/workflows/unit_tests.yml (2 hunks)
  • .gitignore (1 hunks)
  • CHANGELOG.md (1 hunks)
  • LICENSE (1 hunks)
  • ovos_config/main.py (5 hunks)
  • ovos_config/config.py (8 hunks)
  • ovos_config/locations.py (2 hunks)
  • ovos_config/meta.py (6 hunks)
  • ovos_config/models.py (5 hunks)
  • ovos_config/mycroft.conf (13 hunks)
  • ovos_config/utils.py (2 hunks)
  • ovos_config/version.py (1 hunks)
  • requirements/extras.txt (1 hunks)
  • requirements/requirements.txt (1 hunks)
  • requirements/tests.txt (1 hunks)
  • test/unittests/test_configuration.py (1 hunks)
  • test/unittests/test_locations.py (3 hunks)
Files skipped from review due to trivial changes (5)
  • .github/dependabot.yml
  • .gitignore
  • LICENSE
  • ovos_config/utils.py
  • test/unittests/test_configuration.py
Additional context used
LanguageTool
requirements/tests.txt

[locale-violation] ~11-11: 'bus' é un xenismo. É preferíbel dicir "faixa-bus"
Context: ...ugin-vosk>=0.1.3 python-vlc==1.1.2 ovos-bus-client
=0.0.8

(GL_BARBARISM_REPLACE)

CHANGELOG.md

[uncategorized] ~100-~100: The verb “blacklist” is spelled as one word.
Context: ....0.13a17) Fixed bugs: - trying to black list a skill. throws error [#118](https://...

(BLACK_LIST_COMPOUND)

Ruff
ovos_config/meta.py

94-94: Do not perform function call dirname in argument defaults; instead, perform the call within the function, or read the default from a module-level singleton variable

(B008)

Additional comments not posted (50)
requirements/extras.txt (1)

1-1: Verify the compatibility of the updated dependency version.

Ensure that the updated ovos_backend_client dependency version (< 0.2.0) is compatible with the rest of the codebase and doesn't introduce any breaking changes.

Run the following script to verify the compatibility:

requirements/requirements.txt (1)

3-3: Verify compatibility with the updated python-dateutil version.

The version update of python-dateutil from ~=2.6 to ~=2.9 is approved. However, please ensure that:

  • The code is compatible with the new version.
  • All the tests pass after the version update.

Run the following script to verify compatibility:

ovos_config/version.py (2)

3-3: LGTM!

The change to VERSION_MINOR is consistent with the PR objective of introducing version 0.1.0. Incrementing the minor version suggests the addition of new features or enhancements that are backward-compatible.


4-4: LGTM!

Resetting the build number to 0 is a common practice when introducing a new minor version. It signifies a fresh start for the build cycle under the new minor version.

requirements/tests.txt (2)

11-11: LGTM!

The ovos-bus-client dependency update looks good.

Tools
LanguageTool

[locale-violation] ~11-11: 'bus' é un xenismo. É preferíbel dicir "faixa-bus"
Context: ...ugin-vosk>=0.1.3 python-vlc==1.1.2 ovos-bus-client
=0.0.8

(GL_BARBARISM_REPLACE)


3-3: Verify the compatibility of existing tests with the new pytest version.

The pytest version has been upgraded from 5.2.4 to 8.2.2, which is a major version upgrade. Ensure that the existing tests are compatible with the new version and make necessary adjustments if required.

Run the following script to verify the compatibility:

.github/workflows/build_tests.yml (1)

16-18: LGTM! The comments provide a clear justification for ignoring the vulnerabilities.

The changes to the pipaudit_ignored parameter are approved for the following reasons:

  1. PYSEC-2023-228 is a pip vulnerability that only exists in the pipeline, so it can be safely ignored in this context.
  2. GHSA-9wx4-h78v-vm56 is an upstream issue that is considered problematic, but it cannot be fixed in this project. Ignoring it is a pragmatic decision until the issue is resolved upstream.

The comments added to the configuration file provide valuable context for future maintainers, explaining the rationale behind ignoring these specific vulnerabilities.

.github/workflows/install_tests.yml (4)

14-14: LGTM!

The update to the python-version matrix looks good. It includes the latest Python version 3.11 and removes the older 3.7 version.


17-17: LGTM!

The update to the actions/checkout action version from v2 to v4 looks good. It ensures the workflow is using the latest version of the action.


19-19: LGTM!

The update to the actions/setup-python action version from v1 to v5 looks good. It ensures the workflow is using the latest version of the action.


22-22: LGTM!

The addition of the pip caching option looks good. It should help optimize the installation process by caching dependencies.

.github/workflows/unit_tests.yml (6)

7-15: LGTM!

The change from single quotes to double quotes for the paths-ignore patterns improves the uniformity of the YAML syntax without affecting the functionality.


37-37: LGTM!

Updating the Python version matrix to include newer versions 3.10 and 3.11 while removing the older 3.7 version is a good change. It ensures the project supports the latest Python versions and may enhance compatibility and performance.


40-40: LGTM!

Upgrading the actions/checkout action from version 2 to version 4 is a good change. It likely includes improvements and bug fixes from the action maintainers, which could lead to better performance and reliability of the CI/CD pipeline.


42-42: LGTM!

Upgrading the actions/setup-python action from version 2 to version 5 is a good change. It likely includes improvements and bug fixes from the action maintainers, which could lead to better performance and reliability of the CI/CD pipeline.


45-45: LGTM!

Setting the cache parameter to "pip" is a good change. It enables caching of pip packages, which can speed up the workflow by reducing the time spent on installing dependencies.


66-66: LGTM!

Upgrading the codecov/codecov-action action from version 2 to version 4 is a good change. It likely includes improvements and bug fixes from the action maintainers, which could lead to better performance and reliability of the CI/CD pipeline.

ovos_config/meta.py (4)

12-21: LGTM!

The changes to the get_ovos_config function enhance clarity and efficiency by promoting the use of environment variables for configuration management. The function has been simplified to return a dictionary containing environment variable values or defaults, which is a cleaner approach compared to the previous implementation.


23-28: Deprecation Approved.

The save_ovos_config function has been appropriately marked as deprecated, with a warning indicating that the ovos.conf file is no longer used. This change signals a transition away from the reliance on the ovos.conf file, which aligns with the overall shift towards a more environment-centric configuration strategy.


30-35: Deprecation Approved.

The get_ovos_default_config_paths function has been appropriately marked as deprecated, with a warning indicating that the ovos.conf file is no longer used. This change aligns with the overall shift towards a more environment-centric configuration strategy and the move away from the reliance on the ovos.conf file.


38-44: Deprecation Approved.

The is_using_xdg function has been appropriately marked as deprecated, with a warning indicating that XDG specs are always honored. This change reflects the simplification of the configuration process and the move towards a more consistent approach in honoring XDG specifications.

test/unittests/test_locations.py (4)

58-63: LGTM!

The changes to the expected output of get_config_locations in the test case are approved. The updated paths reflect the changes in the configuration management logic.


69-73: LGTM!

The changes to the test_globals test method are approved. Setting the environment variable directly within the test and removing the mock for mod_check simplifies the test setup.


90-92: LGTM!

The addition of the DISTRIBUTION_CONFIG import is approved. It aligns with the changes made to the test method, where the OVOS_DISTRIBUTION_CONFIG environment variable is set and asserted.


Line range hint 103-116: LGTM!

The additional assertions for testing the default config override are approved. These changes improve the test coverage and validate the behavior of the default config override using the OVOS_DEFAULT_CONFIG environment variable.

ovos_config/locations.py (4)

58-59: LGTM!

The code changes are approved.


67-68: LGTM!

The code changes are approved.


74-75: LGTM!

The code changes are approved.


109-111: LGTM!

The code changes are approved.

ovos_config/models.py (5)

24-24: LGTM!

The import statement change is approved as it is necessary to support the new OvosDistributionConfig class.


99-99: LGTM!

The code change is approved as it provides a clear error message for the in-memory configuration scenario.


105-105: LGTM!

The code changes are approved as they enhance compatibility with various file formats by ensuring proper handling of character encodings when reading and writing files.

Also applies to: 138-138, 142-142


123-125: LGTM!

The code changes are approved as they improve the robustness of the reload logic by preventing potential errors when _last_loaded is None.


188-190: LGTM!

The new OvosDistributionConfig class is approved as it enhances the overall functionality by providing a structured way to handle distribution configurations separately from user and system configurations.

ovos_config/__main__.py (4)

163-163: LGTM!

The change to use the list comprehension directly instead of wrapping it with len() is more concise and efficient.


257-257: LGTM!

Stripping leading slashes from the key parameter is a good practice to normalize the key format and avoid potential issues.


279-279: LGTM!

The simplification of the error message improves readability while preserving the content.


296-297: Clarify the purpose of initializing _value to None and any potential impact of defining local_conf earlier.

  • What is the reason for initializing _value to None? Is it used later in the function?
  • Are there any potential side effects or changes in behavior by defining local_conf earlier in the function?
ovos_config/config.py (4)

20-21: LGTM!

The code changes are approved.


45-45: LGTM!

The code changes are approved.


161-169: LGTM!

The code changes are approved.


186-186: LGTM!

The code changes are approved.

Also applies to: 277-278, 294-295

ovos_config/mycroft.conf (8)

127-137: LGTM!

The new "utterance_transformers" section looks good. The included plugins provide useful functionality for normalizing and correcting utterances between the STT and Intent stages.


139-141: LGTM!

The empty "metadata_transformers" section has been added as a placeholder for future plugins. No issues found.


145-179: LGTM!

The expanded "intents" section provides more granular control over the intent pipelines. The confidence thresholds and other parameters seem reasonable. No issues found.


182-205: LGTM!

The updated "OCP" section provides more control over the media request handling. The parameters seem reasonable and are well documented. No issues found.


Line range hint 454-564: LGTM!

The updated "listener" section streamlines the configuration. Enabling "instant_listen" improves the user experience by skipping checks after the wake word is recognized. No issues found.


Line range hint 592-630: LGTM!

The expanded "hotwords" section provides a robust fallback mechanism for hotword detection. Multiple detection engines are configured in a fallback chain, ensuring reliable hotword activation. No issues found.


641-649: LGTM!

The updated "gui" section configures the idle display skill and enables homescreen support in the generic GUI extension. No issues found.


Line range hint 754-805: LGTM!

The updated "Audio" section provides a smooth migration path to ovos-media by enabling the old audio service and configuring the default backend. The legacy OCP configuration and volume settings for VLC and MPV seem reasonable. No issues found.

@JarbasAl JarbasAl merged commit 7301fe7 into master Sep 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants