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

deprecate ready setting #554

Merged
merged 1 commit into from
Oct 15, 2024
Merged

deprecate ready setting #554

merged 1 commit into from
Oct 15, 2024

Conversation

JarbasAl
Copy link
Member

@JarbasAl JarbasAl commented Oct 9, 2024

companion to OpenVoiceOS/ovos-config#166

NOTES:

  • to check if a service is ready, this should be used https://github.com/OpenVoiceOS/ovos-utils/blob/dev/ovos_utils/process_utils.py#L124
  • now that skills are not necessarily managed by core, mycroft.ready message was emitted almost randomly and was not dependendable on
  • mycroft.ready is moved to finished booting skill and no longer blocks loading of ovos-core
  • external skills / anything registering intents should still use mycroft.ready in combination with ProcessUtils linked above to determine when to load

tests moved to other repos:

Summary by CodeRabbit

  • New Features

    • Enhanced skill management processes for improved efficiency.
    • Refined handling of skills requiring network or internet connections.
  • Bug Fixes

    • Improved synchronization checks during skill loading.
    • Deprecation of outdated methods to streamline skill management.
  • Tests

    • Expanded test coverage for blacklisted skill loading.
    • Adjustments made to the validation of event handlers in tests.
    • Removed obsolete test methods to enhance clarity.

@github-actions github-actions bot added the fix label Oct 9, 2024
@JarbasAl JarbasAl changed the title fix:remove_deprecated_ready_msg deprecate ready setting Oct 9, 2024
@JarbasAl JarbasAl added breaking breaks backwards compatibility (kinda) and removed fix labels Oct 9, 2024
@NeonDaniel
Copy link
Member

Why deprecate this? It is used in many skills and integrations to determine when core services are ready for normal usage

@JarbasAl
Copy link
Member Author

JarbasAl commented Oct 9, 2024

Why deprecate this? It is used in many skills and integrations to determine when core services are ready for normal usage

edited original post to include some extra info about this

@JarbasAl JarbasAl force-pushed the deprecate_ready branch 2 times, most recently from f3a731c to 2f2425c Compare October 14, 2024 00:32
Copy link

codecov bot commented Oct 14, 2024

Codecov Report

Attention: Patch coverage is 40.00000% with 9 lines in your changes missing coverage. Please review.

Project coverage is 76.43%. Comparing base (23f0bab) to head (a8e6fdc).
Report is 28 commits behind head on dev.

Files with missing lines Patch % Lines
ovos_core/skill_manager.py 40.00% 9 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##              dev     #554      +/-   ##
==========================================
+ Coverage   75.33%   76.43%   +1.09%     
==========================================
  Files          15       15              
  Lines        3094     1553    -1541     
