Skip to content

fix: clean up CI/CD — remove release gate, fix pydantic install#36

Merged
JarbasAl merged 12 commits into
devfrom
ci
Mar 10, 2026
Merged

fix: clean up CI/CD — remove release gate, fix pydantic install#36
JarbasAl merged 12 commits into
devfrom
ci

Conversation

@JarbasAl

@JarbasAl JarbasAl commented Mar 10, 2026

Copy link
Copy Markdown
Member
  • release_workflow.yml: remove build_tests gate job entirely; build tests already ran on the PR, re-running the full 5-Python matrix after merge just delays every alpha release for no reason. publish_alpha now fires directly on PR merge per the standard pattern.
  • pyproject.toml: add [dev] extra aliasing [pydantic] so coverage.yml's automatic 'pip install -e ".[dev]"' picks up ovos-pydantic-models
  • unit_tests.yml: drop install_extras — [dev] extra now handles pydantic, and 'ovoscope[pydantic]' was wrong (would reinstall 0.7.2 from PyPI, overriding the local editable install)

Summary by CodeRabbit

  • Chores
    • Simplified release process so publishing runs directly without the prior conditional test dependency
    • Updated test workflow configuration to adjust test execution and permissions
    • Added a new optional "dev" dependency group to support development tooling

JarbasAl and others added 10 commits March 10, 2026 14:05
- build_tests.yml: remove paths filter (now runs on all PRs); add package_name
  and version_file for channel compatibility check
- release_preview.yml: add package_name and version_file for channel check
- unit_tests.yml: fix install_extras ("-e .[pydantic]" -> "[pydantic]");
  remove push trigger and paths-ignore so coverage always posts on PRs
- release_workflow.yml: remove redundant github.ref guard on job conditions
- downstream_check.yml: new workflow
- python_support.yml: removed (superseded by build-tests.yml)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
build-tests.yml no longer uses these (channel check was removed from
the reusable workflow).

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions github-actions Bot added the fix label Mar 10, 2026
@github-actions

github-actions Bot commented Mar 10, 2026

Copy link
Copy Markdown

At your service! I've gathered all the check results for you. 🫡

I've aggregated the results of the automated checks for this PR below.

📋 Repo Health

Scanning for any signs of 'deprecated' acne. 🧴

✅ All required files present.

Latest Version: 0.9.0a1

ovoscope/version.py — Version file
README.md — README
LICENSE — License file
pyproject.toml — pyproject.toml
CHANGELOG.md — Changelog
⚠️ requirements.txt — Requirements
ovoscope/version.py has valid version block markers

⚖️ License Check

I've checked for any conflicting terms of service. 📜

✅ No license violations found (60 packages).

License distribution: 14× MIT, 14× MIT License, 9× Apache Software License, 4× Apache-2.0, 4× BSD-3-Clause, 2× ISC License (ISCL), 2× PSF-2.0, 2× Python Software Foundation License, +8 more

Full breakdown — 60 packages
Package Version License URL
annotated-doc 0.0.4 MIT link
annotated-types 0.7.0 MIT License link
anyio 4.12.1 MIT link
audioop-lts 0.2.2 PSF-2.0 link
build 1.4.0 MIT link
certifi 2026.2.25 Mozilla Public License 2.0 (MPL 2.0) link
charset-normalizer 3.4.5 MIT link
click 8.3.1 BSD-3-Clause link
combo_lock 0.3.0 Apache Software License link
fastapi 0.135.1 MIT link
filelock 3.25.1 MIT link
h11 0.16.0 MIT License link
idna 3.11 BSD-3-Clause link
importlib_metadata 8.7.1 Apache-2.0 link
json-database 0.10.1 MIT link
kthread 0.2.3 MIT License link
langcodes 3.5.1 MIT License link
markdown-it-py 4.0.0 MIT License link
mdurl 0.1.2 MIT License link
memory-tempfile 2.2.3 MIT License link
ovos-config 2.1.1 Apache-2.0 link
ovos-number-parser 0.5.1 Apache Software License link
ovos-plugin-manager 2.2.0 Apache-2.0 link
ovos-pydantic-models 0.1.1 Apache-2.0 link
ovos-solver-yes-no-plugin 0.2.8 MIT link
ovos_bus_client 1.5.0 Apache Software License link
ovos_core 2.1.3a2 Apache Software License link
ovos_utils 0.8.5a2 Apache link
ovos_workshop 8.0.0 apache-2.0 link
ovoscope 0.9.0a1 Apache Software License link
packaging 26.0 Apache-2.0 OR BSD-2-Clause link
padacioso 1.0.0 apache-2.0 link
pexpect 4.9.0 ISC License (ISCL) link
ptyprocess 0.7.0 ISC License (ISCL) link
pydantic 2.12.5 MIT link
pydantic_core 2.41.5 MIT link
pyee 12.1.1 MIT License link
Pygments 2.19.2 BSD License link
pyproject_hooks 1.2.0 MIT License link
python-dateutil 2.9.0.post0 Apache Software License; BSD License link
PyYAML 6.0.3 MIT License link
quebra-frases 0.3.7 Apache Software License link
RapidFuzz 3.14.3 MIT link
regex 2026.2.28 Apache-2.0 AND CNRI-Python link
requests 2.32.5 Apache Software License link
rich 13.9.4 MIT License link
rich-click 1.9.7 MIT License

Copyright (c) 2022 Phil Ewels

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
| link |
| simplematch | 1.4 | MIT License | link |
| six | 1.17.0 | MIT License | link |
| standard-aifc | 3.13.0 | Python Software Foundation License | link |
| standard-chunk | 3.13.0 | Python Software Foundation License | link |
| starlette | 0.52.1 | BSD-3-Clause | link |
| typing-inspection | 0.4.2 | MIT | link |
| typing_extensions | 4.15.0 | PSF-2.0 | link |
| unicode-rbnf | 2.4.0 | MIT License | |
| urllib3 | 2.6.3 | MIT | link |
| uvicorn | 0.41.0 | BSD-3-Clause | link |
| watchdog | 2.3.1 | Apache Software License | link |
| websocket-client | 1.9.0 | Apache Software License | link |
| zipp | 3.23.0 | MIT | link |

Policy: Apache 2.0 (universal donor). StrongCopyleft / NetworkCopyleft / WeakCopyleft / Other / Error categories fail. MPL allowed.

🏷️ Release Preview

I've checked the 'Performance Improvements' metrics. 📈

Current: 0.9.0a1Next: 0.9.1a1

Signal Value
Label fix
PR title fix: clean up CI/CD — remove release gate, fix pydantic install
Bump build

✅ PR title follows conventional commit format.


🚀 Release Channel Compatibility

Predicted next version: 0.9.1a1

Channel Status Note Current Constraint
Stable Not in channel -
Testing Compatible ovoscope>=0.7.2,<1.0.0
Alpha Compatible ovoscope>=0.7.2

🔒 Security (pip-audit)

Security check! Are we safe from vulnerabilities? 🛡️

✅ No known vulnerabilities found (68 packages scanned).

🔨 Build Tests

Ensuring the gears are properly lubricated. 💧

✅ All versions pass

Python Build Install Tests
3.10
3.11
3.12
3.13
3.14

📊 Coverage

A comprehensive review of our code coverage. 📖

⚠️ 65.8% total coverage

Per-file coverage (4 files)
File Coverage Missing lines
ovoscope/version.py 0.0% 5
ovoscope/pydantic_helpers.py 37.1% 22
ovoscope/pytest_plugin.py 64.3% 5
ovoscope/__init__.py 68.7% 144

Full report: download the coverage-report artifact.


Automating the boring stuff so you don't have to! 🚀

@coderabbitai

