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

chore: release_tests #590

Merged
merged 8 commits into from
Nov 6, 2024
Merged

chore: release_tests #590

merged 8 commits into from
Nov 6, 2024

Conversation

JarbasAl
Copy link
Member

@JarbasAl JarbasAl commented Nov 6, 2024

add test for installation with constraints files from https://github.com/OpenVoiceOS/ovos-releases

Summary by CodeRabbit

  • New Features
    • Introduced a new workflow for testing constraints in the project, enhancing compatibility checks for dependencies.
  • Changes
    • Updated installation command to allow for the latest version of the ovos-gui package.
    • Removed the ovos-utils dependency from the requirements file, indicating a shift in project dependencies.

Copy link

coderabbitai bot commented Nov 6, 2024

Walkthrough

The pull request introduces modifications to the GitHub Actions workflows and the requirements.txt file. The .github/workflows/build_tests.yml file now installs the latest version of the ovos-gui package by removing its version specification. Additionally, a new workflow file named .github/workflows/constraint_tests.yml has been added to automate testing against different constraints files. The requirements.txt file has been updated to remove the ovos-utils dependency, indicating a change in dependency management.

Changes

File Path Change Summary
.github/workflows/build_tests.yml Updated installation command for ovos-gui to remove version specification.
.github/workflows/constraint_tests.yml New workflow added to automate testing of constraints files on workflow_dispatch and pull requests.
requirements/requirements.txt Removed dependency ovos-utils with version constraint >=0.3.5,<1.0.0.

Possibly related PRs

  • automations:split tests into 2 workflows #558: The changes in this PR involve updates to the requirements.txt file, specifically modifying the version constraint for ovos-utils, which is related to the removal of the version specification for ovos-gui in the main PR. Both PRs address dependency management in the project.

Poem

In the garden of code where the rabbits play,
Dependencies shift like the light of day.
With ovos-gui now free to roam,
And ovos-utils finding a new home.
Constraints are tested, workflows align,
Hopping along, all is just fine! 🐇✨


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

codecov bot commented Nov 6, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 72.86%. Comparing base (23f0bab) to head (3ef3c92).
Report is 61 commits behind head on dev.

Additional details and impacted files
@@            Coverage Diff             @@
##              dev     #590      +/-   ##
==========================================
- Coverage   75.33%   72.86%   -2.48%     
==========================================
  Files          15       15              
  Lines        3094     1537    -1557     
==========================================
- Hits         2331     1120    -1211     
+ Misses        763      417     -346     
Flag Coverage Δ
end2end 56.34% <ø> (?)
unittests 49.12% <ø> (-26.22%) ⬇️

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 draft November 6, 2024 04:45
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: 8

🧹 Outside diff range and nitpick comments (9)
.github/workflows/build_tests.yml (1)

43-43: Consider documenting the extras groups.

The installation command uses multiple extras groups (mycroft, lgpl, plugins, skills-*). Consider adding a comment or documentation explaining what each group includes and why they're needed for the build tests.

scripts/release.py (3)

12-14: Consider expanding version pattern support.

The current regex only supports alpha releases (e.g., a1). Consider expanding it to support other pre-release versions:

-pattern = re.compile(r'^(ovos-[\w-]+)==(\d+)\.(\d+)\.(\d+)(a\d+)?$')
+pattern = re.compile(r'^(ovos-[\w-]+)==(\d+)\.(\d+)\.(\d+)((?:a|b|rc)\d+)?$')

This would add support for:

  • Beta releases (b1, b2, etc.)
  • Release candidates (rc1, rc2, etc.)

35-35: Enhance completion message with more details.

Consider providing more informative output:

-print("Constraints files generated: constraints-stable.txt and constraints-testing.txt")
+print(f"Successfully generated constraint files:")
+print(f"- Stable constraints ({len(stable_constraints)} packages): {base}/constraints-stable.txt")
+print(f"- Testing constraints ({len(testing_constraints)} packages): {base}/constraints-testing.txt")

1-35: Consider restructuring for better modularity and CLI support.

