Skip to content

Release 1.0.2a1#46

Open
github-actions[bot] wants to merge 16 commits intomasterfrom
release-1.0.2a1
Open

Release 1.0.2a1#46
github-actions[bot] wants to merge 16 commits intomasterfrom
release-1.0.2a1

Conversation

@github-actions
Copy link
Copy Markdown

Human review requested!

dependabot Bot and others added 16 commits June 16, 2025 01:53
Updates the requirements on [ovos-plugin-manager](https://github.com/OpenVoiceOS/OVOS-plugin-manager) to permit the latest version.
- [Release notes](https://github.com/OpenVoiceOS/OVOS-plugin-manager/releases)
- [Changelog](https://github.com/OpenVoiceOS/ovos-plugin-manager/blob/dev/CHANGELOG.md)
- [Commits](OpenVoiceOS/ovos-plugin-manager@0.5.0...1.0.3)

---
updated-dependencies:
- dependency-name: ovos-plugin-manager
  dependency-version: 1.0.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix: move to sequential instead of parallel intent calculation

* feat: python gitignore

* fix(unit-tests): drop EOL Python, add newer ones

* fix: mark cache as dirty on all methods

* Update .gitignore

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

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Updates the requirements on [ovos-plugin-manager](https://github.com/OpenVoiceOS/OVOS-plugin-manager) to permit the latest version.
- [Release notes](https://github.com/OpenVoiceOS/OVOS-plugin-manager/releases)
- [Changelog](https://github.com/OpenVoiceOS/ovos-plugin-manager/blob/dev/CHANGELOG.md)
- [Commits](OpenVoiceOS/ovos-plugin-manager@0.5.0...2.1.0)

---
updated-dependencies:
- dependency-name: ovos-plugin-manager
  dependency-version: 2.1.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…ence queries (#44)

* feat: normalize whitespace and apostrophes in training data and queries

- Add normalize_whitespace() to collapse runs of whitespace to a single space
- Add normalize_apostrophes() to map curly/fancy quote variants to ASCII '
- Add normalize_utterance() combining both for use on plain text
- Update normalize_example() to apply both normalizations at registration time
- Apply normalize_utterance() to every query at the top of calc_intents()
- Add 11 new tests: 3 utility unit tests + 8 integration tests covering
  double whitespace, apostrophe variants, entity interactions, and mixed cases

Prevents STT output with curly apostrophes or extra spaces from failing to
match intents that were trained with canonical punctuation.

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

* feat: drop apostrophes + modernize CI workflows

Normalization:
- Switch from apostrophe normalization to dropping — "what's" and "whats"
  both reduce to "whats", covering all STT apostrophe variants without
  maintaining an exhaustive list of what to map to
- Rename normalize_apostrophes() to drop_apostrophes() accordingly
- Applied at both training time (normalize_example) and inference time
  (normalize_utterance called in calc_intents)
- Update tests to reflect drop semantics; use unicode escapes for curly
  quote test data to keep source files ASCII-safe

CI/packaging:
- Replace legacy build_tests.yml/install_tests.yml/unit_tests.yml with
  modern shared workflow callers (build-tests, coverage, lint, opm-check,
  pip_audit, license_check, release-preview, repo-health)
- Remove setup.py and requirements.txt — pyproject.toml covers all deps,
  entry points, and build config
- Modernize release_workflow.yml and publish_stable.yml to thin callers

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

* ci: remove unnecessary secrets from non-release workflows

PYPI_TOKEN and MATRIX_TOKEN are only needed by release_workflow.yml
and publish_stable.yml. All other workflow callers (build-tests, lint,
coverage, opm-check, pip_audit, license_check, release-preview,
repo-health) had them passed unnecessarily.

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

* fix: add test extra and opm install_extras to resolve CI failures

- Add [test] optional-dependencies group to pyproject.toml with
  ovos-utils, ovos-bus-client, ovos-plugin-manager so build-tests CI
  can install the deps required by test/test_pipeline.py
- Add install_extras: 'extras' to opm-check.yml so ovos-plugin-manager
  is present when OPM scans for the entry point

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

* fix: replace literal apostrophe glyphs with unicode escapes (RUF001)

apostrophe_variants list in drop_apostrophes() used literal non-ASCII
characters that trigger ruff RUF001. Replaced each with its \uXXXX
escape sequence; runtime behavior is identical.

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

* ci: install test extras in coverage workflow

test/test_pipeline.py imports ovos_utils which is not a base dependency.
Add install_extras: test so the coverage run has the same environment as
the build-tests workflow.

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

* feat: replace apostrophes with space, add entity suffix spacing

- drop_apostrophes() now replaces with ' ' instead of '' so "it's" -> "it s"
  preserving word boundaries rather than merging tokens
- _space_entities() inserts spaces around {placeholder} after parenthesis
  expansion so agglutinative suffixes like {keyword}ren become {keyword} ren
  and the capture group is not contaminated by the suffix
- Add test_entity_suffix_spacing covering Basque-style suffix patterns

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

* refactor: replace hand-rolled tree parser with regex+itertools expansion

The old SentenceTreeParser/TreeFragment class hierarchy is replaced with a
clean regex-based approach (ported from ovos-utils bracket_expansion):
- [optional] expanded via re.sub before alternatives pass
- (a|b) alternatives split via re.split and combined with itertools.product
- Fixed-point loop handles nested expansions

Same public API (expand_parentheses), 190 fewer lines, no external dep.

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

* test: add TestExpandParentheses suite + fix double-space in optional expansion

- Add 24 direct unit tests for expand_parentheses() covering: plain strings,
  empty input, entity placeholders, two/three alternatives, multiple
  independent groups, empty-alternative optional form, [optional] syntax,
  combined alternatives+optional, entity placeholders with alternatives and
  optional, whitespace handling, and deduplication
- Fix double-space bug: when the empty branch of [optional] is taken the
  join left "word  next"; add re.sub(r' +', ' ', ...) inside _fully_expand
  so internal runs of spaces are collapsed at expansion time

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

* ci: fix coverage install_extras format to '.[test]'

The coverage workflow does 'pip install <install_extras>' verbatim, so the
value must be a valid pip install target. 'test' was interpreted as a package
name; '.[test]' correctly installs the local package with the test extra.
(build-tests appends extras to the wheel path differently and is unaffected.)

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

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants