Skip to content

Refactor to remove use of deprecated pkg_resources module#555

Merged
NeonDaniel merged 4 commits into
devfrom
FIX_Python3_12Compat
Sep 12, 2025
Merged

Refactor to remove use of deprecated pkg_resources module#555
NeonDaniel merged 4 commits into
devfrom
FIX_Python3_12Compat

Conversation

@NeonDaniel

@NeonDaniel NeonDaniel commented Aug 29, 2025

Copy link
Copy Markdown
Member

Description

Refactor to use importlib instead of pkg_resources in packaging_utils

Issues

Other Notes

  • get_package_dependencies now includes extra dependencies, which is more of a fix than a breaking change
  • Included mitigation to unit test automation to prevent rate-limiting failures in HANA tests
  • Included in ghcr.io/neongeckocom/neon_skills-default_skills:alpha for testing

@NeonDaniel
NeonDaniel requested a review from mikejgray August 29, 2025 16:56
@mikejgray

Copy link
Copy Markdown
Contributor

I tested this and it was very unhappy with my custom skills in my Neon Hub...

2025-08-30 22:44:11.568 - neon-utils - neon_core.util.skill_utils:_install_skill_pip:78 - INFO - Requested installation of plugin skill: skill-easter-eggs
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Collecting skill-easter-eggs
  Downloading skill_easter_eggs-1.0.0-py3-none-any.whl (32.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 32.9/32.9 MB 11.9 MB/s eta 0:00:00
Requirement already satisfied: python-dateutil~=2.9.0 in /usr/local/lib/python3.10/site-packages (from skill-easter-eggs) (2.9.0.post0)
Requirement already satisfied: ovos-lingua-franca~=0.4.8a1 in /usr/local/lib/python3.10/site-packages (from skill-easter-eggs) (0.4.8a13)
Requirement already satisfied: ovos-utils>=0.0.38,~=0.0 in /usr/local/lib/python3.10/site-packages (from skill-easter-eggs) (0.8.1)
Requirement already satisfied: ovos-workshop>=0.0.15,~=0.0 in /usr/local/lib/python3.10/site-packages (from skill-easter-eggs) (0.1.7)
Collecting ovos-mark1-utils~=0.0.0a2
  Downloading ovos_mark1_utils-0.0.1-py3-none-any.whl (19 kB)
Requirement already satisfied: ovos-bus-client>=0.0.6,~=0.0 in /usr/local/lib/python3.10/site-packages (from skill-easter-eggs) (0.1.6)
Requirement already satisfied: pyee<12.0.0,>=8.1.0 in /usr/local/lib/python3.10/site-packages (from ovos-bus-client>=0.0.6,~=0.0->skill-easter-eggs) (11.1.1)
Requirement already satisfied: websocket-client>=0.54.0 in /usr/local/lib/python3.10/site-packages (from ovos-bus-client>=0.0.6,~=0.0->skill-easter-eggs) (1.8.0)
Requirement already satisfied: ovos-config<1.0.0,>=0.0.12 in /usr/local/lib/python3.10/site-packages (from ovos-bus-client>=0.0.6,~=0.0->skill-easter-eggs) (0.4.6)
Requirement already satisfied: orjson in /usr/local/lib/python3.10/site-packages (from ovos-bus-client>=0.0.6,~=0.0->skill-easter-eggs) (3.11.3)
Requirement already satisfied: webcolors in /usr/local/lib/python3.10/site-packages (from ovos-lingua-franca~=0.4.8a1->skill-easter-eggs) (24.11.1)
Requirement already satisfied: colour~=0.1 in /usr/local/lib/python3.10/site-packages (from ovos-lingua-franca~=0.4.8a1->skill-easter-eggs) (0.1.5)
Requirement already satisfied: rapidfuzz in /usr/local/lib/python3.10/site-packages (from ovos-lingua-franca~=0.4.8a1->skill-easter-eggs) (3.14.0)
Requirement already satisfied: quebra-frases>=0.3.7 in /usr/local/lib/python3.10/site-packages (from ovos-lingua-franca~=0.4.8a1->skill-easter-eggs) (0.3.7)
Requirement already satisfied: requests~=2.26 in /usr/local/lib/python3.10/site-packages (from ovos-utils>=0.0.38,~=0.0->skill-easter-eggs) (2.32.5)
Requirement already satisfied: combo-lock~=0.2 in /usr/local/lib/python3.10/site-packages (from ovos-utils>=0.0.38,~=0.0->skill-easter-eggs) (0.2.6)
Requirement already satisfied: json-database~=0.10 in /usr/local/lib/python3.10/site-packages (from ovos-utils>=0.0.38,~=0.0->skill-easter-eggs) (0.10.1)
Requirement already satisfied: rich~=13.7 in /usr/local/lib/python3.10/site-packages (from ovos-utils>=0.0.38,~=0.0->skill-easter-eggs) (13.9.4)
Requirement already satisfied: rich-click~=1.7 in /usr/local/lib/python3.10/site-packages (from ovos-utils>=0.0.38,~=0.0->skill-easter-eggs) (1.8.9)
Requirement already satisfied: pexpect~=4.9 in /usr/local/lib/python3.10/site-packages (from ovos-utils>=0.0.38,~=0.0->skill-easter-eggs) (4.9.0)
Requirement already satisfied: watchdog in /usr/local/lib/python3.10/site-packages (from ovos-utils>=0.0.38,~=0.0->skill-easter-eggs) (2.3.1)
Requirement already satisfied: kthread~=0.2 in /usr/local/lib/python3.10/site-packages (from ovos-utils>=0.0.38,~=0.0->skill-easter-eggs) (0.2.3)
Requirement already satisfied: padacioso in /usr/local/lib/python3.10/site-packages (from ovos-workshop>=0.0.15,~=0.0->skill-easter-eggs) (0.2.4)
Requirement already satisfied: ovos-backend-client<2.0.0,>=0.1.0 in /usr/local/lib/python3.10/site-packages (from ovos-workshop>=0.0.15,~=0.0->skill-easter-eggs) (1.0.1)
Requirement already satisfied: langcodes in /usr/local/lib/python3.10/site-packages (from ovos-workshop>=0.0.15,~=0.0->skill-easter-eggs) (3.3.0)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/site-packages (from python-dateutil~=2.9.0->skill-easter-eggs) (1.17.0)
Requirement already satisfied: filelock~=3.0 in /usr/local/lib/python3.10/site-packages (from combo-lock~=0.2->ovos-utils>=0.0.38,~=0.0->skill-easter-eggs) (3.19.1)
Requirement already satisfied: memory-tempfile in /usr/local/lib/python3.10/site-packages (from combo-lock~=0.2->ovos-utils>=0.0.38,~=0.0->skill-easter-eggs) (2.2.3)
Requirement already satisfied: oauthlib~=3.2 in /usr/local/lib/python3.10/site-packages (from ovos-backend-client<2.0.0,>=0.1.0->ovos-workshop>=0.0.15,~=0.0->skill-easter-eggs) (3.3.1)
Requirement already satisfied: PyYAML<7.0.0,>=5.4.0 in /usr/local/lib/python3.10/site-packages (from ovos-config<1.0.0,>=0.0.12->ovos-bus-client>=0.0.6,~=0.0->skill-easter-eggs) (6.0.2)
Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.10/site-packages (from pexpect~=4.9->ovos-utils>=0.0.38,~=0.0->skill-easter-eggs) (0.7.0)
Requirement already satisfied: typing-extensions in /usr/local/lib/python3.10/site-packages (from pyee<12.0.0,>=8.1.0->ovos-bus-client>=0.0.6,~=0.0->skill-easter-eggs) (4.15.0)
Requirement already satisfied: regex in /usr/local/lib/python3.10/site-packages (from quebra-frases>=0.3.7->ovos-lingua-franca~=0.4.8a1->skill-easter-eggs) (2025.7.34)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/site-packages (from requests~=2.26->ovos-utils>=0.0.38,~=0.0->skill-easter-eggs) (3.10)
Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/site-packages (from requests~=2.26->ovos-utils>=0.0.38,~=0.0->skill-easter-eggs) (2.5.0)
Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib/python3.10/site-packages (from requests~=2.26->ovos-utils>=0.0.38,~=0.0->skill-easter-eggs) (3.4.3)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/site-packages (from requests~=2.26->ovos-utils>=0.0.38,~=0.0->skill-easter-eggs) (2025.8.3)
Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/site-packages (from rich~=13.7->ovos-utils>=0.0.38,~=0.0->skill-easter-eggs) (4.0.0)
Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/site-packages (from rich~=13.7->ovos-utils>=0.0.38,~=0.0->skill-easter-eggs) (2.19.2)
Requirement already satisfied: click>=7 in /usr/local/lib/python3.10/site-packages (from rich-click~=1.7->ovos-utils>=0.0.38,~=0.0->skill-easter-eggs) (8.2.1)
Requirement already satisfied: simplematch in /usr/local/lib/python3.10/site-packages (from padacioso->ovos-workshop>=0.0.15,~=0.0->skill-easter-eggs) (1.4)
Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/site-packages (from markdown-it-py>=2.2.0->rich~=13.7->ovos-utils>=0.0.38,~=0.0->skill-easter-eggs) (0.1.2)
Installing collected packages: ovos-mark1-utils, skill-easter-eggs
Successfully installed ovos-mark1-utils-0.0.1 skill-easter-eggs-1.0.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

[notice] A new release of pip is available: 23.0.1 -> 25.2
[notice] To update, run: pip install --upgrade pip
2025-08-30 22:44:16.604 - neon-utils - neon_core.util.skill_utils:_install_skill_pip:85 - INFO - pip status: 0
2025-08-30 22:44:16.605 - neon-utils - neon_core.util.skill_utils:_install_skill_pip:78 - INFO - Requested installation of plugin skill: skill-homeassistant
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Collecting skill-homeassistant
  Downloading skill_homeassistant-0.5.1-py3-none-any.whl (42 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42.9/42.9 kB 999.6 kB/s eta 0:00:00
Requirement already satisfied: ovos-bus-client>=0.0.8 in /usr/local/lib/python3.10/site-packages (from skill-homeassistant) (0.1.6)
Requirement already satisfied: webcolors<25.0.0,>=24.11.1 in /usr/local/lib/python3.10/site-packages (from skill-homeassistant) (24.11.1)
Collecting nested-lookup<1.0,>=0.2
  Downloading nested-lookup-0.2.25.tar.gz (14 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Requirement already satisfied: ovos-utils>=0.0.27 in /usr/local/lib/python3.10/site-packages (from skill-homeassistant) (0.8.1)
Requirement already satisfied: ovos-config>=0.0.5 in /usr/local/lib/python3.10/site-packages (from skill-homeassistant) (0.4.6)
Requirement already satisfied: ovos-workshop>=0.0.15 in /usr/local/lib/python3.10/site-packages (from skill-homeassistant) (0.1.7)
Collecting skill-homeassistant
  Downloading skill_homeassistant-0.5.0-py3-none-any.whl (42 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42.9/42.9 kB 2.2 MB/s eta 0:00:00
  Downloading skill_homeassistant-0.4.0-py3-none-any.whl (42 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42.6/42.6 kB 8.7 MB/s eta 0:00:00
  Downloading skill_homeassistant-0.3.0-py3-none-any.whl (31 kB)
  Downloading skill_homeassistant-0.2.0-py3-none-any.whl (32 kB)
  Downloading skill_homeassistant-0.1.1-py3-none-any.whl (32 kB)
  Downloading skill_homeassistant-0.1.0-py3-none-any.whl (32 kB)
ERROR: Cannot install skill-homeassistant==0.1.0, skill-homeassistant==0.1.1, skill-homeassistant==0.2.0, skill-homeassistant==0.3.0, skill-homeassistant==0.4.0, skill-homeassistant==0.5.0 and skill-homeassistant==0.5.1 because these package versions have conflicting dependencies.

The conflict is caused by:
    skill-homeassistant 0.5.1 depends on ovos-plugin-manager>=0.0.23
    skill-homeassistant 0.5.0 depends on ovos-plugin-manager>=0.0.23
    skill-homeassistant 0.4.0 depends on ovos-plugin-manager>=0.0.23
    skill-homeassistant 0.3.0 depends on ovos-plugin-manager>=0.0.23
    skill-homeassistant 0.2.0 depends on ovos-plugin-manager>=0.0.23
    skill-homeassistant 0.1.1 depends on ovos-plugin-manager>=0.0.23
    skill-homeassistant 0.1.0 depends on ovos-plugin-manager>=0.0.23
    The user requested (constraint) ovos-plugin-manager<1.0.0,>0.0.21,>=0.0.17,>=0.0.18,>=0.0.23,>=0.0.25,>=0.0.26,>=0.0.26a38,>=0.0.5,~=0.0,~=0.0.18

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

[notice] A new release of pip is available: 23.0.1 -> 25.2
[notice] To update, run: pip install --upgrade pip
2025-08-30 22:44:18.728 - neon-utils - neon_core.util.skill_utils:_install_skill_pip:85 - INFO - pip status: 1
2025-08-30 22:44:18.729 - neon-utils - neon_core.util.skill_utils:install_skills_from_list:102 - ERROR - Pip installation failed for: skill-homeassistant
2025-08-30 22:44:18.730 - neon-utils - neon_core.util.skill_utils:_install_skill_pip:78 - INFO - Requested installation of plugin skill: skill-monster-scanner
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Collecting skill-monster-scanner
  Downloading skill_monster_scanner-1.0.1-py3-none-any.whl (9.2 kB)
Requirement already satisfied: ovos-workshop in /usr/local/lib/python3.10/site-packages (from skill-monster-scanner) (0.1.7)
  Downloading skill_monster_scanner-1.0.0-py3-none-any.whl (9.2 kB)
ERROR: Cannot install skill-monster-scanner==1.0.0 and skill-monster-scanner==1.0.1 because these package versions have conflicting dependencies.

The conflict is caused by:
    skill-monster-scanner 1.0.1 depends on ovos-plugin-manager
    skill-monster-scanner 1.0.0 depends on ovos-plugin-manager
    The user requested (constraint) ovos-plugin-manager<1.0.0,>0.0.21,>=0.0.17,>=0.0.18,>=0.0.23,>=0.0.25,>=0.0.26,>=0.0.26a38,>=0.0.5,~=0.0,~=0.0.18

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

[notice] A new release of pip is available: 23.0.1 -> 25.2
[notice] To update, run: pip install --upgrade pip
2025-08-30 22:44:19.648 - neon-utils - neon_core.util.skill_utils:_install_skill_pip:85 - INFO - pip status: 1
2025-08-30 22:44:19.648 - neon-utils - neon_core.util.skill_utils:install_skills_from_list:102 - ERROR - Pip installation failed for: skill-monster-scanner
2025-08-30 22:44:19.649 - neon-utils - neon_core.util.skill_utils:_install_skill_pip:78 - INFO - Requested installation of plugin skill: ovos-skill-icanhazdadjokes
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Requirement already satisfied: ovos-skill-icanhazdadjokes in /usr/local/lib/python3.10/site-packages (0.3.7)
Requirement already satisfied: ovos-workshop<8.0.0,>=0.0.15 in /usr/local/lib/python3.10/site-packages (from ovos-skill-icanhazdadjokes) (0.1.7)
Requirement already satisfied: ovos-utils<1.0.0,>=0.0.38 in /usr/local/lib/python3.10/site-packages (from ovos-skill-icanhazdadjokes) (0.8.1)
Requirement already satisfied: requests~=2.26 in /usr/local/lib/python3.10/site-packages (from ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (2.32.5)
Requirement already satisfied: combo-lock~=0.2 in /usr/local/lib/python3.10/site-packages (from ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (0.2.6)
Requirement already satisfied: json-database~=0.10 in /usr/local/lib/python3.10/site-packages (from ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (0.10.1)
Requirement already satisfied: rich~=13.7 in /usr/local/lib/python3.10/site-packages (from ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (13.9.4)
Requirement already satisfied: orjson in /usr/local/lib/python3.10/site-packages (from ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (3.11.3)
Requirement already satisfied: pyee>=8.0.0 in /usr/local/lib/python3.10/site-packages (from ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (11.1.1)
Requirement already satisfied: rich-click~=1.7 in /usr/local/lib/python3.10/site-packages (from ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (1.8.9)
Requirement already satisfied: pexpect~=4.9 in /usr/local/lib/python3.10/site-packages (from ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (4.9.0)
Requirement already satisfied: watchdog in /usr/local/lib/python3.10/site-packages (from ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (2.3.1)
Requirement already satisfied: kthread~=0.2 in /usr/local/lib/python3.10/site-packages (from ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (0.2.3)
Requirement already satisfied: padacioso in /usr/local/lib/python3.10/site-packages (from ovos-workshop<8.0.0,>=0.0.15->ovos-skill-icanhazdadjokes) (0.2.4)
Requirement already satisfied: ovos-lingua-franca<1.0.0,>=0.4.6 in /usr/local/lib/python3.10/site-packages (from ovos-workshop<8.0.0,>=0.0.15->ovos-skill-icanhazdadjokes) (0.4.8a13)
Requirement already satisfied: ovos-backend-client<2.0.0,>=0.1.0 in /usr/local/lib/python3.10/site-packages (from ovos-workshop<8.0.0,>=0.0.15->ovos-skill-icanhazdadjokes) (1.0.1)
Requirement already satisfied: rapidfuzz in /usr/local/lib/python3.10/site-packages (from ovos-workshop<8.0.0,>=0.0.15->ovos-skill-icanhazdadjokes) (3.14.0)
Requirement already satisfied: langcodes in /usr/local/lib/python3.10/site-packages (from ovos-workshop<8.0.0,>=0.0.15->ovos-skill-icanhazdadjokes) (3.3.0)
Requirement already satisfied: ovos-config<1.0.0,>=0.0.12 in /usr/local/lib/python3.10/site-packages (from ovos-workshop<8.0.0,>=0.0.15->ovos-skill-icanhazdadjokes) (0.4.6)
Requirement already satisfied: ovos-bus-client<1.0.0,>=0.0.8 in /usr/local/lib/python3.10/site-packages (from ovos-workshop<8.0.0,>=0.0.15->ovos-skill-icanhazdadjokes) (0.1.6)
Requirement already satisfied: filelock~=3.0 in /usr/local/lib/python3.10/site-packages (from combo-lock~=0.2->ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (3.19.1)
Requirement already satisfied: memory-tempfile in /usr/local/lib/python3.10/site-packages (from combo-lock~=0.2->ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (2.2.3)
Requirement already satisfied: oauthlib~=3.2 in /usr/local/lib/python3.10/site-packages (from ovos-backend-client<2.0.0,>=0.1.0->ovos-workshop<8.0.0,>=0.0.15->ovos-skill-icanhazdadjokes) (3.3.1)
Requirement already satisfied: websocket-client>=0.54.0 in /usr/local/lib/python3.10/site-packages (from ovos-bus-client<1.0.0,>=0.0.8->ovos-workshop<8.0.0,>=0.0.15->ovos-skill-icanhazdadjokes) (1.8.0)
Requirement already satisfied: python-dateutil~=2.9 in /usr/local/lib/python3.10/site-packages (from ovos-config<1.0.0,>=0.0.12->ovos-workshop<8.0.0,>=0.0.15->ovos-skill-icanhazdadjokes) (2.9.0.post0)
Requirement already satisfied: PyYAML<7.0.0,>=5.4.0 in /usr/local/lib/python3.10/site-packages (from ovos-config<1.0.0,>=0.0.12->ovos-workshop<8.0.0,>=0.0.15->ovos-skill-icanhazdadjokes) (6.0.2)
Requirement already satisfied: webcolors in /usr/local/lib/python3.10/site-packages (from ovos-lingua-franca<1.0.0,>=0.4.6->ovos-workshop<8.0.0,>=0.0.15->ovos-skill-icanhazdadjokes) (24.11.1)
Requirement already satisfied: colour~=0.1 in /usr/local/lib/python3.10/site-packages (from ovos-lingua-franca<1.0.0,>=0.4.6->ovos-workshop<8.0.0,>=0.0.15->ovos-skill-icanhazdadjokes) (0.1.5)
Requirement already satisfied: quebra-frases>=0.3.7 in /usr/local/lib/python3.10/site-packages (from ovos-lingua-franca<1.0.0,>=0.4.6->ovos-workshop<8.0.0,>=0.0.15->ovos-skill-icanhazdadjokes) (0.3.7)
Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.10/site-packages (from pexpect~=4.9->ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (0.7.0)
Requirement already satisfied: typing-extensions in /usr/local/lib/python3.10/site-packages (from pyee>=8.0.0->ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (4.15.0)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/site-packages (from requests~=2.26->ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (3.10)
Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/site-packages (from requests~=2.26->ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (2.5.0)
Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib/python3.10/site-packages (from requests~=2.26->ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (3.4.3)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/site-packages (from requests~=2.26->ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (2025.8.3)
Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/site-packages (from rich~=13.7->ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (4.0.0)
Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/site-packages (from rich~=13.7->ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (2.19.2)
Requirement already satisfied: click>=7 in /usr/local/lib/python3.10/site-packages (from rich-click~=1.7->ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (8.2.1)
Requirement already satisfied: simplematch in /usr/local/lib/python3.10/site-packages (from padacioso->ovos-workshop<8.0.0,>=0.0.15->ovos-skill-icanhazdadjokes) (1.4)
Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/site-packages (from markdown-it-py>=2.2.0->rich~=13.7->ovos-utils<1.0.0,>=0.0.38->ovos-skill-icanhazdadjokes) (0.1.2)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/site-packages (from python-dateutil~=2.9->ovos-config<1.0.0,>=0.0.12->ovos-workshop<8.0.0,>=0.0.15->ovos-skill-icanhazdadjokes) (1.17.0)
Requirement already satisfied: regex in /usr/local/lib/python3.10/site-packages (from quebra-frases>=0.3.7->ovos-lingua-franca<1.0.0,>=0.4.6->ovos-workshop<8.0.0,>=0.0.15->ovos-skill-icanhazdadjokes) (2025.7.34)
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

[notice] A new release of pip is available: 23.0.1 -> 25.2
[notice] To update, run: pip install --upgrade pip
2025-08-30 22:44:19.859 - neon-utils - neon_core.util.skill_utils:_install_skill_pip:85 - INFO - pip status: 0
2025-08-30 22:44:19.860 - neon-utils - neon_core.util.skill_utils:_install_skill_pip:78 - INFO - Requested installation of plugin skill: ovos-skill-randomness==0.1.0
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
ERROR: Could not find a version that satisfies the requirement ovos-skill-randomness==0.1.0 (from versions: 0.0.3a1, 0.1.0a1, 0.1.1a1, 0.1.1, 0.1.2a1, 0.1.2)
ERROR: No matching distribution found for ovos-skill-randomness==0.1.0

[notice] A new release of pip is available: 23.0.1 -> 25.2
[notice] To update, run: pip install --upgrade pip
2025-08-30 22:44:20.097 - neon-utils - neon_core.util.skill_utils:_install_skill_pip:85 - INFO - pip status: 1
2025-08-30 22:44:20.097 - neon-utils - neon_core.util.skill_utils:install_skills_from_list:102 - ERROR - Pip installation failed for: ovos-skill-randomness==0.1.0
2025-08-30 22:44:20.098 - neon-utils - neon_core.util.skill_utils:_install_skill_pip:78 - INFO - Requested installation of plugin skill: git+https://github.com/oscillatelabsllc/skill-musicassistant
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Collecting git+https://github.com/oscillatelabsllc/skill-musicassistant
  Cloning https://github.com/oscillatelabsllc/skill-musicassistant to /tmp/pip-req-build-7wmw6y8n
  Running command git clone --filter=blob:none --quiet https://github.com/oscillatelabsllc/skill-musicassistant /tmp/pip-req-build-7wmw6y8n
  Resolved https://github.com/oscillatelabsllc/skill-musicassistant to commit afded7e37b4d3e3a27796f4a5b02bb8d3226df4f
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'done'
Requirement already satisfied: requests in /usr/local/lib/python3.10/site-packages (from skill-musicassistant==1.0.0) (2.32.5)
ERROR: Ignored the following versions that require a different python version: 1.0.0 Requires-Python >=3.11; 1.0.1 Requires-Python >=3.11; 1.0.2 Requires-Python >=3.11; 1.0.3 Requires-Python >=3.11; 1.1.0 Requires-Python >=3.11; 1.1.1 Requires-Python >=3.11; 1.1.10 Requires-Python >=3.11; 1.1.11 Requires-Python >=3.11; 1.1.12 Requires-Python >=3.11; 1.1.13 Requires-Python >=3.11; 1.1.14 Requires-Python >=3.11; 1.1.15 Requires-Python >=3.11; 1.1.16 Requires-Python >=3.11; 1.1.17 Requires-Python >=3.11; 1.1.18 Requires-Python >=3.11; 1.1.19 Requires-Python >=3.11; 1.1.2 Requires-Python >=3.11; 1.1.20 Requires-Python >=3.11; 1.1.21 Requires-Python >=3.11; 1.1.22 Requires-Python >=3.11; 1.1.23 Requires-Python >=3.11; 1.1.24 Requires-Python >=3.11; 1.1.25 Requires-Python >=3.11; 1.1.26 Requires-Python >=3.11; 1.1.27 Requires-Python >=3.11; 1.1.28 Requires-Python >=3.11; 1.1.29 Requires-Python >=3.11; 1.1.3 Requires-Python >=3.11; 1.1.30 Requires-Python >=3.11; 1.1.31 Requires-Python >=3.11; 1.1.32 Requires-Python >=3.11; 1.1.33 Requires-Python >=3.11; 1.1.34 Requires-Python >=3.11; 1.1.35 Requires-Python >=3.11; 1.1.36 Requires-Python >=3.11; 1.1.37 Requires-Python >=3.11; 1.1.38 Requires-Python >=3.11; 1.1.39 Requires-Python >=3.11; 1.1.4 Requires-Python >=3.11; 1.1.40 Requires-Python >=3.11; 1.1.41 Requires-Python >=3.11; 1.1.42 Requires-Python >=3.11; 1.1.43 Requires-Python >=3.11; 1.1.44 Requires-Python >=3.11; 1.1.45 Requires-Python >=3.11; 1.1.46 Requires-Python >=3.11; 1.1.47 Requires-Python >=3.11; 1.1.48 Requires-Python >=3.11; 1.1.49 Requires-Python >=3.11; 1.1.5 Requires-Python >=3.11; 1.1.50 Requires-Python >=3.11; 1.1.51 Requires-Python >=3.11; 1.1.52 Requires-Python >=3.11; 1.1.53 Requires-Python >=3.11; 1.1.6 Requires-Python >=3.11; 1.1.7 Requires-Python >=3.11; 1.1.8 Requires-Python >=3.11; 1.1.9 Requires-Python >=3.11
ERROR: Could not find a version that satisfies the requirement music-assistant-models (from skill-musicassistant) (from versions: none)
ERROR: No matching distribution found for music-assistant-models

[notice] A new release of pip is available: 23.0.1 -> 25.2
[notice] To update, run: pip install --upgrade pip
2025-08-30 22:44:23.629 - neon-utils - neon_core.util.skill_utils:_install_skill_pip:85 - INFO - pip status: 1
2025-08-30 22:44:23.630 - neon-utils - neon_core.util.skill_utils:install_skills_from_list:102 - ERROR - Pip installation failed for: git+https://github.com/oscillatelabsllc/skill-musicassistant
2025-08-30 22:44:23.630 - neon-utils - neon_core.util.skill_utils:install_skills_from_list:104 - INFO - Installed 6 skills

I guess it's not breaking so much as "this should have been failing all along," but it does mean I have a lot of skills to try to update to make them happy with Neon :/

@NeonDaniel

Copy link
Copy Markdown
Member Author
ERROR: Cannot install skill-homeassistant==0.1.0, skill-homeassistant==0.1.1, skill-homeassistant==0.2.0, skill-homeassistant==0.3.0, skill-homeassistant==0.4.0, skill-homeassistant==0.5.0 and skill-homeassistant==0.5.1 because these package versions have conflicting dependencies.

The conflict is caused by:
   skill-homeassistant 0.5.1 depends on ovos-plugin-manager>=0.0.23
   skill-homeassistant 0.5.0 depends on ovos-plugin-manager>=0.0.23
   skill-homeassistant 0.4.0 depends on ovos-plugin-manager>=0.0.23
   skill-homeassistant 0.3.0 depends on ovos-plugin-manager>=0.0.23
   skill-homeassistant 0.2.0 depends on ovos-plugin-manager>=0.0.23
   skill-homeassistant 0.1.1 depends on ovos-plugin-manager>=0.0.23
   skill-homeassistant 0.1.0 depends on ovos-plugin-manager>=0.0.23
   The user requested (constraint) ovos-plugin-manager<1.0.0,>0.0.21,>=0.0.17,>=0.0.18,>=0.0.23,>=0.0.25,>=0.0.26,>=0.0.26a38,>=0.0.5,~=0.0,~=0.0.18

This error is strange as the constraint does allow for >=0.0.23; I do see something requesting ~=0.0.18 which is probably more restrictive than necessary, but I don't see how this one failed.

ERROR: Cannot install skill-monster-scanner==1.0.0 and skill-monster-scanner==1.0.1 because these package versions have conflicting dependencies.


The conflict is caused by:
    skill-monster-scanner 1.0.1 depends on ovos-plugin-manager
    skill-monster-scanner 1.0.0 depends on ovos-plugin-manager
    The user requested (constraint) ovos-plugin-manager<1.0.0,>0.0.21,>=0.0.17,>=0.0.18,>=0.0.23,>=0.0.25,>=0.0.26,>=0.0.26a38,>=0.0.5,~=0.0,~=0.0.18

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

Similar to above, the actual dependency should be installed already and this skill is not adding any further constraint.

ERROR: Ignored the following versions that require a different python version: 1.0.0 Requires-Python >=3.11; 1.0.1 Requires-Python >=3.11; 1.0.2 Requires-Python >=3.11; 1.0.3 Requires-Python >=3.11; 1.1.0 Requires-Python >=3.11; 1.1.1 Requires-Python >=3.11; 1.1.10 Requires-Python >=3.11; 1.1.11 Requires-Python >=3.11; 1.1.12 Requires-Python >=3.11; 1.1.13 Requires-Python >=3.11; 1.1.14 Requires-Python >=3.11; 1.1.15 Requires-Python >=3.11; 1.1.16 Requires-Python >=3.11; 1.1.17 Requires-Python >=3.11; 1.1.18 Requires-Python >=3.11; 1.1.19 Requires-Python >=3.11; 1.1.2 Requires-Python >=3.11; 1.1.20 Requires-Python >=3.11; 1.1.21 Requires-Python >=3.11; 1.1.22 Requires-Python >=3.11; 1.1.23 Requires-Python >=3.11; 1.1.24 Requires-Python >=3.11; 1.1.25 Requires-Python >=3.11; 1.1.26 Requires-Python >=3.11; 1.1.27 Requires-Python >=3.11; 1.1.28 Requires-Python >=3.11; 1.1.29 Requires-Python >=3.11; 1.1.3 Requires-Python >=3.11; 1.1.30 Requires-Python >=3.11; 1.1.31 Requires-Python >=3.11; 1.1.32 Requires-Python >=3.11; 1.1.33 Requires-Python >=3.11; 1.1.34 Requires-Python >=3.11; 1.1.35 Requires-Python >=3.11; 1.1.36 Requires-Python >=3.11; 1.1.37 Requires-Python >=3.11; 1.1.38 Requires-Python >=3.11; 1.1.39 Requires-Python >=3.11; 1.1.4 Requires-Python >=3.11; 1.1.40 Requires-Python >=3.11; 1.1.41 Requires-Python >=3.11; 1.1.42 Requires-Python >=3.11; 1.1.43 Requires-Python >=3.11; 1.1.44 Requires-Python >=3.11; 1.1.45 Requires-Python >=3.11; 1.1.46 Requires-Python >=3.11; 1.1.47 Requires-Python >=3.11; 1.1.48 Requires-Python >=3.11; 1.1.49 Requires-Python >=3.11; 1.1.5 Requires-Python >=3.11; 1.1.50 Requires-Python >=3.11; 1.1.51 Requires-Python >=3.11; 1.1.52 Requires-Python >=3.11; 1.1.53 Requires-Python >=3.11; 1.1.6 Requires-Python >=3.11; 1.1.7 Requires-Python >=3.11; 1.1.8 Requires-Python >=3.11; 1.1.9 Requires-Python >=3.11
ERROR: Could not find a version that satisfies the requirement music-assistant-models (from skill-musicassistant) (from versions: none)
ERROR: No matching distribution found for music-assistant-models

This failure looks correct; containers are build from Python 3.10, so this 3.11 requirement "should" fail.

@NeonDaniel
NeonDaniel marked this pull request as draft September 2, 2025 18:17
@NeonDaniel

Copy link
Copy Markdown
Member Author

@mikejgray I built a new alpha container and tested with the config you shared earlier and everything appears to work. Would you be able to pull and confirm the issue you reported here earlier is resolved?

@NeonDaniel
NeonDaniel marked this pull request as ready for review September 11, 2025 23:20
@NeonDaniel
NeonDaniel merged commit 668420f into dev Sep 12, 2025
25 of 31 checks passed
@NeonDaniel
NeonDaniel deleted the FIX_Python3_12Compat branch September 12, 2025 16:37
@github-actions github-actions Bot mentioned this pull request Sep 12, 2025
NeonDaniel added a commit that referenced this pull request Sep 15, 2025
# Changelog

## [1.13.1a8](https://github.com/NeonGeckoCom/neon-utils/tree/1.13.1a8)
(2025-09-12)

[Full
Changelog](1.13.1a7...1.13.1a8)

**Merged pull requests:**

- Add function to get installed prerelease packages
[\#517](#517)
([NeonDaniel](https://github.com/NeonDaniel))

## [1.13.1a7](https://github.com/NeonGeckoCom/neon-utils/tree/1.13.1a7)
(2025-09-12)

[Full
Changelog](1.13.1a6...1.13.1a7)

**Implemented enhancements:**

- \[FEAT\] Allow self-signed certificates in hana-utils
[\#536](#536)
- \[FEAT\] Docker handling of status hooks
[\#498](#498)

**Merged pull requests:**

- Refactor to remove use of deprecated `pkg_resources` module
[\#555](#555)
([NeonDaniel](https://github.com/NeonDaniel))

## [1.13.1a6](https://github.com/NeonGeckoCom/neon-utils/tree/1.13.1a6)
(2025-09-12)

[Full
Changelog](1.13.1a5...1.13.1a6)

**Merged pull requests:**

- Add support for authenticated HANA
[\#537](#537)
([NeonDaniel](https://github.com/NeonDaniel))

## [1.13.1a5](https://github.com/NeonGeckoCom/neon-utils/tree/1.13.1a5)
(2025-09-12)

[Full
Changelog](1.13.1a4...1.13.1a5)

**Merged pull requests:**

- Refactor log aggregators init
[\#560](#560)
([NeonDaniel](https://github.com/NeonDaniel))

## [1.13.1a4](https://github.com/NeonGeckoCom/neon-utils/tree/1.13.1a4)
(2025-09-11)

[Full
Changelog](1.13.1a3...1.13.1a4)

**Merged pull requests:**

- Update pip package installation method
[\#556](#556)
([NeonDaniel](https://github.com/NeonDaniel))

## [1.13.1a3](https://github.com/NeonGeckoCom/neon-utils/tree/1.13.1a3)
(2025-09-10)

[Full
Changelog](1.13.1a2...1.13.1a3)

**Implemented enhancements:**

- \[FEAT\] Deprecate ovos-core dependency
[\#469](#469)

**Merged pull requests:**

- Remove ovos-core test dependency
[\#557](#557)
([NeonDaniel](https://github.com/NeonDaniel))

## [1.13.1a2](https://github.com/NeonGeckoCom/neon-utils/tree/1.13.1a2)
(2025-09-10)

[Full
Changelog](1.13.1a1...1.13.1a2)

**Merged pull requests:**

- Improve Skill metadata parsing support and remove OSM dependency
[\#558](#558)
([NeonDaniel](https://github.com/NeonDaniel))

## [1.13.1a1](https://github.com/NeonGeckoCom/neon-utils/tree/1.13.1a1)
(2025-08-27)

[Full
Changelog](1.13.0...1.13.1a1)

**Merged pull requests:**

- Update Skill API to support outside applications
[\#554](#554)
([NeonDaniel](https://github.com/NeonDaniel))



\* *This Changelog was automatically generated by
[github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
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