The script would benefit from a more modular structure:

  1. Split functionality into separate functions (e.g., get_packages(), parse_version(), generate_constraints())
  2. Add command-line arguments for:
    • Custom package prefix (instead of hardcoded "ovos-")
    • Output directory
    • Verbosity level
  3. Add a main() function and if __name__ == '__main__': guard

This would improve maintainability and make the script more flexible for different use cases.

Would you like me to provide an example of this restructured version?

requirements/constraints-stable.txt (4)

27-27: Inconsistent package naming convention.

The packages ovos-PHAL and ovos-PHAL-plugin-oauth use uppercase "PHAL" while other packages use lowercase. This inconsistency could lead to confusion.

Consider standardizing to lowercase:

-ovos-PHAL<0.3.0
-ovos-PHAL-plugin-oauth<0.2.0
+ovos-phal<0.3.0
+ovos-phal-plugin-oauth<0.2.0

Also applies to: 30-30


20-20: Consider grouping related OCP plugins.

The OCP (Open Common Play) plugins are currently mixed with other packages. Consider grouping them together in the file for better maintainability.

Suggested grouping:

 # OCP Plugins
 ovos-ocp-files-plugin<0.14.0
 ovos-ocp-m3u-plugin<0.1.0
 ovos-ocp-news-plugin<0.1.0
 ovos-ocp-pipeline-plugin<1.1.0
 ovos-ocp-rss-plugin<0.1.0
 ovos-ocp-youtube-plugin<0.1.0

Also applies to: 21-21, 22-22, 23-23, 24-24, 25-25


69-69: Add newline at end of file.

The file is missing a newline at the end, which is a common best practice for text files.

Add a newline after the last line:

 ovos-ww-plugin-vosk<0.2.0
+

1-69: Consider architectural implications of version constraints.

The current constraints show varying upper bounds across different package categories:

  • Core components (e.g., ovos-core, ovos-bus-client): <0.2.0 to <0.3.0
  • Plugins: <0.1.0 to <0.3.0
  • Skills: <0.2.0 to <0.6.0

This variance might indicate:

  1. Different maturity levels across components
  2. Potential compatibility challenges between newer skills and older core components
  3. Need for a more unified versioning strategy

Consider:

  1. Documenting the rationale behind version differences
  2. Creating a version compatibility matrix
  3. Implementing automated compatibility testing between components
🧰 Tools
🪛 LanguageTool

[locale-violation] ~7-~7: 'bus' é un xenismo. É preferíbel dicir "faixa-bus"
Context: ...rectional-translation-plugin<0.2.0 ovos-bus-client<0.2.0 ovos-classifiers<0.1.0 ovo...

(GL_BARBARISM_REPLACE)


[locale-violation] ~9-~9: 'pipeline' é un xenismo. É preferíbel dicir "gasoduto"
Context: ...vos-classifiers<0.1.0 ovos-common-query-pipeline-plugin<1.1.0 ovos-config<0.3.0 ovos-cor...

(GL_BARBARISM_REPLACE)


[locale-violation] ~23-~23: 'pipeline' é un xenismo. É preferíbel dicir "gasoduto"
Context: ...1.0 ovos-ocp-news-plugin<0.1.0 ovos-ocp-pipeline-plugin<1.1.0 ovos-ocp-rss-plugin<0.1.0 ...

(GL_BARBARISM_REPLACE)


[locale-violation] ~32-~32: 'manager' é un xenismo. É preferíbel dicir "xerente" ou "adestrador"
Context: ...os-plugin-common-play<1.1.0 ovos-plugin-manager<0.6.0 ovos-skill-alerts<0.2.0 ovos-skil...

(GL_BARBARISM_REPLACE)


[grammar] ~47-~47: 'personal' é un erro. Considere utilizar "persoal"
Context: ....4.0 ovos-skill-parrot<0.2.0 ovos-skill-personal<0.2.0 ovos-skill-pyradios<0.2.0 ovos-sk...

(GL_WIKIPEDIA_COMMON_ERRORS)


[locale-violation] ~58-~58: 'server' é un xenismo. É preferíbel dicir "servidor"
Context: ...t-plugin-chromium<0.2.0 ovos-stt-plugin-server<0.1.0 ovos-stt-plugin-vosk<0.3.0 ovos-t...

(GL_BARBARISM_REPLACE)


[locale-violation] ~60-~60: 'server' é un xenismo. É preferíbel dicir "servidor"
Context: ...os-stt-plugin-vosk<0.3.0 ovos-translate-server-plugin<0.1.0 ovos-tts-plugin-server<0.1...

(GL_BARBARISM_REPLACE)


[locale-violation] ~61-~61: 'server' é un xenismo. É preferíbel dicir "servidor"
Context: ...ate-server-plugin<0.1.0 ovos-tts-plugin-server<0.1.0 ovos-utils<0.4.0 ovos-utterance-c...

(GL_BARBARISM_REPLACE)


[locale-violation] ~66-~66: 'noise' é un xenismo. É preferíbel dicir "barullo"
Context: ...nce-plugin-cancel<0.3.0 ovos-vad-plugin-noise<0.2.0 ovos-workshop<1.1.0 ovos-ww-plugi...

(GL_BARBARISM_REPLACE)


[locale-violation] ~67-~67: 'workshop' é un xenismo. É preferíbel dicir "taller de traballo"
Context: ...<0.3.0 ovos-vad-plugin-noise<0.2.0 ovos-workshop<1.1.0 ovos-ww-plugin-precise-lite<0.2.0...

(GL_BARBARISM_REPLACE)

.github/workflows/release_tests.yml (1)

3-18: Consider enhancing workflow triggers.

The workflow should also trigger when scripts/release.py is modified since it's critical for constraint generation. Additionally, consider adding workflow_dispatch event to allow manual workflow runs.

 on:
   pull_request:
     paths:
+      - 'scripts/release.py'
       - 'requirements/requirements.txt'
       - 'requirements/lgpl.txt'
       - 'requirements/mycroft.txt'
       - 'requirements/plugins.txt'
       - 'requirements/skills-audio.txt'
       - 'requirements/skills-desktop.txt'
       - 'requirements/skills-essential.txt'
       - 'requirements/skills-gui.txt'
       - 'requirements/skills-internet.txt'
       - 'requirements/skills-media.txt'
       - 'requirements/constraints-stable.txt'
       - 'requirements/constraints-testing.txt'
+  workflow_dispatch:  # Allow manual trigger
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 23ca141 and 29d8701.

📒 Files selected for processing (5)
  • .github/workflows/build_tests.yml (1 hunks)
  • .github/workflows/release_tests.yml (1 hunks)
  • requirements/constraints-stable.txt (1 hunks)
  • requirements/constraints-testing.txt (1 hunks)
  • scripts/release.py (1 hunks)
🧰 Additional context used
🪛 actionlint
.github/workflows/release_tests.yml

37-37: shellcheck reported issue in this script: SC2102:info:1:17: Ranges can only match single chars (mentioned due to duplicates)

(shellcheck)


84-84: shellcheck reported issue in this script: SC2102:info:1:17: Ranges can only match single chars (mentioned due to duplicates)

(shellcheck)

🪛 LanguageTool
requirements/constraints-stable.txt

[locale-violation] ~7-~7: 'bus' é un xenismo. É preferíbel dicir "faixa-bus"
Context: ...rectional-translation-plugin<0.2.0 ovos-bus-client<0.2.0 ovos-classifiers<0.1.0 ovo...

(GL_BARBARISM_REPLACE)


[locale-violation] ~9-~9: 'pipeline' é un xenismo. É preferíbel dicir "gasoduto"
Context: ...vos-classifiers<0.1.0 ovos-common-query-pipeline-plugin<1.1.0 ovos-config<0.3.0 ovos-cor...

(GL_BARBARISM_REPLACE)