coderabbitai Bot commented Mar 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (5)
  • test/__pycache__/__init__.cpython-311.pyc is excluded by !**/*.pyc
  • test/unittests/__pycache__/__init__.cpython-311.pyc is excluded by !**/*.pyc
  • test/unittests/__pycache__/test_capture_session.cpython-311-pytest-9.0.2.pyc is excluded by !**/*.pyc
  • test/unittests/__pycache__/test_end2end.cpython-311-pytest-9.0.2.pyc is excluded by !**/*.pyc
  • test/unittests/__pycache__/test_minicroft.cpython-311-pytest-9.0.2.pyc is excluded by !**/*.pyc

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1d154a1f-bcf9-447e-887c-4ca03e4b6318

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Removed the build_tests job from the release workflow, adjusted unit test CI to drop the ovoscope[pydantic] extras and added a permissions block, and introduced a new optional dependency group dev with ovos-pydantic-models>=0.1.0 in pyproject.toml.

Changes

Cohort / File(s) Summary
Release workflow
.github/workflows/release_workflow.yml
Removed the build_tests job block and its conditional/dependency wiring so publish_alpha runs directly on merge or dispatch.
Unit test CI
.github/workflows/unit_tests.yml
Removed ovoscope[pydantic] from install extras and added a permissions block (pull-requests: write, contents: read).
Dependency config
pyproject.toml
Added new optional dependency group dev containing ovos-pydantic-models>=0.1.0 (parallels existing pydantic/dev grouping).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Poem

🐰 I hopped through workflows late at night,
Snipped a job, tidied an extra byte,
Added a dev seed to grow,
Piped permissions so flows know,
Hooray — the CI feels light! 🌿

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: removing the release gate (build_tests job) and fixing the pydantic dependency handling across CI/CD workflows.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch ci

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions Bot added fix and removed fix labels Mar 10, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pyproject.toml`:
- Around line 27-28: The unit tests workflow call for the reusable coverage
workflow is missing the install_extras parameter, so the dev pydantic dependency
isn't installed; update the reusable workflow invocation in unit_tests.yml to
add a with: block that includes python_version: "3.14" and install_extras:
'[dev]' (ensure the keys are named exactly install_extras and python_version) so
the coverage workflow installs development extras when running tests like
test/unittests/test_pydantic_helpers.py.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 0d43e9e8-bfd4-49ba-804c-a104f94325cd

📥 Commits

Reviewing files that changed from the base of the PR and between 83e9809 and afd8c75.

📒 Files selected for processing (3)
  • .github/workflows/release_workflow.yml
  • .github/workflows/unit_tests.yml
  • pyproject.toml
💤 Files with no reviewable changes (2)
  • .github/workflows/release_workflow.yml
  • .github/workflows/unit_tests.yml

Comment thread pyproject.toml Outdated
JarbasAl and others added 2 commits March 10, 2026 15:29
- unit_tests.yml: coverage + PR comment on pull_request (permissions: pr write)
- coverage_pages.yml: coverage + GitHub Pages on push to dev (permissions: pages, id-token)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@JarbasAl JarbasAl merged commit a7fcec8 into dev Mar 10, 2026
14 checks passed
@JarbasAl JarbasAl deleted the ci branch March 10, 2026 15:55
JarbasAl added a commit that referenced this pull request Mar 10, 2026
* feat: docs, tests and some tiny improvements (#30)

* feat: docs, tests and some tiny improvements

* feat: docs, tests and some tiny improvements

* feat: docs, tests and some tiny improvements

* Increment Version to

* Add renovate.json (#29)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Increment Version to

* Update Changelog

* feat: Add language customization and expanded test coverage (#35)

* feat: docs, tests and some tiny improvements

* feat: docs, tests and some tiny improvements

* feat: docs, tests and some tiny improvements

* feat: add multilingual testing support and fix from_message bugs

- MiniCroft: added `lang` and `secondary_langs` params to patch
  Configuration() before IntentService init, enabling Adapt/Padatious
  to register vocab for multiple languages
- End2EndTest.from_message(): fixed crash when async_messages=None
- End2EndTest.from_message(): added ignore_gui param (default True)
  to filter GUI namespace messages during fixture recording
- End2EndTest.from_message(): now passes ignore_messages, eof_msgs,
  async_messages to the returned End2EndTest object
- Updated docs/minicroft.md with new constructor params and
  Multilingual Testing section

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* chore: tests

* chore: tests

* chore: tests

* coderabbitt

* tests

* tests

* update

* coderrabbit

* coderrabbit

* .

* ci: update workflows for gh-automations refactor

- build_tests.yml: remove paths filter (now runs on all PRs); add package_name
  and version_file for channel compatibility check
- release_preview.yml: add package_name and version_file for channel check
- unit_tests.yml: fix install_extras ("-e .[pydantic]" -> "[pydantic]");
  remove push trigger and paths-ignore so coverage always posts on PRs
- release_workflow.yml: remove redundant github.ref guard on job conditions
- downstream_check.yml: new workflow
- python_support.yml: removed (superseded by build-tests.yml)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* .

* chore: remove unused package_name/version_file inputs from build_tests

build-tests.yml no longer uses these (channel check was removed from
the reusable workflow).

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* fix: standardize CI workflows for release readiness

- release_workflow.yml: replace inline build_tests job with reusable
  build-tests.yml@dev (runs full matrix 3.10-3.14, uses wheel install)
- unit_tests.yml: fix install_extras — was '[pydantic]' (invalid pip arg),
  now 'ovoscope[pydantic]' which reinstalls with the optional extra after
  coverage.yml's editable install

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* gitignore

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* Update downstream dependency report for ovoscope

* Increment Version to 0.9.0a1

* Update Changelog

* drop pycache

* fix: clean up CI/CD — remove release gate, fix pydantic install (#36)

* feat: docs, tests and some tiny improvements

* feat: docs, tests and some tiny improvements

* chore: tests

* chore: tests

* tests

* tests

* coderrabbit

* ci: update workflows for gh-automations refactor

- build_tests.yml: remove paths filter (now runs on all PRs); add package_name
  and version_file for channel compatibility check
- release_preview.yml: add package_name and version_file for channel check
- unit_tests.yml: fix install_extras ("-e .[pydantic]" -> "[pydantic]");
  remove push trigger and paths-ignore so coverage always posts on PRs
- release_workflow.yml: remove redundant github.ref guard on job conditions
- downstream_check.yml: new workflow
- python_support.yml: removed (superseded by build-tests.yml)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore: remove unused package_name/version_file inputs from build_tests

build-tests.yml no longer uses these (channel check was removed from
the reusable workflow).

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* fix: remove duplicate coverage_source line in unit_tests.yml

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: split coverage into PR checks and Pages deployment

- unit_tests.yml: coverage + PR comment on pull_request (permissions: pr write)
- coverage_pages.yml: coverage + GitHub Pages on push to dev (permissions: pages, id-token)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* cov

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* Increment Version to 0.9.1a1

* Update Changelog

* Increment Version to 0.9.1a2

---------

Co-authored-by: JarbasAI <33701864+JarbasAl@users.noreply.github.com>
Co-authored-by: JarbasAl <JarbasAl@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: miro <jarbasai@mailfence.com>
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.

1 participant