From e6ed8b85555e7264163bbccc878123419abfb373 Mon Sep 17 00:00:00 2001 From: miro Date: Wed, 6 Nov 2024 04:38:41 +0000 Subject: [PATCH 1/8] chore: release_tests --- .github/workflows/build_tests.yml | 2 +- .github/workflows/release_tests.yml | 87 ++++++++++++++++++++++++++++ requirements/constraints-stable.txt | 69 ++++++++++++++++++++++ requirements/constraints-testing.txt | 69 ++++++++++++++++++++++ scripts/release.py | 35 +++++++++++ 5 files changed, 261 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/release_tests.yml create mode 100644 requirements/constraints-stable.txt create mode 100644 requirements/constraints-testing.txt create mode 100644 scripts/release.py diff --git a/.github/workflows/build_tests.yml b/.github/workflows/build_tests.yml index d13dfed09e01..f1972906b18d 100644 --- a/.github/workflows/build_tests.yml +++ b/.github/workflows/build_tests.yml @@ -40,4 +40,4 @@ jobs: python setup.py bdist_wheel - name: Install package run: | - pip install .[mycroft,lgpl,plugins,skills-essential,skills-audio,skills-gui,skills-internet,skills-media,skills-desktop] ovos-gui==1.0.0 + pip install .[mycroft,lgpl,plugins,skills-essential,skills-audio,skills-gui,skills-internet,skills-media,skills-desktop] diff --git a/.github/workflows/release_tests.yml b/.github/workflows/release_tests.yml new file mode 100644 index 000000000000..0c8e19a75e49 --- /dev/null +++ b/.github/workflows/release_tests.yml @@ -0,0 +1,87 @@ +name: Test with Constraints + +on: + 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' + +jobs: + update-constraints: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.8' + + - name: Install System Dependencies + run: | + sudo apt-get update + sudo apt install python3-dev swig libssl-dev portaudio19-dev libpulse-dev libfann-dev + + - name: Install core repo dependencies + run: | + pip install -e .[mycroft,lgpl,plugins,skills-essential,skills-audio,skills-gui,skills-internet,skills-media,skills-desktop] + + - name: Update constraints files + run: | + python scripts/release.py + + - name: Upload constraints files + uses: actions/upload-artifact@v3 + with: + name: constraints + path: | + requirements/constraints-stable.txt + requirements/constraints-testing.txt + + + test-stable-and-testing-constraints: + runs-on: ubuntu-latest + needs: update-constraints # Depend on constraints update job + strategy: + matrix: + constraints_file: ['requirements/constraints-stable.txt', 'requirements/constraints-testing.txt'] + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Download updated constraints + uses: actions/download-artifact@v3 + with: + name: constraints + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.8' + + - name: Install System Dependencies + run: | + sudo apt-get update + sudo apt install python3-dev swig libssl-dev portaudio19-dev libpulse-dev libfann-dev + + - name: Install test dependencies + run: | + pip install -r requirements/tests.txt + + - name: Install core repo with constraints + run: | + pip install -e .[mycroft,lgpl,plugins,skills-essential,skills-audio,skills-gui,skills-internet,skills-media,skills-desktop] -c ${{ matrix.constraints_file }} + + - name: Run unit tests + run: | + pytest test/unittests diff --git a/requirements/constraints-stable.txt b/requirements/constraints-stable.txt new file mode 100644 index 000000000000..9cebcd154cf7 --- /dev/null +++ b/requirements/constraints-stable.txt @@ -0,0 +1,69 @@ +ovos-adapt-parser<1.1.0 +ovos-audio<0.3.0 +ovos-audio-plugin-mpv<0.3.0 +ovos-audio-plugin-simple<0.2.0 +ovos-backend-client<1.1.0 +ovos-bidirectional-translation-plugin<0.2.0 +ovos-bus-client<0.2.0 +ovos-classifiers<0.1.0 +ovos-common-query-pipeline-plugin<1.1.0 +ovos-config<0.3.0 +ovos-core<0.3.0 +ovos-dinkum-listener<0.3.0 +ovos-gui<0.3.0 +ovos-gui-plugin-shell-companion<1.1.0 +ovos-lingua-franca<0.5.0 +ovos-media-plugin-chromecast<0.2.0 +ovos-media-plugin-spotify<0.3.0 +ovos-messagebus<0.1.0 +ovos-microphone-plugin-sounddevice<0.1.0 +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 +ovos-padatious<1.1.0 +ovos-PHAL<0.3.0 +ovos-phal-plugin-connectivity-events<0.2.0 +ovos-phal-plugin-ipgeo<0.2.0 +ovos-PHAL-plugin-oauth<0.2.0 +ovos-plugin-common-play<1.1.0 +ovos-plugin-manager<0.6.0 +ovos-skill-alerts<0.2.0 +ovos-skill-application-launcher<0.6.0 +ovos-skill-audio-recording<0.3.0 +ovos-skill-boot-finished<0.5.0 +ovos-skill-date-time<0.4.0 +ovos-skill-dictation<0.3.0 +ovos-skill-fallback-unknown<0.2.0 +ovos-skill-hello-world<0.2.0 +ovos-skill-homescreen<1.1.0 +ovos-skill-installer<0.1.0 +ovos-skill-ip<0.3.0 +ovos-skill-local-media<0.3.0 +ovos-skill-naptime<0.4.0 +ovos-skill-parrot<0.2.0 +ovos-skill-personal<0.2.0 +ovos-skill-pyradios<0.2.0 +ovos-skill-somafm<0.2.0 +ovos-skill-speedtest<0.3.0 +ovos-skill-spelling<0.3.0 +ovos-skill-volume<0.2.0 +ovos-skill-weather<0.2.0 +ovos-skill-wikihow<0.3.0 +ovos-skill-wikipedia<0.6.0 +ovos-solver-openai-persona-plugin<0.1.0 +ovos-stt-plugin-chromium<0.2.0 +ovos-stt-plugin-server<0.1.0 +ovos-stt-plugin-vosk<0.3.0 +ovos-translate-server-plugin<0.1.0 +ovos-tts-plugin-server<0.1.0 +ovos-utils<0.4.0 +ovos-utterance-corrections-plugin<0.1.0 +ovos-utterance-normalizer<0.3.0 +ovos-utterance-plugin-cancel<0.3.0 +ovos-vad-plugin-noise<0.2.0 +ovos-workshop<1.1.0 +ovos-ww-plugin-precise-lite<0.2.0 +ovos-ww-plugin-vosk<0.2.0 \ No newline at end of file diff --git a/requirements/constraints-testing.txt b/requirements/constraints-testing.txt new file mode 100644 index 000000000000..6362850dac76 --- /dev/null +++ b/requirements/constraints-testing.txt @@ -0,0 +1,69 @@ +ovos-adapt-parser<2.0.0 +ovos-audio<1.0.0 +ovos-audio-plugin-mpv<1.0.0 +ovos-audio-plugin-simple<1.0.0 +ovos-backend-client<2.0.0 +ovos-bidirectional-translation-plugin<1.0.0 +ovos-bus-client<1.0.0 +ovos-classifiers<1.0.0 +ovos-common-query-pipeline-plugin<2.0.0 +ovos-config<1.0.0 +ovos-core<1.0.0 +ovos-dinkum-listener<1.0.0 +ovos-gui<1.0.0 +ovos-gui-plugin-shell-companion<2.0.0 +ovos-lingua-franca<1.0.0 +ovos-media-plugin-chromecast<1.0.0 +ovos-media-plugin-spotify<1.0.0 +ovos-messagebus<1.0.0 +ovos-microphone-plugin-sounddevice<1.0.0 +ovos-ocp-files-plugin<1.0.0 +ovos-ocp-m3u-plugin<1.0.0 +ovos-ocp-news-plugin<1.0.0 +ovos-ocp-pipeline-plugin<2.0.0 +ovos-ocp-rss-plugin<1.0.0 +ovos-ocp-youtube-plugin<1.0.0 +ovos-padatious<2.0.0 +ovos-PHAL<1.0.0 +ovos-phal-plugin-connectivity-events<1.0.0 +ovos-phal-plugin-ipgeo<1.0.0 +ovos-PHAL-plugin-oauth<1.0.0 +ovos-plugin-common-play<2.0.0 +ovos-plugin-manager<1.0.0 +ovos-skill-alerts<1.0.0 +ovos-skill-application-launcher<1.0.0 +ovos-skill-audio-recording<1.0.0 +ovos-skill-boot-finished<1.0.0 +ovos-skill-date-time<1.0.0 +ovos-skill-dictation<1.0.0 +ovos-skill-fallback-unknown<1.0.0 +ovos-skill-hello-world<1.0.0 +ovos-skill-homescreen<2.0.0 +ovos-skill-installer<1.0.0 +ovos-skill-ip<1.0.0 +ovos-skill-local-media<1.0.0 +ovos-skill-naptime<1.0.0 +ovos-skill-parrot<1.0.0 +ovos-skill-personal<1.0.0 +ovos-skill-pyradios<1.0.0 +ovos-skill-somafm<1.0.0 +ovos-skill-speedtest<1.0.0 +ovos-skill-spelling<1.0.0 +ovos-skill-volume<1.0.0 +ovos-skill-weather<1.0.0 +ovos-skill-wikihow<1.0.0 +ovos-skill-wikipedia<1.0.0 +ovos-solver-openai-persona-plugin<1.0.0 +ovos-stt-plugin-chromium<1.0.0 +ovos-stt-plugin-server<1.0.0 +ovos-stt-plugin-vosk<1.0.0 +ovos-translate-server-plugin<1.0.0 +ovos-tts-plugin-server<1.0.0 +ovos-utils<1.0.0 +ovos-utterance-corrections-plugin<1.0.0 +ovos-utterance-normalizer<1.0.0 +ovos-utterance-plugin-cancel<1.0.0 +ovos-vad-plugin-noise<1.0.0 +ovos-workshop<2.0.0 +ovos-ww-plugin-precise-lite<1.0.0 +ovos-ww-plugin-vosk<1.0.0 \ No newline at end of file diff --git a/scripts/release.py b/scripts/release.py new file mode 100644 index 000000000000..c6222254f476 --- /dev/null +++ b/scripts/release.py @@ -0,0 +1,35 @@ +import re +from os.path import dirname +import subprocess + +# Run pip list and filter for "ovos-" packages +result = subprocess.run(['pip', 'list', '--format=freeze'], capture_output=True, text=True) +packages = result.stdout.splitlines() + +stable_constraints = [] +testing_constraints = [] + +# Regular expression to capture package name and version, with optional alpha tag +pattern = re.compile(r'^(ovos-[\w-]+)==(\d+)\.(\d+)\.(\d+)(a\d+)?$') + +for package in packages: + match = pattern.match(package) + if match: + name, major, minor, patch, alpha = match.groups() + major = stable_major = int(major) + minor = stable_minor = int(minor) + patch = int(patch) + print(package) + stable_constraints.append(f"{name}<{major}.{minor + 1}.0") + testing_constraints.append(f"{name}<{major+1}.0.0") + +base = f"{dirname(dirname(__file__))}/requirements" + +# Write stable and testing constraints to respective files +with open(f'{base}/constraints-stable.txt', 'w') as stable_file: + stable_file.write("\n".join(stable_constraints)) + +with open(f'{base}/constraints-testing.txt', 'w') as testing_file: + testing_file.write("\n".join(testing_constraints)) + +print("Constraints files generated: constraints-stable.txt and constraints-testing.txt") From 29d8701f5701728755715bd3b9c9f870f8d90dcf Mon Sep 17 00:00:00 2001 From: miro Date: Wed, 6 Nov 2024 04:40:20 +0000 Subject: [PATCH 2/8] chore: release_tests --- .github/workflows/release_tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/release_tests.yml b/.github/workflows/release_tests.yml index 0c8e19a75e49..ba33fd673c2c 100644 --- a/.github/workflows/release_tests.yml +++ b/.github/workflows/release_tests.yml @@ -13,6 +13,8 @@ on: - 'requirements/skills-gui.txt' - 'requirements/skills-internet.txt' - 'requirements/skills-media.txt' + - 'requirements/constraints-stable.txt' + - 'requirements/constraints-testing.txt' jobs: update-constraints: From 76360452459797b0205432cf41ef47ee062768e3 Mon Sep 17 00:00:00 2001 From: miro Date: Wed, 6 Nov 2024 05:58:02 +0000 Subject: [PATCH 3/8] chore: release_tests --- .github/workflows/release_tests.yml | 24 ++++------ requirements/constraints-stable.txt | 69 ---------------------------- requirements/constraints-testing.txt | 69 ---------------------------- 3 files changed, 8 insertions(+), 154 deletions(-) delete mode 100644 requirements/constraints-stable.txt delete mode 100644 requirements/constraints-testing.txt diff --git a/.github/workflows/release_tests.yml b/.github/workflows/release_tests.yml index ba33fd673c2c..384b20d3cc08 100644 --- a/.github/workflows/release_tests.yml +++ b/.github/workflows/release_tests.yml @@ -19,6 +19,9 @@ on: jobs: update-constraints: runs-on: ubuntu-latest + outputs: + constraints-stable: ${{ steps.update-constraints.outputs.constraints-stable }} + constraints-testing: ${{ steps.update-constraints.outputs.constraints-testing }} steps: - name: Checkout repository uses: actions/checkout@v3 @@ -38,34 +41,23 @@ jobs: pip install -e .[mycroft,lgpl,plugins,skills-essential,skills-audio,skills-gui,skills-internet,skills-media,skills-desktop] - name: Update constraints files + id: update-constraints run: | python scripts/release.py - - - name: Upload constraints files - uses: actions/upload-artifact@v3 - with: - name: constraints - path: | - requirements/constraints-stable.txt - requirements/constraints-testing.txt - + echo "constraints-stable=requirements/constraints-stable.txt" >> $GITHUB_ENV + echo "constraints-testing=requirements/constraints-testing.txt" >> $GITHUB_ENV test-stable-and-testing-constraints: runs-on: ubuntu-latest needs: update-constraints # Depend on constraints update job strategy: matrix: - constraints_file: ['requirements/constraints-stable.txt', 'requirements/constraints-testing.txt'] + constraints_file: ['stable', 'testing'] steps: - name: Checkout repository uses: actions/checkout@v3 - - name: Download updated constraints - uses: actions/download-artifact@v3 - with: - name: constraints - - name: Set up Python uses: actions/setup-python@v4 with: @@ -82,7 +74,7 @@ jobs: - name: Install core repo with constraints run: | - pip install -e .[mycroft,lgpl,plugins,skills-essential,skills-audio,skills-gui,skills-internet,skills-media,skills-desktop] -c ${{ matrix.constraints_file }} + pip install -e .[mycroft,lgpl,plugins,skills-essential,skills-audio,skills-gui,skills-internet,skills-media,skills-desktop] -c ${{ env['constraints-' + matrix.constraints_file] }} - name: Run unit tests run: | diff --git a/requirements/constraints-stable.txt b/requirements/constraints-stable.txt deleted file mode 100644 index 9cebcd154cf7..000000000000 --- a/requirements/constraints-stable.txt +++ /dev/null @@ -1,69 +0,0 @@ -ovos-adapt-parser<1.1.0 -ovos-audio<0.3.0 -ovos-audio-plugin-mpv<0.3.0 -ovos-audio-plugin-simple<0.2.0 -ovos-backend-client<1.1.0 -ovos-bidirectional-translation-plugin<0.2.0 -ovos-bus-client<0.2.0 -ovos-classifiers<0.1.0 -ovos-common-query-pipeline-plugin<1.1.0 -ovos-config<0.3.0 -ovos-core<0.3.0 -ovos-dinkum-listener<0.3.0 -ovos-gui<0.3.0 -ovos-gui-plugin-shell-companion<1.1.0 -ovos-lingua-franca<0.5.0 -ovos-media-plugin-chromecast<0.2.0 -ovos-media-plugin-spotify<0.3.0 -ovos-messagebus<0.1.0 -ovos-microphone-plugin-sounddevice<0.1.0 -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 -ovos-padatious<1.1.0 -ovos-PHAL<0.3.0 -ovos-phal-plugin-connectivity-events<0.2.0 -ovos-phal-plugin-ipgeo<0.2.0 -ovos-PHAL-plugin-oauth<0.2.0 -ovos-plugin-common-play<1.1.0 -ovos-plugin-manager<0.6.0 -ovos-skill-alerts<0.2.0 -ovos-skill-application-launcher<0.6.0 -ovos-skill-audio-recording<0.3.0 -ovos-skill-boot-finished<0.5.0 -ovos-skill-date-time<0.4.0 -ovos-skill-dictation<0.3.0 -ovos-skill-fallback-unknown<0.2.0 -ovos-skill-hello-world<0.2.0 -ovos-skill-homescreen<1.1.0 -ovos-skill-installer<0.1.0 -ovos-skill-ip<0.3.0 -ovos-skill-local-media<0.3.0 -ovos-skill-naptime<0.4.0 -ovos-skill-parrot<0.2.0 -ovos-skill-personal<0.2.0 -ovos-skill-pyradios<0.2.0 -ovos-skill-somafm<0.2.0 -ovos-skill-speedtest<0.3.0 -ovos-skill-spelling<0.3.0 -ovos-skill-volume<0.2.0 -ovos-skill-weather<0.2.0 -ovos-skill-wikihow<0.3.0 -ovos-skill-wikipedia<0.6.0 -ovos-solver-openai-persona-plugin<0.1.0 -ovos-stt-plugin-chromium<0.2.0 -ovos-stt-plugin-server<0.1.0 -ovos-stt-plugin-vosk<0.3.0 -ovos-translate-server-plugin<0.1.0 -ovos-tts-plugin-server<0.1.0 -ovos-utils<0.4.0 -ovos-utterance-corrections-plugin<0.1.0 -ovos-utterance-normalizer<0.3.0 -ovos-utterance-plugin-cancel<0.3.0 -ovos-vad-plugin-noise<0.2.0 -ovos-workshop<1.1.0 -ovos-ww-plugin-precise-lite<0.2.0 -ovos-ww-plugin-vosk<0.2.0 \ No newline at end of file diff --git a/requirements/constraints-testing.txt b/requirements/constraints-testing.txt deleted file mode 100644 index 6362850dac76..000000000000 --- a/requirements/constraints-testing.txt +++ /dev/null @@ -1,69 +0,0 @@ -ovos-adapt-parser<2.0.0 -ovos-audio<1.0.0 -ovos-audio-plugin-mpv<1.0.0 -ovos-audio-plugin-simple<1.0.0 -ovos-backend-client<2.0.0 -ovos-bidirectional-translation-plugin<1.0.0 -ovos-bus-client<1.0.0 -ovos-classifiers<1.0.0 -ovos-common-query-pipeline-plugin<2.0.0 -ovos-config<1.0.0 -ovos-core<1.0.0 -ovos-dinkum-listener<1.0.0 -ovos-gui<1.0.0 -ovos-gui-plugin-shell-companion<2.0.0 -ovos-lingua-franca<1.0.0 -ovos-media-plugin-chromecast<1.0.0 -ovos-media-plugin-spotify<1.0.0 -ovos-messagebus<1.0.0 -ovos-microphone-plugin-sounddevice<1.0.0 -ovos-ocp-files-plugin<1.0.0 -ovos-ocp-m3u-plugin<1.0.0 -ovos-ocp-news-plugin<1.0.0 -ovos-ocp-pipeline-plugin<2.0.0 -ovos-ocp-rss-plugin<1.0.0 -ovos-ocp-youtube-plugin<1.0.0 -ovos-padatious<2.0.0 -ovos-PHAL<1.0.0 -ovos-phal-plugin-connectivity-events<1.0.0 -ovos-phal-plugin-ipgeo<1.0.0 -ovos-PHAL-plugin-oauth<1.0.0 -ovos-plugin-common-play<2.0.0 -ovos-plugin-manager<1.0.0 -ovos-skill-alerts<1.0.0 -ovos-skill-application-launcher<1.0.0 -ovos-skill-audio-recording<1.0.0 -ovos-skill-boot-finished<1.0.0 -ovos-skill-date-time<1.0.0 -ovos-skill-dictation<1.0.0 -ovos-skill-fallback-unknown<1.0.0 -ovos-skill-hello-world<1.0.0 -ovos-skill-homescreen<2.0.0 -ovos-skill-installer<1.0.0 -ovos-skill-ip<1.0.0 -ovos-skill-local-media<1.0.0 -ovos-skill-naptime<1.0.0 -ovos-skill-parrot<1.0.0 -ovos-skill-personal<1.0.0 -ovos-skill-pyradios<1.0.0 -ovos-skill-somafm<1.0.0 -ovos-skill-speedtest<1.0.0 -ovos-skill-spelling<1.0.0 -ovos-skill-volume<1.0.0 -ovos-skill-weather<1.0.0 -ovos-skill-wikihow<1.0.0 -ovos-skill-wikipedia<1.0.0 -ovos-solver-openai-persona-plugin<1.0.0 -ovos-stt-plugin-chromium<1.0.0 -ovos-stt-plugin-server<1.0.0 -ovos-stt-plugin-vosk<1.0.0 -ovos-translate-server-plugin<1.0.0 -ovos-tts-plugin-server<1.0.0 -ovos-utils<1.0.0 -ovos-utterance-corrections-plugin<1.0.0 -ovos-utterance-normalizer<1.0.0 -ovos-utterance-plugin-cancel<1.0.0 -ovos-vad-plugin-noise<1.0.0 -ovos-workshop<2.0.0 -ovos-ww-plugin-precise-lite<1.0.0 -ovos-ww-plugin-vosk<1.0.0 \ No newline at end of file From af066febda40786323b4d99c4a2082243f474d46 Mon Sep 17 00:00:00 2001 From: miro Date: Wed, 6 Nov 2024 06:00:04 +0000 Subject: [PATCH 4/8] chore: release_tests --- requirements/constraints-stable.txt | 69 ++++++++++++++++++++++++++++ requirements/constraints-testing.txt | 69 ++++++++++++++++++++++++++++ 2 files changed, 138 insertions(+) create mode 100644 requirements/constraints-stable.txt create mode 100644 requirements/constraints-testing.txt diff --git a/requirements/constraints-stable.txt b/requirements/constraints-stable.txt new file mode 100644 index 000000000000..9cebcd154cf7 --- /dev/null +++ b/requirements/constraints-stable.txt @@ -0,0 +1,69 @@ +ovos-adapt-parser<1.1.0 +ovos-audio<0.3.0 +ovos-audio-plugin-mpv<0.3.0 +ovos-audio-plugin-simple<0.2.0 +ovos-backend-client<1.1.0 +ovos-bidirectional-translation-plugin<0.2.0 +ovos-bus-client<0.2.0 +ovos-classifiers<0.1.0 +ovos-common-query-pipeline-plugin<1.1.0 +ovos-config<0.3.0 +ovos-core<0.3.0 +ovos-dinkum-listener<0.3.0 +ovos-gui<0.3.0 +ovos-gui-plugin-shell-companion<1.1.0 +ovos-lingua-franca<0.5.0 +ovos-media-plugin-chromecast<0.2.0 +ovos-media-plugin-spotify<0.3.0 +ovos-messagebus<0.1.0 +ovos-microphone-plugin-sounddevice<0.1.0 +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 +ovos-padatious<1.1.0 +ovos-PHAL<0.3.0 +ovos-phal-plugin-connectivity-events<0.2.0 +ovos-phal-plugin-ipgeo<0.2.0 +ovos-PHAL-plugin-oauth<0.2.0 +ovos-plugin-common-play<1.1.0 +ovos-plugin-manager<0.6.0 +ovos-skill-alerts<0.2.0 +ovos-skill-application-launcher<0.6.0 +ovos-skill-audio-recording<0.3.0 +ovos-skill-boot-finished<0.5.0 +ovos-skill-date-time<0.4.0 +ovos-skill-dictation<0.3.0 +ovos-skill-fallback-unknown<0.2.0 +ovos-skill-hello-world<0.2.0 +ovos-skill-homescreen<1.1.0 +ovos-skill-installer<0.1.0 +ovos-skill-ip<0.3.0 +ovos-skill-local-media<0.3.0 +ovos-skill-naptime<0.4.0 +ovos-skill-parrot<0.2.0 +ovos-skill-personal<0.2.0 +ovos-skill-pyradios<0.2.0 +ovos-skill-somafm<0.2.0 +ovos-skill-speedtest<0.3.0 +ovos-skill-spelling<0.3.0 +ovos-skill-volume<0.2.0 +ovos-skill-weather<0.2.0 +ovos-skill-wikihow<0.3.0 +ovos-skill-wikipedia<0.6.0 +ovos-solver-openai-persona-plugin<0.1.0 +ovos-stt-plugin-chromium<0.2.0 +ovos-stt-plugin-server<0.1.0 +ovos-stt-plugin-vosk<0.3.0 +ovos-translate-server-plugin<0.1.0 +ovos-tts-plugin-server<0.1.0 +ovos-utils<0.4.0 +ovos-utterance-corrections-plugin<0.1.0 +ovos-utterance-normalizer<0.3.0 +ovos-utterance-plugin-cancel<0.3.0 +ovos-vad-plugin-noise<0.2.0 +ovos-workshop<1.1.0 +ovos-ww-plugin-precise-lite<0.2.0 +ovos-ww-plugin-vosk<0.2.0 \ No newline at end of file diff --git a/requirements/constraints-testing.txt b/requirements/constraints-testing.txt new file mode 100644 index 000000000000..6362850dac76 --- /dev/null +++ b/requirements/constraints-testing.txt @@ -0,0 +1,69 @@ +ovos-adapt-parser<2.0.0 +ovos-audio<1.0.0 +ovos-audio-plugin-mpv<1.0.0 +ovos-audio-plugin-simple<1.0.0 +ovos-backend-client<2.0.0 +ovos-bidirectional-translation-plugin<1.0.0 +ovos-bus-client<1.0.0 +ovos-classifiers<1.0.0 +ovos-common-query-pipeline-plugin<2.0.0 +ovos-config<1.0.0 +ovos-core<1.0.0 +ovos-dinkum-listener<1.0.0 +ovos-gui<1.0.0 +ovos-gui-plugin-shell-companion<2.0.0 +ovos-lingua-franca<1.0.0 +ovos-media-plugin-chromecast<1.0.0 +ovos-media-plugin-spotify<1.0.0 +ovos-messagebus<1.0.0 +ovos-microphone-plugin-sounddevice<1.0.0 +ovos-ocp-files-plugin<1.0.0 +ovos-ocp-m3u-plugin<1.0.0 +ovos-ocp-news-plugin<1.0.0 +ovos-ocp-pipeline-plugin<2.0.0 +ovos-ocp-rss-plugin<1.0.0 +ovos-ocp-youtube-plugin<1.0.0 +ovos-padatious<2.0.0 +ovos-PHAL<1.0.0 +ovos-phal-plugin-connectivity-events<1.0.0 +ovos-phal-plugin-ipgeo<1.0.0 +ovos-PHAL-plugin-oauth<1.0.0 +ovos-plugin-common-play<2.0.0 +ovos-plugin-manager<1.0.0 +ovos-skill-alerts<1.0.0 +ovos-skill-application-launcher<1.0.0 +ovos-skill-audio-recording<1.0.0 +ovos-skill-boot-finished<1.0.0 +ovos-skill-date-time<1.0.0 +ovos-skill-dictation<1.0.0 +ovos-skill-fallback-unknown<1.0.0 +ovos-skill-hello-world<1.0.0 +ovos-skill-homescreen<2.0.0 +ovos-skill-installer<1.0.0 +ovos-skill-ip<1.0.0 +ovos-skill-local-media<1.0.0 +ovos-skill-naptime<1.0.0 +ovos-skill-parrot<1.0.0 +ovos-skill-personal<1.0.0 +ovos-skill-pyradios<1.0.0 +ovos-skill-somafm<1.0.0 +ovos-skill-speedtest<1.0.0 +ovos-skill-spelling<1.0.0 +ovos-skill-volume<1.0.0 +ovos-skill-weather<1.0.0 +ovos-skill-wikihow<1.0.0 +ovos-skill-wikipedia<1.0.0 +ovos-solver-openai-persona-plugin<1.0.0 +ovos-stt-plugin-chromium<1.0.0 +ovos-stt-plugin-server<1.0.0 +ovos-stt-plugin-vosk<1.0.0 +ovos-translate-server-plugin<1.0.0 +ovos-tts-plugin-server<1.0.0 +ovos-utils<1.0.0 +ovos-utterance-corrections-plugin<1.0.0 +ovos-utterance-normalizer<1.0.0 +ovos-utterance-plugin-cancel<1.0.0 +ovos-vad-plugin-noise<1.0.0 +ovos-workshop<2.0.0 +ovos-ww-plugin-precise-lite<1.0.0 +ovos-ww-plugin-vosk<1.0.0 \ No newline at end of file From 9e43d76924e2e5d0f075ea153d1ffc9694d0d322 Mon Sep 17 00:00:00 2001 From: miro Date: Wed, 6 Nov 2024 06:05:30 +0000 Subject: [PATCH 5/8] chore: release_tests --- requirements/requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 721d70d28ac1..f0eca3f31c8b 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -7,7 +7,6 @@ padacioso>=1.0.0, <2.0.0 ovos-adapt-parser>=1.0.4, <2.0.0 ovos_ocp_pipeline_plugin>=1.0.5, <2.0.0 ovos-common-query-pipeline-plugin>=1.0.4, <2.0.0 - ovos-utils>=0.3.5,<1.0.0 ovos_bus_client>=0.1.4,<2.0.0 ovos-plugin-manager>=0.5.6,<1.0.0 From e114c1012648b3ed0e73ba3d0e70e72a90606f72 Mon Sep 17 00:00:00 2001 From: miro Date: Wed, 6 Nov 2024 06:05:45 +0000 Subject: [PATCH 6/8] chore: release_tests --- .github/workflows/release_tests.yml | 39 ++-------------- requirements/constraints-stable.txt | 69 ---------------------------- requirements/constraints-testing.txt | 69 ---------------------------- scripts/release.py | 35 -------------- 4 files changed, 5 insertions(+), 207 deletions(-) delete mode 100644 requirements/constraints-stable.txt delete mode 100644 requirements/constraints-testing.txt delete mode 100644 scripts/release.py diff --git a/.github/workflows/release_tests.yml b/.github/workflows/release_tests.yml index 384b20d3cc08..89cf991e1083 100644 --- a/.github/workflows/release_tests.yml +++ b/.github/workflows/release_tests.yml @@ -13,43 +13,10 @@ on: - 'requirements/skills-gui.txt' - 'requirements/skills-internet.txt' - 'requirements/skills-media.txt' - - 'requirements/constraints-stable.txt' - - 'requirements/constraints-testing.txt' jobs: - update-constraints: - runs-on: ubuntu-latest - outputs: - constraints-stable: ${{ steps.update-constraints.outputs.constraints-stable }} - constraints-testing: ${{ steps.update-constraints.outputs.constraints-testing }} - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.8' - - - name: Install System Dependencies - run: | - sudo apt-get update - sudo apt install python3-dev swig libssl-dev portaudio19-dev libpulse-dev libfann-dev - - - name: Install core repo dependencies - run: | - pip install -e .[mycroft,lgpl,plugins,skills-essential,skills-audio,skills-gui,skills-internet,skills-media,skills-desktop] - - - name: Update constraints files - id: update-constraints - run: | - python scripts/release.py - echo "constraints-stable=requirements/constraints-stable.txt" >> $GITHUB_ENV - echo "constraints-testing=requirements/constraints-testing.txt" >> $GITHUB_ENV - test-stable-and-testing-constraints: runs-on: ubuntu-latest - needs: update-constraints # Depend on constraints update job strategy: matrix: constraints_file: ['stable', 'testing'] @@ -72,9 +39,13 @@ jobs: run: | pip install -r requirements/tests.txt + - name: Download constraints file + run: | + curl -o requirements/constraints-${{ matrix.constraints_file }}.txt https://raw.githubusercontent.com/OpenVoiceOS/ovos-releases/refs/heads/main/constraints-${{ matrix.constraints_file }}.txt + - name: Install core repo with constraints run: | - pip install -e .[mycroft,lgpl,plugins,skills-essential,skills-audio,skills-gui,skills-internet,skills-media,skills-desktop] -c ${{ env['constraints-' + matrix.constraints_file] }} + pip install -e .[mycroft,lgpl,plugins,skills-essential,skills-audio,skills-gui,skills-internet,skills-media,skills-desktop] -c requirements/constraints-${{ matrix.constraints_file }}.txt - name: Run unit tests run: | diff --git a/requirements/constraints-stable.txt b/requirements/constraints-stable.txt deleted file mode 100644 index 9cebcd154cf7..000000000000 --- a/requirements/constraints-stable.txt +++ /dev/null @@ -1,69 +0,0 @@ -ovos-adapt-parser<1.1.0 -ovos-audio<0.3.0 -ovos-audio-plugin-mpv<0.3.0 -ovos-audio-plugin-simple<0.2.0 -ovos-backend-client<1.1.0 -ovos-bidirectional-translation-plugin<0.2.0 -ovos-bus-client<0.2.0 -ovos-classifiers<0.1.0 -ovos-common-query-pipeline-plugin<1.1.0 -ovos-config<0.3.0 -ovos-core<0.3.0 -ovos-dinkum-listener<0.3.0 -ovos-gui<0.3.0 -ovos-gui-plugin-shell-companion<1.1.0 -ovos-lingua-franca<0.5.0 -ovos-media-plugin-chromecast<0.2.0 -ovos-media-plugin-spotify<0.3.0 -ovos-messagebus<0.1.0 -ovos-microphone-plugin-sounddevice<0.1.0 -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 -ovos-padatious<1.1.0 -ovos-PHAL<0.3.0 -ovos-phal-plugin-connectivity-events<0.2.0 -ovos-phal-plugin-ipgeo<0.2.0 -ovos-PHAL-plugin-oauth<0.2.0 -ovos-plugin-common-play<1.1.0 -ovos-plugin-manager<0.6.0 -ovos-skill-alerts<0.2.0 -ovos-skill-application-launcher<0.6.0 -ovos-skill-audio-recording<0.3.0 -ovos-skill-boot-finished<0.5.0 -ovos-skill-date-time<0.4.0 -ovos-skill-dictation<0.3.0 -ovos-skill-fallback-unknown<0.2.0 -ovos-skill-hello-world<0.2.0 -ovos-skill-homescreen<1.1.0 -ovos-skill-installer<0.1.0 -ovos-skill-ip<0.3.0 -ovos-skill-local-media<0.3.0 -ovos-skill-naptime<0.4.0 -ovos-skill-parrot<0.2.0 -ovos-skill-personal<0.2.0 -ovos-skill-pyradios<0.2.0 -ovos-skill-somafm<0.2.0 -ovos-skill-speedtest<0.3.0 -ovos-skill-spelling<0.3.0 -ovos-skill-volume<0.2.0 -ovos-skill-weather<0.2.0 -ovos-skill-wikihow<0.3.0 -ovos-skill-wikipedia<0.6.0 -ovos-solver-openai-persona-plugin<0.1.0 -ovos-stt-plugin-chromium<0.2.0 -ovos-stt-plugin-server<0.1.0 -ovos-stt-plugin-vosk<0.3.0 -ovos-translate-server-plugin<0.1.0 -ovos-tts-plugin-server<0.1.0 -ovos-utils<0.4.0 -ovos-utterance-corrections-plugin<0.1.0 -ovos-utterance-normalizer<0.3.0 -ovos-utterance-plugin-cancel<0.3.0 -ovos-vad-plugin-noise<0.2.0 -ovos-workshop<1.1.0 -ovos-ww-plugin-precise-lite<0.2.0 -ovos-ww-plugin-vosk<0.2.0 \ No newline at end of file diff --git a/requirements/constraints-testing.txt b/requirements/constraints-testing.txt deleted file mode 100644 index 6362850dac76..000000000000 --- a/requirements/constraints-testing.txt +++ /dev/null @@ -1,69 +0,0 @@ -ovos-adapt-parser<2.0.0 -ovos-audio<1.0.0 -ovos-audio-plugin-mpv<1.0.0 -ovos-audio-plugin-simple<1.0.0 -ovos-backend-client<2.0.0 -ovos-bidirectional-translation-plugin<1.0.0 -ovos-bus-client<1.0.0 -ovos-classifiers<1.0.0 -ovos-common-query-pipeline-plugin<2.0.0 -ovos-config<1.0.0 -ovos-core<1.0.0 -ovos-dinkum-listener<1.0.0 -ovos-gui<1.0.0 -ovos-gui-plugin-shell-companion<2.0.0 -ovos-lingua-franca<1.0.0 -ovos-media-plugin-chromecast<1.0.0 -ovos-media-plugin-spotify<1.0.0 -ovos-messagebus<1.0.0 -ovos-microphone-plugin-sounddevice<1.0.0 -ovos-ocp-files-plugin<1.0.0 -ovos-ocp-m3u-plugin<1.0.0 -ovos-ocp-news-plugin<1.0.0 -ovos-ocp-pipeline-plugin<2.0.0 -ovos-ocp-rss-plugin<1.0.0 -ovos-ocp-youtube-plugin<1.0.0 -ovos-padatious<2.0.0 -ovos-PHAL<1.0.0 -ovos-phal-plugin-connectivity-events<1.0.0 -ovos-phal-plugin-ipgeo<1.0.0 -ovos-PHAL-plugin-oauth<1.0.0 -ovos-plugin-common-play<2.0.0 -ovos-plugin-manager<1.0.0 -ovos-skill-alerts<1.0.0 -ovos-skill-application-launcher<1.0.0 -ovos-skill-audio-recording<1.0.0 -ovos-skill-boot-finished<1.0.0 -ovos-skill-date-time<1.0.0 -ovos-skill-dictation<1.0.0 -ovos-skill-fallback-unknown<1.0.0 -ovos-skill-hello-world<1.0.0 -ovos-skill-homescreen<2.0.0 -ovos-skill-installer<1.0.0 -ovos-skill-ip<1.0.0 -ovos-skill-local-media<1.0.0 -ovos-skill-naptime<1.0.0 -ovos-skill-parrot<1.0.0 -ovos-skill-personal<1.0.0 -ovos-skill-pyradios<1.0.0 -ovos-skill-somafm<1.0.0 -ovos-skill-speedtest<1.0.0 -ovos-skill-spelling<1.0.0 -ovos-skill-volume<1.0.0 -ovos-skill-weather<1.0.0 -ovos-skill-wikihow<1.0.0 -ovos-skill-wikipedia<1.0.0 -ovos-solver-openai-persona-plugin<1.0.0 -ovos-stt-plugin-chromium<1.0.0 -ovos-stt-plugin-server<1.0.0 -ovos-stt-plugin-vosk<1.0.0 -ovos-translate-server-plugin<1.0.0 -ovos-tts-plugin-server<1.0.0 -ovos-utils<1.0.0 -ovos-utterance-corrections-plugin<1.0.0 -ovos-utterance-normalizer<1.0.0 -ovos-utterance-plugin-cancel<1.0.0 -ovos-vad-plugin-noise<1.0.0 -ovos-workshop<2.0.0 -ovos-ww-plugin-precise-lite<1.0.0 -ovos-ww-plugin-vosk<1.0.0 \ No newline at end of file diff --git a/scripts/release.py b/scripts/release.py deleted file mode 100644 index c6222254f476..000000000000 --- a/scripts/release.py +++ /dev/null @@ -1,35 +0,0 @@ -import re -from os.path import dirname -import subprocess - -# Run pip list and filter for "ovos-" packages -result = subprocess.run(['pip', 'list', '--format=freeze'], capture_output=True, text=True) -packages = result.stdout.splitlines() - -stable_constraints = [] -testing_constraints = [] - -# Regular expression to capture package name and version, with optional alpha tag -pattern = re.compile(r'^(ovos-[\w-]+)==(\d+)\.(\d+)\.(\d+)(a\d+)?$') - -for package in packages: - match = pattern.match(package) - if match: - name, major, minor, patch, alpha = match.groups() - major = stable_major = int(major) - minor = stable_minor = int(minor) - patch = int(patch) - print(package) - stable_constraints.append(f"{name}<{major}.{minor + 1}.0") - testing_constraints.append(f"{name}<{major+1}.0.0") - -base = f"{dirname(dirname(__file__))}/requirements" - -# Write stable and testing constraints to respective files -with open(f'{base}/constraints-stable.txt', 'w') as stable_file: - stable_file.write("\n".join(stable_constraints)) - -with open(f'{base}/constraints-testing.txt', 'w') as testing_file: - testing_file.write("\n".join(testing_constraints)) - -print("Constraints files generated: constraints-stable.txt and constraints-testing.txt") From 894d27cba2ee669eac9ea6e831a634273ed0f067 Mon Sep 17 00:00:00 2001 From: miro Date: Wed, 6 Nov 2024 06:50:14 +0000 Subject: [PATCH 7/8] chore: release_tests --- .github/workflows/{release_tests.yml => constraint_tests.yml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .github/workflows/{release_tests.yml => constraint_tests.yml} (95%) diff --git a/.github/workflows/release_tests.yml b/.github/workflows/constraint_tests.yml similarity index 95% rename from .github/workflows/release_tests.yml rename to .github/workflows/constraint_tests.yml index 89cf991e1083..3dc3e9347001 100644 --- a/.github/workflows/release_tests.yml +++ b/.github/workflows/constraint_tests.yml @@ -45,7 +45,7 @@ jobs: - name: Install core repo with constraints run: | - pip install -e .[mycroft,lgpl,plugins,skills-essential,skills-audio,skills-gui,skills-internet,skills-media,skills-desktop] -c requirements/constraints-${{ matrix.constraints_file }}.txt + pip install -e .[mycroft,lgpl,plugins,skills-essential,skills-audio,skills-gui,skills-internet,skills-media,skills-desktop] --pre -c requirements/constraints-${{ matrix.constraints_file }}.txt - name: Run unit tests run: | From 3ef3c9267404bfc39461a555c40f35d2bedf701d Mon Sep 17 00:00:00 2001 From: miro Date: Wed, 6 Nov 2024 06:53:39 +0000 Subject: [PATCH 8/8] chore: release_tests --- .github/workflows/constraint_tests.yml | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/.github/workflows/constraint_tests.yml b/.github/workflows/constraint_tests.yml index 3dc3e9347001..e8aa2be5141b 100644 --- a/.github/workflows/constraint_tests.yml +++ b/.github/workflows/constraint_tests.yml @@ -1,6 +1,7 @@ -name: Test with Constraints +name: Test Constraints on: + workflow_dispatch: pull_request: paths: - 'requirements/requirements.txt' @@ -35,10 +36,6 @@ jobs: sudo apt-get update sudo apt install python3-dev swig libssl-dev portaudio19-dev libpulse-dev libfann-dev - - name: Install test dependencies - run: | - pip install -r requirements/tests.txt - - name: Download constraints file run: | curl -o requirements/constraints-${{ matrix.constraints_file }}.txt https://raw.githubusercontent.com/OpenVoiceOS/ovos-releases/refs/heads/main/constraints-${{ matrix.constraints_file }}.txt @@ -46,7 +43,3 @@ jobs: - name: Install core repo with constraints run: | pip install -e .[mycroft,lgpl,plugins,skills-essential,skills-audio,skills-gui,skills-internet,skills-media,skills-desktop] --pre -c requirements/constraints-${{ matrix.constraints_file }}.txt - - - name: Run unit tests - run: | - pytest test/unittests