[locale-violation] ~23-~23: 'pipeline' é un xenismo. É preferíbel dicir "gasoduto"
Context: ...1.0 ovos-ocp-news-plugin<0.1.0 ovos-ocp-pipeline-plugin<1.1.0 ovos-ocp-rss-plugin<0.1.0 ...

(GL_BARBARISM_REPLACE)


[locale-violation] ~32-~32: 'manager' é un xenismo. É preferíbel dicir "xerente" ou "adestrador"
Context: ...os-plugin-common-play<1.1.0 ovos-plugin-manager<0.6.0 ovos-skill-alerts<0.2.0 ovos-skil...

(GL_BARBARISM_REPLACE)


[grammar] ~47-~47: 'personal' é un erro. Considere utilizar "persoal"
Context: ....4.0 ovos-skill-parrot<0.2.0 ovos-skill-personal<0.2.0 ovos-skill-pyradios<0.2.0 ovos-sk...

(GL_WIKIPEDIA_COMMON_ERRORS)


[locale-violation] ~58-~58: 'server' é un xenismo. É preferíbel dicir "servidor"
Context: ...t-plugin-chromium<0.2.0 ovos-stt-plugin-server<0.1.0 ovos-stt-plugin-vosk<0.3.0 ovos-t...

(GL_BARBARISM_REPLACE)


[locale-violation] ~60-~60: 'server' é un xenismo. É preferíbel dicir "servidor"
Context: ...os-stt-plugin-vosk<0.3.0 ovos-translate-server-plugin<0.1.0 ovos-tts-plugin-server<0.1...

(GL_BARBARISM_REPLACE)


[locale-violation] ~61-~61: 'server' é un xenismo. É preferíbel dicir "servidor"
Context: ...ate-server-plugin<0.1.0 ovos-tts-plugin-server<0.1.0 ovos-utils<0.4.0 ovos-utterance-c...

(GL_BARBARISM_REPLACE)


[locale-violation] ~66-~66: 'noise' é un xenismo. É preferíbel dicir "barullo"
Context: ...nce-plugin-cancel<0.3.0 ovos-vad-plugin-noise<0.2.0 ovos-workshop<1.1.0 ovos-ww-plugi...

(GL_BARBARISM_REPLACE)


[locale-violation] ~67-~67: 'workshop' é un xenismo. É preferíbel dicir "taller de traballo"
Context: ...<0.3.0 ovos-vad-plugin-noise<0.2.0 ovos-workshop<1.1.0 ovos-ww-plugin-precise-lite<0.2.0...

(GL_BARBARISM_REPLACE)

requirements/constraints-testing.txt

[locale-violation] ~7-~7: 'bus' é un xenismo. É preferíbel dicir "faixa-bus"
Context: ...rectional-translation-plugin<1.0.0 ovos-bus-client<1.0.0 ovos-classifiers<1.0.0 ovo...

(GL_BARBARISM_REPLACE)


[locale-violation] ~9-~9: 'pipeline' é un xenismo. É preferíbel dicir "gasoduto"
Context: ...vos-classifiers<1.0.0 ovos-common-query-pipeline-plugin<2.0.0 ovos-config<1.0.0 ovos-cor...

(GL_BARBARISM_REPLACE)


[locale-violation] ~23-~23: 'pipeline' é un xenismo. É preferíbel dicir "gasoduto"
Context: ...0.0 ovos-ocp-news-plugin<1.0.0 ovos-ocp-pipeline-plugin<2.0.0 ovos-ocp-rss-plugin<1.0.0 ...

(GL_BARBARISM_REPLACE)


[locale-violation] ~32-~32: 'manager' é un xenismo. É preferíbel dicir "xerente" ou "adestrador"
Context: ...os-plugin-common-play<2.0.0 ovos-plugin-manager<1.0.0 ovos-skill-alerts<1.0.0 ovos-skil...

(GL_BARBARISM_REPLACE)


[grammar] ~47-~47: 'personal' é un erro. Considere utilizar "persoal"
Context: ....0.0 ovos-skill-parrot<1.0.0 ovos-skill-personal<1.0.0 ovos-skill-pyradios<1.0.0 ovos-sk...