==========================================
- Hits         2331     1187    -1144     
+ Misses        763      366     -397     
Flag Coverage Δ
end2end 56.27% <40.00%> (?)
unittests 54.08% <40.00%> (-21.26%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@JarbasAl JarbasAl marked this pull request as ready for review October 14, 2024 01:03
Copy link

coderabbitai bot commented Oct 14, 2024

Walkthrough

The changes in this pull request enhance the skill management functionality within the ovos_core module. Key updates include the removal of the deprecated load_priority, is_device_ready, handle_check_device_readiness, and check_services_ready methods. The run method has been improved for skill loading, and refinements have been made to methods handling network dependencies. Unit tests for the SkillManager class have been updated, including the removal of certain tests and adjustments to existing ones for better coverage and logging. Additionally, the workflow for coverage reporting has been streamlined.

Changes

File Path Change Summary
ovos_core/skill_manager.py - Added imports for SKILL_MAIN_MODULE, SkillLoader, and PluginSkillLoader.
- Deprecated and removed load_priority, is_device_ready, handle_check_device_readiness, and check_services_ready methods.
- Updated run method to remove wait_for_internet logic.
- Refined _load_on_network and _load_on_internet methods with added logging.
- Adjusted GUI connection handling for skills.
test/unittests/skills/test_manager.py - Removed test_handle_check_device_readiness method.
- Expanded test_load_new_skills_with_blacklisted_skill method with logging assertions.
test/unittests/skills/test_skill_manager.py - Altered test_instantiate method to comment out the 'mycroft.skills.initialized' event handler.
requirements/skills-audio.txt - Updated version constraint for ovos-skill-boot-finished from >=0.1.0,<1.0.0 to >=0.2.0,<1.0.0.
.github/workflows/coverage.yml - Updated test dependency installation path.
- Streamlined coverage report generation by removing specific installations and focusing on broader coverage.

Possibly related PRs

  • fix:usage without skills installed #555: The changes in ovos_core/skill_manager.py regarding skill loading processes and the introduction of a new attribute _detected_installed_skills are directly related to the modifications made in the same file in the main PR, which also focuses on enhancing skill management and loading logic.

Suggested labels

refactor, fix

Suggested reviewers

  • goldyfruit
  • j1nx
  • builderjer

Poem

In the burrow of code, changes hop,
Skills now load with a skip and a bop.
Old methods fade, new paths we trace,
With tests that ensure a smoother space.
So here's to the tweaks that make us cheer,
For a brighter skill future, let’s give a cheer! 🐇✨


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between c2d7402 and fa1d498.

📒 Files selected for processing (4)
  • ovos_core/skill_manager.py (7 hunks)
  • requirements/skills-audio.txt (1 hunks)
  • test/unittests/test_manager.py (0 hunks)
  • test/unittests/test_skill_manager.py (1 hunks)
💤 Files with no reviewable changes (1)
  • test/unittests/test_manager.py
🧰 Additional context used
🔇 Additional comments (4)
requirements/skills-audio.txt (1)

2-2: LGTM! Verify compatibility with the new minimum version.

The update to the version constraint for ovos-skill-boot-finished (from >=0.1.0,<1.0.0 to >=0.2.0,<1.0.0) aligns with the PR objectives of moving the mycroft.ready message to a skill. This change ensures that the latest implementation of the boot finished functionality is used.

To ensure compatibility, please verify that version 0.2.0 of ovos-skill-boot-finished is available and stable. You can use the following script to check:

This script will help ensure that the new minimum version is available, stable, and doesn't have any recent critical issues.

test/unittests/test_skill_manager.py (1)

Line range hint 1-278: Overall assessment of changes to test_skill_manager.py

The modification to the test_instantiate method is the only change in this file and aligns well with the PR objectives. The removal of the 'mycroft.skills.initialized' event from the expected results reflects the intended change in how readiness is determined in the system.

The change is minimal and focused, which reduces the risk of unintended side effects. However, it's crucial to ensure that this change is properly documented and communicated to developers who might be relying on the old behavior.

To ensure the change doesn't break existing functionality:

  1. Run the full test suite to confirm that all other tests pass.
  2. Verify that the SkillManager class in the main codebase has been updated to reflect this change in behavior.
#!/bin/bash
# Run the test suite
python -m unittest discover test/unittests

# Check for any remaining references to 'mycroft.skills.initialized' in the SkillManager class
rg "mycroft\.skills\.initialized" --type python ovos_core/skill_manager.py
ovos_core/skill_manager.py (2)

Line range hint 1-824: Overall assessment of changes

The modifications to the SkillManager class align well with the PR objectives and generally improve the skill management process. Key improvements include:

  1. Deprecation of methods related to the old mycroft.ready message usage.
  2. Enhanced network and connection handling.
  3. Improved skill loading processes with better support for plugin skills and local replacements.

While there are some areas for potential improvement (such as configurable paths and handling of external skills), the overall changes are well-implemented and should lead to more robust skill management.


Line range hint 209-233: Verify impact of deprecated methods

The following methods have been deprecated and simplified:

  • is_device_ready
  • handle_check_device_readiness
  • check_services_ready
  • load_priority

While this aligns with the PR objectives to redefine the usage of the mycroft.ready message, it's important to ensure that no other parts of the system still rely on the previous functionality of these methods.

To check for potential issues, run the following script:

Also applies to: 392-394

✅ Verification successful

Deprecated Methods Usage Verified

The deprecated methods is_device_ready, handle_check_device_readiness, check_services_ready, and load_priority are exclusively used within ovos_core/skill_manager.py. No external usage detected, ensuring safe deprecation.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for usage of deprecated methods in the codebase
echo "Searching for usage of deprecated methods:"
rg -n "is_device_ready|handle_check_device_readiness|check_services_ready|load_priority" --type python

Length of output: 230


Script:

#!/bin/bash
# Search for usage of deprecated methods in the codebase
echo "Searching for usage of deprecated methods:"
rg -n "is_device_ready|handle_check_device_readiness|check_services_ready|load_priority" --type py

Length of output: 479


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>, please review it.
    • 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 gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @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.

Copy link

@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: 2

🧹 Outside diff range and nitpick comments (1)
ovos_core/skill_manager.py (1)

372-372: Correct typo in comment

In the comment on line 372, "dont" should be "don't" to properly use the contraction.

Apply this diff to correct the typo:

-            # trigger a sync so we dont need to wait for the plugin to volunteer info
+            # trigger a sync so we don't need to wait for the plugin to volunteer info
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 4fcc7f7 and 0ef9325.

📒 Files selected for processing (3)
  • ovos_core/skill_manager.py (2 hunks)
  • test/unittests/skills/test_manager.py (0 hunks)
  • test/unittests/skills/test_skill_manager.py (1 hunks)
💤 Files with no reviewable changes (1)
  • test/unittests/skills/test_manager.py
🧰 Additional context used
🪛 Ruff
ovos_core/skill_manager.py

25-25: time.sleep imported but unused

Remove unused import: time.sleep

(F401)

🔇 Additional comments (2)
test/unittests/skills/test_skill_manager.py (1)

Line range hint 1-291: Ensure comprehensive testing of SkillManager changes

While the change in this file is minimal, it represents a significant shift in how skill initialization is handled. The removal of the 'mycroft.skills.initialized' event from the expected handlers in the test_instantiate method aligns with the PR objectives.

To ensure the changes to SkillManager are thoroughly tested:

  1. Review and update other test methods in this file if necessary to reflect any changes in SkillManager behavior.
  2. Consider adding new test cases to cover the updated initialization process and any new events or messages that replace 'mycroft.skills.initialized'.
  3. Run the full test suite and verify that all tests pass with the new changes.

Run the following script to check for any failing tests:

#!/bin/bash
# Run the test suite for SkillManager
python -m unittest test/unittests/skills/test_skill_manager.py

As this change affects a core component of the system, consider performing integration tests to ensure that the new initialization process works correctly with other parts of the OpenVoiceOS framework.

ovos_core/skill_manager.py (1)

379-381: Emit mycroft.ready after core initialization

Emitting the mycroft.ready message after core initialization aligns with the updated definition that the core is ready to register intents. The additional log message enhances clarity for system readiness.

test/unittests/skills/test_skill_manager.py Outdated Show resolved Hide resolved
ovos_core/skill_manager.py Outdated Show resolved Hide resolved
Copy link

@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 and nitpick comments (2)
ovos_core/skill_manager.py (2)

Line range hint 481-534: Comprehensive improvements to skill loading process

The _load_new_skills method has undergone significant enhancements:

  1. Integration of both plugin skills and directory-based skills into a single loading process.
  2. Implementation of logic to replace plugin skills with local versions, providing greater flexibility in skill management.
  3. Addition of checks for network, internet, and GUI requirements before loading skills, ensuring that skills are only loaded when their dependencies are met.

These changes result in a more robust and flexible skill loading process. However, the complexity of this method has increased, which may make it more difficult to maintain or debug in the future.

Consider breaking down this method into smaller, more focused methods to improve readability and maintainability. For example:

def _load_new_skills(self, network=None, internet=None, gui=None):
    self._update_connection_status(network, internet, gui)
    self._load_plugin_skills()
    self._load_directory_skills()

def _load_directory_skills(self):
    for skill_dir in self._get_skill_directories():
        self._handle_skill_directory(skill_dir)

def _handle_skill_directory(self, skill_dir):
    # Logic for handling a single skill directory
    ...

This refactoring would make the code more modular and easier to understand.


Line range hint 1-724: Overall improvements to skill management system

The changes made to the SkillManager class represent a significant evolution in the skill management system:

  1. Enhanced flexibility in handling both plugin skills and directory-based skills.
  2. Improved security through the option of isolated bus connections for skills.
  3. More dynamic skill loading based on network, internet, and GUI availability.
  4. Better logging and observability of the skill loading process.

These improvements should result in a more robust, secure, and efficient skill management system. However, the increased complexity of some methods (particularly _load_new_skills) may require additional attention to maintainability in the future.

Consider the following architectural improvements for future iterations:

  1. Further modularization of complex methods to enhance maintainability.
  2. Implementation of a more event-driven architecture for skill loading and unloading, which could improve responsiveness to system state changes.
  3. Development of a comprehensive testing suite to ensure the reliability of the new skill management features, especially around the dynamic loading and unloading of skills based on system conditions.
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 0ef9325 and 7f86149.

📒 Files selected for processing (1)
  • ovos_core/skill_manager.py (2 hunks)
🧰 Additional context used
🔇 Additional comments (4)
ovos_core/skill_manager.py (4)

23-26: Update imports to reflect new skill loading mechanism

The changes to the import statements reflect a shift in the skill loading mechanism. The addition of SKILL_MAIN_MODULE, SkillLoader, and PluginSkillLoader from ovos_workshop.skill_launcher indicates a more modular approach to skill loading.


Line range hint 383-397: Enhanced network and internet-dependent skill loading

The modifications to _load_on_network and _load_on_internet methods introduce two key improvements:

  1. The check for self._detected_installed_skills prevents unnecessary processing when no skills are installed, potentially improving performance.
  2. The addition of log messages provides better visibility into the skill loading process, which can aid in debugging and monitoring.

These changes enhance both the efficiency and observability of the skill loading process.


Line range hint 467-480: New method for creating isolated skill loaders

The introduction of _get_plugin_skill_loader method is a significant improvement in skill management:

  1. It allows for the creation of isolated MessageBusClient instances per skill, enhancing security by preventing skills from manipulating each other's bus connections.
  2. The use of a configuration option (shared_connection) provides flexibility in how bus connections are managed.

This change addresses potential security concerns, as mentioned in the comment about the BusBricker skill. However, be aware that creating separate connections for each skill may have performance implications if many skills are loaded.

To verify the impact and usage of this new method, run the following script:


372-381: Improved skill loading process and readiness signaling

The changes in the run method represent a significant improvement in the skill loading process:

  1. Removal of the wait_for_internet logic allows for more dynamic skill loading based on network status.
  2. The addition of _sync_skill_loading_state suggests a more proactive approach to managing skill states based on system conditions.
  3. Earlier emission of the mycroft.ready message may improve system responsiveness.

These changes should result in a more efficient and responsive skill loading process. However, ensure that all components relying on the mycroft.ready message are prepared for its earlier emission.

To verify the impact of these changes, run the following script:

✅ Verification successful

Action Needed: Correct the shell script to properly search for mycroft.ready in Python files.

To address the issue with the previous script, please run the following corrected script:


Action Needed: Run the updated shell script to search for mycroft.ready in Python files.

Please execute the following corrected script:


Verified: No external components are affected by the earlier emission of mycroft.ready.

All usages of mycroft.ready are confined to ovos_core/skill_manager.py, ensuring that the changes do not impact other parts of the codebase.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for components that might be affected by earlier 'mycroft.ready' emission
rg -i "mycroft.ready" --type python -C 5

Length of output: 158


Script:

#!/bin/bash
# Check for components that might be affected by earlier 'mycroft.ready' emission
rg -i "mycroft.ready" -t python -C 5

Length of output: 67


Script:

#!/bin/bash
# Check for components that might be affected by earlier 'mycroft.ready' emission
rg -i "mycroft.ready" -g "*.py" -C 5

Length of output: 708

@JarbasAl JarbasAl added this to the 1.0.0 milestone Oct 14, 2024
@JarbasAl JarbasAl force-pushed the deprecate_ready branch 2 times, most recently from 377f7d0 to 6d9ff11 Compare October 15, 2024 02:16
@NeonDaniel
Copy link
Member

discussion here https://matrix.to/#/!EOygeDJPfJQOfNacqH:matrix.org/$cN3qQ_K_CdrMSYXUx3rDRUGs60gwX3Q_QlK3vzeEkIo?via=matrix.org&via=tchncs.de&via=mozilla.org

I have used it in Neon without changes for probably more than a year now; changes to default configuration could be an alternative solution compared to removing configuration support completely.

If the meaning of "mycroft.ready" is changing here, I would ask that this emit something less ambiguous (maybe "mycroft.intent_service.ready", or implement ProcessStatus directly for consistency with other modules that report state. mycroft.ready emit should be configurable (possibly with a deprecation warning) since the meaning of the event has changed; this would allow anyone wanting to restore backwards-compat. to emit that message with a plugin (i.e. the React GUI might want to wait for the GUI core service to start).

JarbasAl added a commit to OpenVoiceOS/skill-ovos-boot-finished that referenced this pull request Oct 15, 2024
@JarbasAl
Copy link
Member Author

JarbasAl commented Oct 15, 2024

moved message to skill OpenVoiceOS/skill-ovos-boot-finished#15

since this is in requirements this is no longer a breaking change, just an optional component

JarbasAl added a commit to OpenVoiceOS/skill-ovos-boot-finished that referenced this pull request Oct 15, 2024
@JarbasAl JarbasAl added feature fix and removed breaking breaks backwards compatibility (kinda) feature labels Oct 15, 2024
Copy link

@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.

Caution

Inline review comments failed to post

Actionable comments posted: 1

🧹 Outside diff range and nitpick comments (5)
ovos_core/skill_manager.py (5)

Line range hint 170-186: Improved network and connection handling

The changes to network and connection handling are well-implemented:

  • The _sync_skill_loading_state method now uses ovos.PHAL.internet_check for more reliable connectivity checks.
  • New methods for handling network, internet, and GUI connections provide granular control over skill loading.

These improvements enhance the robustness of the skill management process based on connectivity status.

Consider adding logging statements in the new connection handling methods to improve debugging capabilities.

Also applies to: 275-318


396-416: Improved skill loading process

The modifications to the skill loading process are well-implemented:

  • The run method has been simplified, removing the deprecated load_priority call.
  • The _load_new_skills method now handles plugin skills and local skill replacements effectively.
  • New methods for loading skills based on network, internet, and GUI availability provide more granular control.

These changes enhance the flexibility and efficiency of the skill loading process.

Consider extracting the common logic in _load_on_network, _load_on_internet, and _load_on_startup into a separate method to reduce code duplication. For example:

def _load_skills_based_on_connectivity(self, network=False, internet=False):
    if self._detected_installed_skills:
        LOG.info(f'Loading skills that require {"internet and " if internet else ""}{"network" if network else "offline"}...')
        self._load_new_skills(network=network, internet=internet)
    if internet:
        self._internet_loaded.set()
    if network:
        self._network_loaded.set()

def _load_on_network(self):
    self._load_skills_based_on_connectivity(network=True)

def _load_on_internet(self):
    self._load_skills_based_on_connectivity(network=True, internet=True)

def _load_on_startup(self):
    self._load_skills_based_on_connectivity()

Also applies to: 486-566


Line range hint 605-639: Consider making skill directory paths configurable

The _get_skill_directories method uses a hardcoded path "/opt/mycroft/skills". To improve flexibility, consider making this path configurable.

Replace the hardcoded path with a configuration option:

def _get_skill_directories(self):
    skillmap = {}
    valid_skill_roots = self.config.get('skills', {}).get('paths', ["/opt/mycroft/skills"]) + get_skill_directories()
    # ... rest of the method

Line range hint 625-628: Improve skill directory validation

The TODO comment suggests a need for a better way to validate skill directories:

# TODO: all python packages must have __init__.py!  Better way?
# check if folder is a skill (must have __init__.py)
if SKILL_MAIN_MODULE in os.listdir(skill_dir):

Consider implementing a more robust method to validate skill directories, such as checking for a specific skill manifest file or structure.


Line range hint 679-694: Handle external skills in send_skill_list

The send_skill_list method doesn't account for external skills or OVOSAbstractApp/Hivemind skills.

To provide a complete skill list, implement handling for these types of skills. This may require adding a new method to discover and include external skills in the list.

🛑 Comments failed to post (1)
test/unittests/test_skill_manager.py (1)

121-121: 💡 Codebase verification

'mycroft.skills.initialized' event is still in use

The 'mycroft.skills.initialized' event is still being emitted in ovos_core/skill_manager.py. Ensure that this event is either fully deprecated and removed from all relevant parts of the codebase or that its continued usage is intentional and properly documented.

  • ovos_core/skill_manager.py: self.bus.emit(Message('mycroft.skills.initialized'))
🔗 Analysis chain

Verify the removal of 'mycroft.skills.initialized' event

The removal of the 'mycroft.skills.initialized' event from the expected results aligns with the PR objective to redefine the usage of the mycroft.ready message. This change indicates that the SkillManager no longer emits or listens for this event.

To ensure this change doesn't introduce unintended consequences:

  1. Verify that no other components in the system rely on the 'mycroft.skills.initialized' event.
  2. Update documentation to reflect this change in behavior.
  3. Consider adding a deprecation warning if any skills or integrations might still be using this event.

The change is consistent with the PR's goal of changing how readiness is determined in the system. However, ensure that this modification is communicated clearly to developers who might be relying on this event in their skills or integrations.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for any remaining usage of 'mycroft.skills.initialized' in the codebase
rg "mycroft\.skills\.initialized" --type python

Length of output: 226


Script:

#!/bin/bash
# Search for any remaining usage of 'mycroft.skills.initialized' in the codebase
rg "mycroft\.skills\.initialized" --type py

Length of output: 213

@JarbasAl JarbasAl merged commit ee97d74 into dev Oct 15, 2024
11 checks passed
@JarbasAl JarbasAl deleted the deprecate_ready branch October 15, 2024 21:35
@coderabbitai coderabbitai bot mentioned this pull request Oct 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants