Skip to content

Commit fccf41c

Browse files
authored
1.7.0 (#192)
2 parents c927ec5 + ee354d5 commit fccf41c

12 files changed

Lines changed: 246 additions & 222 deletions

File tree

.github/workflows/unit_tests.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ jobs:
1414
uses: neongeckocom/.github/.github/workflows/docker_build_tests.yml@master
1515
with:
1616
platforms: linux/amd64,linux/arm64
17+
build_timeout: 120
1718
unit_tests:
1819
timeout-minutes: 15
1920
strategy:

CHANGELOG.md

Lines changed: 12 additions & 148 deletions
Original file line numberDiff line numberDiff line change
@@ -1,172 +1,36 @@
11
# Changelog
22

3-
## [1.5.2a19](https://github.com/NeonGeckoCom/neon_audio/tree/1.5.2a19) (2025-03-19)
3+
## [1.6.1a4](https://github.com/NeonGeckoCom/neon_audio/tree/1.6.1a4) (2025-09-12)
44

5-
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.5.2a18...1.5.2a19)
5+
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.6.1a3...1.6.1a4)
66

77
**Merged pull requests:**
88

9-
- Update log and dependencies for stable release [\#186](https://github.com/NeonGeckoCom/neon_audio/pull/186) ([NeonDaniel](https://github.com/NeonDaniel))
9+
- Skip `module` installation when any dependency spec is configured [\#190](https://github.com/NeonGeckoCom/neon_audio/pull/190) ([NeonDaniel](https://github.com/NeonDaniel))
1010

11-
## [1.5.2a18](https://github.com/NeonGeckoCom/neon_audio/tree/1.5.2a18) (2025-03-19)
11+
## [1.6.1a3](https://github.com/NeonGeckoCom/neon_audio/tree/1.6.1a3) (2025-09-12)
1212

13-
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.5.2a17...1.5.2a18)
14-
15-
**Fixed bugs:**
16-
17-
- \[BUG\] tts-plugin module not matching pypi name causes failure to load [\#167](https://github.com/NeonGeckoCom/neon_audio/issues/167)
18-
19-
**Merged pull requests:**
20-
21-
- Update `run` entrypoint to account for deprecated methods [\#185](https://github.com/NeonGeckoCom/neon_audio/pull/185) ([NeonDaniel](https://github.com/NeonDaniel))
22-
23-
## [1.5.2a17](https://github.com/NeonGeckoCom/neon_audio/tree/1.5.2a17) (2025-03-18)
24-
25-
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.5.2a16...1.5.2a17)
26-
27-
**Merged pull requests:**
28-
29-
- Resolve logged warning at init [\#184](https://github.com/NeonGeckoCom/neon_audio/pull/184) ([NeonDaniel](https://github.com/NeonDaniel))
30-
31-
## [1.5.2a16](https://github.com/NeonGeckoCom/neon_audio/tree/1.5.2a16) (2025-03-18)
32-
33-
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.5.2a15...1.5.2a16)
34-
35-
**Merged pull requests:**
36-
37-
- Update GHA and requirements [\#183](https://github.com/NeonGeckoCom/neon_audio/pull/183) ([NeonDaniel](https://github.com/NeonDaniel))
38-
39-
## [1.5.2a15](https://github.com/NeonGeckoCom/neon_audio/tree/1.5.2a15) (2025-03-11)
40-
41-
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.5.2a14...1.5.2a15)
42-
43-
**Merged pull requests:**
44-
45-
- Update gitignore [\#182](https://github.com/NeonGeckoCom/neon_audio/pull/182) ([NeonDaniel](https://github.com/NeonDaniel))
46-
47-
## [1.5.2a14](https://github.com/NeonGeckoCom/neon_audio/tree/1.5.2a14) (2025-03-11)
48-
49-
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.5.2a13...1.5.2a14)
50-
51-
**Merged pull requests:**
52-
53-
- Update Docker config, dependencies [\#181](https://github.com/NeonGeckoCom/neon_audio/pull/181) ([NeonDaniel](https://github.com/NeonDaniel))
54-
55-
## [1.5.2a13](https://github.com/NeonGeckoCom/neon_audio/tree/1.5.2a13) (2025-02-12)
56-
57-
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.5.2a12...1.5.2a13)
58-
59-
**Merged pull requests:**
60-
61-
- Resolve PlaybackThread-related errors [\#180](https://github.com/NeonGeckoCom/neon_audio/pull/180) ([NeonDaniel](https://github.com/NeonDaniel))
62-
63-
## [1.5.2a12](https://github.com/NeonGeckoCom/neon_audio/tree/1.5.2a12) (2025-02-11)
64-
65-
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.5.2a11...1.5.2a12)
66-
67-
**Implemented enhancements:**
68-
69-
- \[FEAT\] Cleanup extra backwards-compat [\#153](https://github.com/NeonGeckoCom/neon_audio/issues/153)
70-
71-
**Merged pull requests:**
72-
73-
- Deprecate `PIDLock` usage and update Dockerfile to resolve warnings [\#179](https://github.com/NeonGeckoCom/neon_audio/pull/179) ([NeonDaniel](https://github.com/NeonDaniel))
74-
75-
## [1.5.2a11](https://github.com/NeonGeckoCom/neon_audio/tree/1.5.2a11) (2025-02-07)
76-
77-
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.5.2a10...1.5.2a11)
78-
79-
**Merged pull requests:**
80-
81-
- Update CLI configuration handling and unit tests [\#178](https://github.com/NeonGeckoCom/neon_audio/pull/178) ([NeonDaniel](https://github.com/NeonDaniel))
82-
83-
## [1.5.2a10](https://github.com/NeonGeckoCom/neon_audio/tree/1.5.2a10) (2024-09-16)
84-
85-
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.5.2a9...1.5.2a10)
86-
87-
**Merged pull requests:**
88-
89-
- Fix ovos-audio compat. [\#177](https://github.com/NeonGeckoCom/neon_audio/pull/177) ([NeonDaniel](https://github.com/NeonDaniel))
90-
91-
## [1.5.2a9](https://github.com/NeonGeckoCom/neon_audio/tree/1.5.2a9) (2024-09-13)
92-
93-
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.5.2a8...1.5.2a9)
94-
95-
**Merged pull requests:**
96-
97-
- Update requirements to allow latest OVOS packages [\#176](https://github.com/NeonGeckoCom/neon_audio/pull/176) ([NeonDaniel](https://github.com/NeonDaniel))
98-
99-
## [1.5.2a8](https://github.com/NeonGeckoCom/neon_audio/tree/1.5.2a8) (2024-09-12)
100-
101-
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.5.2a7...1.5.2a8)
102-
103-
**Merged pull requests:**
104-
105-
- Update to support latest ovos-audio and ovos-plugin-manager [\#175](https://github.com/NeonGeckoCom/neon_audio/pull/175) ([NeonDaniel](https://github.com/NeonDaniel))
106-
107-
## [1.5.2a7](https://github.com/NeonGeckoCom/neon_audio/tree/1.5.2a7) (2024-06-19)
108-
109-
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.5.2a6...1.5.2a7)
110-
111-
**Fixed bugs:**
112-
113-
- \[BUG\] Update license test automation trigger [\#128](https://github.com/NeonGeckoCom/neon_audio/issues/128)
114-
115-
**Merged pull requests:**
116-
117-
- Update license tests automation [\#174](https://github.com/NeonGeckoCom/neon_audio/pull/174) ([NeonDaniel](https://github.com/NeonDaniel))
118-
119-
## [1.5.2a6](https://github.com/NeonGeckoCom/neon_audio/tree/1.5.2a6) (2024-05-17)
120-
121-
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.5.2a5...1.5.2a6)
122-
123-
**Fixed bugs:**
124-
125-
- \[BUG\] Deprecated imports in ovos-utils 0.1.0 [\#170](https://github.com/NeonGeckoCom/neon_audio/issues/170)
126-
127-
**Merged pull requests:**
128-
129-
- Update dependencies to resolve OCP load error [\#173](https://github.com/NeonGeckoCom/neon_audio/pull/173) ([NeonDaniel](https://github.com/NeonDaniel))
130-
131-
## [1.5.2a5](https://github.com/NeonGeckoCom/neon_audio/tree/1.5.2a5) (2024-05-08)
132-
133-
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.5.2a4...1.5.2a5)
134-
135-
**Merged pull requests:**
136-
137-
- Update for latest ovos-audio compat. [\#172](https://github.com/NeonGeckoCom/neon_audio/pull/172) ([NeonDaniel](https://github.com/NeonDaniel))
138-
139-
## [1.5.2a4](https://github.com/NeonGeckoCom/neon_audio/tree/1.5.2a4) (2024-04-29)
140-
141-
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.5.2a3...1.5.2a4)
13+
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.6.1a2...1.6.1a3)
14214

14315
**Merged pull requests:**
14416

145-
- feat: slight refactor for ovos-utils 0.1.0 [\#171](https://github.com/NeonGeckoCom/neon_audio/pull/171) ([mikejgray](https://github.com/mikejgray))
17+
- Update automation and dependencies to prep for stable release [\#191](https://github.com/NeonGeckoCom/neon_audio/pull/191) ([NeonDaniel](https://github.com/NeonDaniel))
14618

147-
## [1.5.2a3](https://github.com/NeonGeckoCom/neon_audio/tree/1.5.2a3) (2024-04-25)
19+
## [1.6.1a2](https://github.com/NeonGeckoCom/neon_audio/tree/1.6.1a2) (2025-06-25)
14820

149-
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.5.2a2...1.5.2a3)
21+
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.6.1a1...1.6.1a2)
15022

15123
**Merged pull requests:**
15224

153-
- feat: allow ovos-utils 0.1.0 [\#169](https://github.com/NeonGeckoCom/neon_audio/pull/169) ([mikejgray](https://github.com/mikejgray))
25+
- Implement status server [\#189](https://github.com/NeonGeckoCom/neon_audio/pull/189) ([NeonDaniel](https://github.com/NeonDaniel))
15426

155-
## [1.5.2a2](https://github.com/NeonGeckoCom/neon_audio/tree/1.5.2a2) (2024-03-12)
27+
## [1.6.1a1](https://github.com/NeonGeckoCom/neon_audio/tree/1.6.1a1) (2025-04-09)
15628

157-
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.5.1...1.5.2a2)
29+
[Full Changelog](https://github.com/NeonGeckoCom/neon_audio/compare/1.6.0...1.6.1a1)
15830

15931
**Merged pull requests:**
16032

161-
- Update dependencies to validate ovos-audio [\#168](https://github.com/NeonGeckoCom/neon_audio/pull/168) ([NeonDaniel](https://github.com/NeonDaniel))
162-
- Patch OCP Stable Release Compatibility [\#166](https://github.com/NeonGeckoCom/neon_audio/pull/166) ([NeonDaniel](https://github.com/NeonDaniel))
163-
- 1.5.0 [\#160](https://github.com/NeonGeckoCom/neon_audio/pull/160) ([github-actions[bot]](https://github.com/apps/github-actions))
164-
- 1.4.0 [\#152](https://github.com/NeonGeckoCom/neon_audio/pull/152) ([github-actions[bot]](https://github.com/apps/github-actions))
165-
- 1.3.2 [\#127](https://github.com/NeonGeckoCom/neon_audio/pull/127) ([github-actions[bot]](https://github.com/apps/github-actions))
166-
- Shared Workflows, Docker Container Optimization [\#110](https://github.com/NeonGeckoCom/neon_audio/pull/110) ([github-actions[bot]](https://github.com/apps/github-actions))
167-
- Add speak API with updated Tests, Update OCP Support [\#102](https://github.com/NeonGeckoCom/neon_audio/pull/102) ([github-actions[bot]](https://github.com/apps/github-actions))
168-
- Update ovos-core dependency [\#97](https://github.com/NeonGeckoCom/neon_audio/pull/97) ([github-actions[bot]](https://github.com/apps/github-actions))
169-
- Language Support, Message Routing, Improvements and Bugfixes [\#87](https://github.com/NeonGeckoCom/neon_audio/pull/87) ([github-actions[bot]](https://github.com/apps/github-actions))
33+
- Refactor to include audio data for all MQ-originated requests [\#188](https://github.com/NeonGeckoCom/neon_audio/pull/188) ([NeonDaniel](https://github.com/NeonDaniel))
17034

17135

17236

Dockerfile

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@ RUN curl https://forslund.github.io/mycroft-desktop-repo/mycroft-desktop.gpg.ke
1818
echo "deb http://forslund.github.io/mycroft-desktop-repo bionic main" \
1919
> /etc/apt/sources.list.d/mycroft-mimic.list
2020

21-
RUN apt update && \
22-
apt install -y \
21+
RUN apt-get update && \
22+
apt-get install -y \
23+
curl \
24+
jq \
2325
alsa-utils \
2426
libasound2-plugins \
2527
pulseaudio-utils \
@@ -34,18 +36,19 @@ RUN apt update && \
3436
espeak-ng \
3537
git # Added to handle installing plugins from git
3638

37-
ADD . /neon_audio
39+
COPY . /neon_audio
3840
WORKDIR /neon_audio
3941

40-
RUN pip install wheel && \
41-
pip install .[docker] --extra-index-url https://download.pytorch.org/whl/cpu
42+
RUN pip install --no-cache-dir wheel && \
43+
pip install --no-cache-dir .[docker] --extra-index-url https://download.pytorch.org/whl/cpu
4244

4345
COPY docker_overlay/ /
4446
RUN chmod ugo+x /root/run.sh
4547

4648
RUN neon-audio install-dependencies
4749

50+
HEALTHCHECK CMD "/opt/neon/healthcheck.sh"
4851
CMD ["/root/run.sh"]
4952

5053
FROM base AS default_model
51-
RUN neon-audio init-plugin
54+
RUN neon-audio init-plugin
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/bin/bash
2+
# NEON AI (TM) SOFTWARE, Software Development Kit & Application Development System
3+
# All trademark and other rights reserved by their respective owners
4+
# Copyright 2008-2025 Neongecko.com Inc.
5+
# BSD-3
6+
# Redistribution and use in source and binary forms, with or without
7+
# modification, are permitted provided that the following conditions are met:
8+
# 1. Redistributions of source code must retain the above copyright notice,
9+
# this list of conditions and the following disclaimer.
10+
# 2. Redistributions in binary form must reproduce the above copyright notice,
11+
# this list of conditions and the following disclaimer in the documentation
12+
# and/or other materials provided with the distribution.
13+
# 3. Neither the name of the copyright holder nor the names of its
14+
# contributors may be used to endorse or promote products derived from this
15+
# software without specific prior written permission.
16+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
18+
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19+
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
20+
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21+
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
23+
# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24+
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25+
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26+
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27+
28+
port=8000
29+
# Perform the health check using curl
30+
resp_content=$(curl -s http://localhost:${port}/status)
31+
status=$(echo "${resp_content}" | jq -r '.status')
32+
if [ "${status}" == "Ready" ]; then
33+
exit 0 # Success
34+
else
35+
echo "Health check failed with response: ${resp_content}" >&2
36+
exit 1 # Failure
37+
fi

docker_overlay/root/run.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,4 @@
2929

3030
# Plugin installation must occur in a separate thread, before module load, for the entry point to be loaded.
3131
neon-audio install-dependencies
32-
neon-audio run
32+
neon-audio run -hp 8000

neon_audio/__main__.py

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,16 @@
2828

2929
from neon_utils.messagebus_utils import get_messagebus
3030
from neon_utils.log_utils import init_log
31-
from neon_utils.process_utils import start_malloc, snapshot_malloc, print_malloc
32-
from neon_utils.signal_utils import init_signal_bus, \
33-
init_signal_handlers, check_for_signal
31+
from neon_utils.process_utils import (
32+
start_malloc,
33+
snapshot_malloc,
34+
print_malloc,
35+
)
36+
from neon_utils.signal_utils import (
37+
init_signal_bus,
38+
init_signal_handlers,
39+
check_for_signal,
40+
)
3441
from ovos_utils import wait_for_exit_signal
3542
from ovos_utils.log import LOG
3643
from ovos_config.locale import setup_locale
@@ -44,8 +51,10 @@ def main(*args, **kwargs):
4451
LOG.warning("Found `config` kwarg, but expect `audio_config`")
4552
kwargs["audio_config"] = kwargs.pop("config")
4653
if kwargs.get("audio_config"):
47-
LOG.warning("Passed configuration should be written to disk before"
48-
"module launch")
54+
LOG.warning(
55+
"Passed configuration should be written to disk before"
56+
"module launch"
57+
)
4958
init_log(log_name="audio")
5059
malloc_running = start_malloc(stack_depth=4)
5160
bus = get_messagebus()
@@ -58,8 +67,15 @@ def main(*args, **kwargs):
5867
check_for_signal("isSpeaking")
5968
setup_locale()
6069
try:
70+
health_check_server_port = kwargs.pop("health_check_server_port", None)
6171
service = NeonPlaybackService(*args, **kwargs)
6272
LOG.info("Service init completed")
73+
if health_check_server_port is not None:
74+
from neon_utils.process_utils import start_health_check_server
75+
76+
start_health_check_server(
77+
service.status, health_check_server_port, service.check_health
78+
)
6379
service.start()
6480
wait_for_exit_signal()
6581
except Exception as e:
@@ -76,10 +92,12 @@ def main(*args, **kwargs):
7692

7793
def deprecated_entrypoint():
7894
from ovos_utils.log import log_deprecation
79-
log_deprecation("Use `neon-audio run` in place of "
80-
"`neon_audio_client`", "2.0.0")
95+
96+
log_deprecation(
97+
"Use `neon-audio run` in place of `neon_audio_client`", "2.0.0"
98+
)
8199
main()
82100

83101

84-
if __name__ == '__main__':
102+
if __name__ == "__main__":
85103
main()

0 commit comments

Comments
 (0)