(GL_WIKIPEDIA_COMMON_ERRORS)


[locale-violation] ~58-~58: 'server' é un xenismo. É preferíbel dicir "servidor"
Context: ...t-plugin-chromium<1.0.0 ovos-stt-plugin-server<1.0.0 ovos-stt-plugin-vosk<1.0.0 ovos-t...

(GL_BARBARISM_REPLACE)


[locale-violation] ~60-~60: 'server' é un xenismo. É preferíbel dicir "servidor"
Context: ...os-stt-plugin-vosk<1.0.0 ovos-translate-server-plugin<1.0.0 ovos-tts-plugin-server<1.0...

(GL_BARBARISM_REPLACE)


[locale-violation] ~61-~61: 'server' é un xenismo. É preferíbel dicir "servidor"
Context: ...ate-server-plugin<1.0.0 ovos-tts-plugin-server<1.0.0 ovos-utils<1.0.0 ovos-utterance-c...

(GL_BARBARISM_REPLACE)


[locale-violation] ~66-~66: 'noise' é un xenismo. É preferíbel dicir "barullo"
Context: ...nce-plugin-cancel<1.0.0 ovos-vad-plugin-noise<1.0.0 ovos-workshop<2.0.0 ovos-ww-plugi...

(GL_BARBARISM_REPLACE)


[locale-violation] ~67-~67: 'workshop' é un xenismo. É preferíbel dicir "taller de traballo"
Context: ...<1.0.0 ovos-vad-plugin-noise<1.0.0 ovos-workshop<2.0.0 ovos-ww-plugin-precise-lite<1.0.0...

(GL_BARBARISM_REPLACE)

🔇 Additional comments (6)
.github/workflows/build_tests.yml (1)

43-43: Verify dependency constraints management.

The installation command is well-structured with logical grouping of extras. However, since version constraints were removed, we should verify that dependencies are properly managed in the constraints files.

✅ Verification successful

Let's examine the content of these files to verify the constraint management.


Dependencies are properly constrained across requirement files

The version constraints for ovos-gui and related packages are well-managed:

  • Testing constraints: ovos-gui<1.0.0
  • Stable constraints: ovos-gui<0.3.0
  • Mycroft requirements: ovos-gui[extras]>=0.2.2,<2.0.0

The removal of explicit version constraints from the pip install command is appropriate as the constraints are properly maintained in dedicated requirements files, following good practices for dependency management.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that dependencies are properly constrained in requirements files
# Expected: Find corresponding version constraints in the requirements files

# Check if the constraints files exist and contain relevant package constraints
echo "Checking constraints files for dependency management..."
rg -l "ovos-gui" requirements/

Length of output: 249


Script:

#!/bin/bash
# Check the content of the identified files for version constraints
echo "=== constraints-testing.txt ==="
cat requirements/constraints-testing.txt | grep -A 2 -B 2 "ovos-gui"

echo -e "\n=== constraints-stable.txt ==="
cat requirements/constraints-stable.txt | grep -A 2 -B 2 "ovos-gui"

echo -e "\n=== mycroft.txt ==="
cat requirements/mycroft.txt | grep -A 2 -B 2 "ovos-gui"

Length of output: 879

scripts/release.py (2)

1-4: LGTM! Clean and appropriate imports.

The imports are well-organized and use specific imports rather than wildcards.


9-11: LGTM! Clean initialization.

requirements/constraints-testing.txt (1)

1-69: Consider adding dependency verification.

The constraints file lists individual package versions but doesn't guarantee compatibility between them. Consider adding a verification step to ensure all constrained versions can be installed together.

#!/bin/bash
# Description: Verify that all constrained packages can be installed together

# Create a temporary virtual environment
python -m venv /tmp/test_env
source /tmp/test_env/bin/activate

# Try installing all packages with constraints
echo "Attempting to install all packages with constraints..."
pip install -r requirements/constraints-testing.txt

# Check installation status
if [ $? -eq 0 ]; then
    echo "All packages installed successfully"
else
    echo "Installation failed - possible incompatibility between package versions"
fi

# Cleanup
deactivate
rm -rf /tmp/test_env
🧰 Tools
🪛 LanguageTool

[locale-violation] ~7-~7: 'bus' é un xenismo. É preferíbel dicir "faixa-bus"
Context: ...rectional-translation-plugin<1.0.0 ovos-bus-client<1.0.0 ovos-classifiers<1.0.0 ovo...

(GL_BARBARISM_REPLACE)


[locale-violation] ~9-~9: 'pipeline' é un xenismo. É preferíbel dicir "gasoduto"
Context: ...vos-classifiers<1.0.0 ovos-common-query-pipeline-plugin<2.0.0 ovos-config<1.0.0 ovos-cor...

(GL_BARBARISM_REPLACE)


[locale-violation] ~23-~23: 'pipeline' é un xenismo. É preferíbel dicir "gasoduto"
Context: ...0.0 ovos-ocp-news-plugin<1.0.0 ovos-ocp-pipeline-plugin<2.0.0 ovos-ocp-rss-plugin<1.0.0 ...

(GL_BARBARISM_REPLACE)


[locale-violation] ~32-~32: 'manager' é un xenismo. É preferíbel dicir "xerente" ou "adestrador"
Context: ...os-plugin-common-play<2.0.0 ovos-plugin-manager<1.0.0 ovos-skill-alerts<1.0.0 ovos-skil...

(GL_BARBARISM_REPLACE)


[grammar] ~47-~47: 'personal' é un erro. Considere utilizar "persoal"
Context: ....0.0 ovos-skill-parrot<1.0.0 ovos-skill-personal<1.0.0 ovos-skill-pyradios<1.0.0 ovos-sk...

(GL_WIKIPEDIA_COMMON_ERRORS)


[locale-violation] ~58-~58: 'server' é un xenismo. É preferíbel dicir "servidor"
Context: ...t-plugin-chromium<1.0.0 ovos-stt-plugin-server<1.0.0 ovos-stt-plugin-vosk<1.0.0 ovos-t...

(GL_BARBARISM_REPLACE)


[locale-violation] ~60-~60: 'server' é un xenismo. É preferíbel dicir "servidor"
Context: ...os-stt-plugin-vosk<1.0.0 ovos-translate-server-plugin<1.0.0 ovos-tts-plugin-server<1.0...

(GL_BARBARISM_REPLACE)


[locale-violation] ~61-~61: 'server' é un xenismo. É preferíbel dicir "servidor"
Context: ...ate-server-plugin<1.0.0 ovos-tts-plugin-server<1.0.0 ovos-utils<1.0.0 ovos-utterance-c...

(GL_BARBARISM_REPLACE)


[locale-violation] ~66-~66: 'noise' é un xenismo. É preferíbel dicir "barullo"
Context: ...nce-plugin-cancel<1.0.0 ovos-vad-plugin-noise<1.0.0 ovos-workshop<2.0.0 ovos-ww-plugi...

(GL_BARBARISM_REPLACE)


[locale-violation] ~67-~67: 'workshop' é un xenismo. É preferíbel dicir "taller de traballo"
Context: ...<1.0.0 ovos-vad-plugin-noise<1.0.0 ovos-workshop<2.0.0 ovos-ww-plugin-precise-lite<1.0.0...

(GL_BARBARISM_REPLACE)

requirements/constraints-stable.txt (1)

1-69: ⚠️ Potential issue

Review version constraint patterns for security and stability.

The use of '<' operator for all version constraints might expose the system to potential security risks. Consider using the '>=' operator with an exact upper bound '<='.

For example:

-ovos-utils<0.4.0
+ovos-utils>=0.3.0,<=0.4.0

This ensures:

  1. A minimum tested version is explicitly specified
  2. Security patches within the minimum version are included
  3. Upper bound still prevents breaking changes
🧰 Tools
🪛 LanguageTool

[locale-violation] ~7-~7: 'bus' é un xenismo. É preferíbel dicir "faixa-bus"
Context: ...rectional-translation-plugin<0.2.0 ovos-bus-client<0.2.0 ovos-classifiers<0.1.0 ovo...

(GL_BARBARISM_REPLACE)


[locale-violation] ~9-~9: 'pipeline' é un xenismo. É preferíbel dicir "gasoduto"
Context: ...vos-classifiers<0.1.0 ovos-common-query-pipeline-plugin<1.1.0 ovos-config<0.3.0 ovos-cor...

(GL_BARBARISM_REPLACE)


[locale-violation] ~23-~23: 'pipeline' é un xenismo. É preferíbel dicir "gasoduto"
Context: ...1.0 ovos-ocp-news-plugin<0.1.0 ovos-ocp-pipeline-plugin<1.1.0 ovos-ocp-rss-plugin<0.1.0 ...

(GL_BARBARISM_REPLACE)


[locale-violation] ~32-~32: 'manager' é un xenismo. É preferíbel dicir "xerente" ou "adestrador"
Context: ...os-plugin-common-play<1.1.0 ovos-plugin-manager<0.6.0 ovos-skill-alerts<0.2.0 ovos-skil...

(GL_BARBARISM_REPLACE)


[grammar] ~47-~47: 'personal' é un erro. Considere utilizar "persoal"
Context: ....4.0 ovos-skill-parrot<0.2.0 ovos-skill-personal<0.2.0 ovos-skill-pyradios<0.2.0 ovos-sk...

(GL_WIKIPEDIA_COMMON_ERRORS)


[locale-violation] ~58-~58: 'server' é un xenismo. É preferíbel dicir "servidor"
Context: ...t-plugin-chromium<0.2.0 ovos-stt-plugin-server<0.1.0 ovos-stt-plugin-vosk<0.3.0 ovos-t...

(GL_BARBARISM_REPLACE)


[locale-violation] ~60-~60: 'server' é un xenismo. É preferíbel dicir "servidor"
Context: ...os-stt-plugin-vosk<0.3.0 ovos-translate-server-plugin<0.1.0 ovos-tts-plugin-server<0.1...

(GL_BARBARISM_REPLACE)


[locale-violation] ~61-~61: 'server' é un xenismo. É preferíbel dicir "servidor"
Context: ...ate-server-plugin<0.1.0 ovos-tts-plugin-server<0.1.0 ovos-utils<0.4.0 ovos-utterance-c...

(GL_BARBARISM_REPLACE)


[locale-violation] ~66-~66: 'noise' é un xenismo. É preferíbel dicir "barullo"
Context: ...nce-plugin-cancel<0.3.0 ovos-vad-plugin-noise<0.2.0 ovos-workshop<1.1.0 ovos-ww-plugi...

(GL_BARBARISM_REPLACE)


[locale-violation] ~67-~67: 'workshop' é un xenismo. É preferíbel dicir "taller de traballo"
Context: ...<0.3.0 ovos-vad-plugin-noise<0.2.0 ovos-workshop<1.1.0 ovos-ww-plugin-precise-lite<0.2.0...

(GL_BARBARISM_REPLACE)

.github/workflows/release_tests.yml (1)

1-89: Verify workflow interaction with build_tests.yml.

Since this workflow runs alongside the existing build_tests.yml, we should ensure there's no redundancy or conflicts between them.

✅ Verification successful

Workflows are complementary and serve different purposes

The workflows are well-differentiated and complementary:

  • build_tests.yml focuses on package building across multiple Python versions (3.7-3.11) and runs on changes to setup.py and requirements/**
  • release_tests.yml specifically handles constraints file updates and testing, triggered only by changes to requirement files

No conflicts or redundancy found. The workflows have distinct responsibilities:

  1. Build workflow: Validates package building and basic installation
  2. Release workflow: Manages constraints files and runs unit tests against them
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for potential conflicts or redundancy between workflows

# Test: Compare triggers and job steps between workflows
echo "Comparing workflow triggers:"
rg -A 5 "on:" .github/workflows/build_tests.yml

echo "Comparing job steps:"
rg "run:|uses:" .github/workflows/build_tests.yml

Length of output: 852


Script:

#!/bin/bash
# Get full content of build_tests.yml for detailed analysis
echo "Content of build_tests.yml:"
cat .github/workflows/build_tests.yml

Length of output: 1310

🧰 Tools
🪛 actionlint

37-37: shellcheck reported issue in this script: SC2102:info:1:17: Ranges can only match single chars (mentioned due to duplicates)

(shellcheck)


84-84: shellcheck reported issue in this script: SC2102:info:1:17: Ranges can only match single chars (mentioned due to duplicates)

(shellcheck)

scripts/release.py Outdated Show resolved Hide resolved
scripts/release.py Outdated Show resolved Hide resolved
scripts/release.py Outdated Show resolved Hide resolved
scripts/release.py Outdated Show resolved Hide resolved
requirements/constraints-testing.txt Outdated Show resolved Hide resolved
requirements/constraints-testing.txt Outdated Show resolved Hide resolved
.github/workflows/release_tests.yml Outdated Show resolved Hide resolved
.github/workflows/release_tests.yml Outdated Show resolved Hide resolved
@JarbasAl JarbasAl marked this pull request as ready for review November 6, 2024 06:54
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 (3)
.github/workflows/constraint_tests.yml (3)

3-17: Enhance workflow trigger configuration

Consider these improvements to the workflow configuration:

  1. Add the workflow file itself to the path triggers to ensure changes are tested
  2. Add concurrency configuration to prevent simultaneous runs on the same PR
on:
  workflow_dispatch:
  pull_request:
    paths:
      - 'requirements/requirements.txt'
      - 'requirements/lgpl.txt'
      - 'requirements/mycroft.txt'
      - 'requirements/plugins.txt'
      - 'requirements/skills-audio.txt'
      - 'requirements/skills-desktop.txt'
      - 'requirements/skills-essential.txt'
      - 'requirements/skills-gui.txt'
      - 'requirements/skills-internet.txt'
      - 'requirements/skills-media.txt'
+     - '.github/workflows/constraint_tests.yml'

+concurrency:
+  group: ${{ github.workflow }}-${{ github.ref }}
+  cancel-in-progress: true

18-24: Add job safeguards and configuration

Consider adding timeout and fail-fast configurations to prevent hung jobs and improve CI efficiency.

jobs:
  test-stable-and-testing-constraints:
    runs-on: ubuntu-latest
+   timeout-minutes: 30
    strategy:
+     fail-fast: false
      matrix:
        constraints_file: ['stable', 'testing']

34-38: Improve system dependency installation reliability

Add error handling and version pinning to ensure reproducible builds.

      - name: Install System Dependencies
        run: |
+         set -eo pipefail
          sudo apt-get update
-         sudo apt install python3-dev swig libssl-dev portaudio19-dev libpulse-dev libfann-dev
+         sudo apt-get install -y --no-install-recommends \
+           python3-dev=3.8* \
+           swig=4.0* \
+           libssl-dev \
+           portaudio19-dev \
+           libpulse-dev \
+           libfann-dev
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 29d8701 and 3ef3c92.

📒 Files selected for processing (2)
  • .github/workflows/constraint_tests.yml (1 hunks)
  • requirements/requirements.txt (0 hunks)
💤 Files with no reviewable changes (1)
  • requirements/requirements.txt
🧰 Additional context used
🪛 actionlint
.github/workflows/constraint_tests.yml

44-44: shellcheck reported issue in this script: SC2102:info:1:17: Ranges can only match single chars (mentioned due to duplicates)

(shellcheck)

.github/workflows/constraint_tests.yml Show resolved Hide resolved
.github/workflows/constraint_tests.yml Show resolved Hide resolved
@JarbasAl JarbasAl merged commit c8f99d7 into dev Nov 6, 2024
14 of 15 checks passed
@JarbasAl JarbasAl deleted the release_tests branch November 6, 2024 06:59
This was referenced Nov 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant