This changelog follows the basic format outlined on keepachangelog.com.
To learn more about the specifics of my changelog structure, see doc/changelog-struct.md
-
Added
- In addition to tones (which play when you should speak and then let you know your command was heard), text will always be printed to the console to notify you of when to talk and when the voice assistant is no longer listening
-
Changed
- The output file from
setup.py
is now calledvoiceassistant
rather thanmain
- All paths used in the code are now relative from the
site-packages
directory where thesetup.py
output file is - Python files within the project are now imported relatively
- Updated some documentation
- Modified some changelog entries
- The output file from
-
Fixed
- Fixed a problem where running the program with
setup.py
output file resulted in an error - Fixed a bug relating to SSL certificates with the requests library
- Fixed a problem where running the program with
-
Removed
- Removed some unused imports
- Removed some more of the audio playback code deprecated in v0.3.1
- Apparently I missed some
-
Added
- All error handling is now done by passing functions into the
handler.handle
function
- All error handling is now done by passing functions into the
-
Changed
- API credentials are now read from inside the
VoiceAssistant
class constructor- This keeps code statements out of the top level
- The repository GitHub Actions workflow now does dependency tests on code
- This installs dependencies from
pip
as well as the system package manager - Note that the workflow runs with Ubuntu Linux, so the
apt
dependencies are installed
- This installs dependencies from
- The latest version of the VSCode Python extension includes Pylance, which adds a lot of cool, new features to the Python language support, including a linting feature. Many edits were made based on these linting
- Reworded some changelog entries
- API credentials are now read from inside the
-
Fixed
- Fixed a bug where the program would crash after the wake word was uttered (#45)
- Fixed some bugs related to misspelled identifiers
- Finished some unfinished code segments
- Fixed some code spacing issues
-
Removed
- All usage of the error handling code outside the scope of
handler.handle
has been removed - The credit calculation code has been removed from
voiceassistant.py
. This functionality is being actively worked on for another update. If you would like to see it, check out the v0.5.0-dev branch
- All usage of the error handling code outside the scope of
-
Changed
- The GitHub Actions workflow for this repository doesn't run as often anymore
- Updated the documentation
- Notably, the README files now include the Manjaro dependencies in the table
- Rewrote and clarified a few things in the changelog
-
Fixed
- Fixed a bug where the function that clears the cache wasn't being called
-
Added
- Added a new file (
doc/changelog-struct.md
) describing the changelog structure
- Added a new file (
-
Changed
- Reword some things in the changelog
- Minor documentation updates
-
Fixed
- Fixed a bug where the program would crash when trying to play audio with
omxplayer
on Raspberry Pi - Fixed a bug where an undefined variable was being accessed
- A return value of
None
fromVoiceAssistant.listen()
is now correctly handled
- Fixed a bug where the program would crash when trying to play audio with
-
Removed
- Removed all audio playback code deprecated in v0.3.1
-
Changed
- Reworded a few things in the README
-
Fixed
- Fixed some syntax errors causing the program to crash
- Finally the editorconfig correctly displays files with their defined indentation type and in the correct size. I had to dig through the EditorConfig documentation to find the solution, but I feel like it will be nicer to view files with a 4-tab-size indent than with an 8-tab-size indent.
-
Added
- Integrated a GitHub Actions workflow to manage code security (CodeQL)
-
Changed
- Marked a previous changelog entry as a change rather than as a bugfix
- Reworded some comments and docstrings
-
Fixed
The editorconfig now correctly displays files with their defined indentation type and in the correct size- NOTE: This bugfix didn't work. The bug was fixed in v0.3.5.
-
Added
- Added dependency installation support for Pacman
- Added issue templates for bug reports and feature requests
-
Changed
- Update the README files to include Pacman in the list of supported package managers
- The editorconfig file now works on shell scripts, the gitignore, and the editorconfig itself
-
Added
- Added a
.editorconfig
file
- Added a
-
Changed
- Updated the copyright section on all file boilerplates and README files with the year 2021
- On that note, happy (belated) New Year! 🎉
- The
setup.py
file has a new boilerplate that matches all the other Python files in the project - Reworded a few things in the changelog
- Updated the copyright section on all file boilerplates and README files with the year 2021
-
Added
- The README files and package lists now show
ffmpeg
as a required package to run the software
- The README files and package lists now show
-
Changed
ffmpeg
is now the primary audio player for the softwareomxplayer
is still being used, but only if it's installed and only on Raspberry Pi OS
- The
VoiceAssistant
class no longer handles audio output; only audio file creation- Audio output is all done by the functionality in
audioplayer.py
- Audio output is all done by the functionality in
- Reworded a few things in the changelog
- macOS is now stylized correctly in both the README files and the changelog
-
Fixed
- Fixed a bug causing the command subject to not be set in certain cases
- Fixed a bug causing audio playback not to work (#30)
- Fixed a bug causing the setup wizard to crash
-
Deprecated
- All individual audio output functionality has been removed; it's all universal from
audioplayer.py
- All individual audio output functionality has been removed; it's all universal from
-
Added
- The
wizard.py
file now has a module docstring - Package manager dependency files for building the software
- The
-
Changed
- The software is now built entirely using the
setup.py
file- On macOS, Debian/Ubuntu, and Fedora, you no longer have to install non-Python dependencies separately (unless you want to).
- Users who cannot take advantage of this can build the software using the directions in README-EXT.md.
- Users who'd prefer to not use this new build functionality can also follow the link above for more information.
- Updated the README files
- Added a notice about a possible dependency error that can occur at runtime, and how to solve it.
- Added a link to the "Other Requirements" section in the table of contents
- Installation example commands now use Python 3.9, and the latest Python version section has been updated
- Updated MANIFEST.in to include package dependency lists
- Reworded some comments and docstrings
- The software is now built entirely using the
-
Fixed
- Fixed a broken link in the README-EXT's table of contents
-
Changed
- Updated README-EXT.md with information about the PyOWM bug
- There is a tutorial under the "Miscellaneous" section which will help you out if you're looking to continue to use the cache feature.
- Made a changelog entry more readable
- Updated README-EXT.md with information about the PyOWM bug
-
Fixed
- Fixed an import error involving an update to the PyOWM caching module,
pyowm.caches
- Fixed an import error involving an update to the PyOWM caching module,
-
Removed
- Usage of the
pyowm.caches
module, which is depricated in PyOWM v3.0.0 (#21)- If you still want to utilize the cache feature, you can clone the repository's
old-pyowm-cache
branch and run the code from there. Note that on this branch, the
pyowm
module will run on v2.10, the newest version of the software that still supports thepyowm.caches
module.
- If you still want to utilize the cache feature, you can clone the repository's
old-pyowm-cache
branch and run the code from there. Note that on this branch, the
- Usage of the
-
Changed
- Some variables are now instantiated right before their use rather than at the top of a function
- The license has my name on it now (but this probably never mattered to begin with)
-
Fixed
- An import bug causing the software to crash is now fixed
-
Changed
- Usable replies are now found using dictionary lookup instead of an
if
-elif
block cache_extras.py
now usespathlib
for file paths instead of paths in stringssubprocess.call
is now used ubiquitously oversubprocess.Popen
- In addition, the remaining calls to
os.system
have been replaced withsubprocess.call
- In addition, the remaining calls to
- The YAML configuration files now have whitespace and are more readable
- Removed some horizontal lines (
---
) from the README files so they'll look nicer when rendered - Clarified some changelog entries
- Proofread and enchanced some documentation
- Usable replies are now found using dictionary lookup instead of an
-
Fixed
- Permissions now work correctly
- When you disable something (like audio recording), it is actually diabled
- All data storage files are now empty
- Some of them previously contained data from testing; this would not break the software, but I thought it would be nice to clear them out.
- Permissions now work correctly
-
Added
- The cache is now scanned for leftover files and they are deleted (e.g.,
None.wav
when something fails) - The ability for the software to utilize the dictionary merge operators (
|
/|=
) if you run the software with Python 3.9+- For those with 3.8, the old dictionary combination method is still being used in the code and is not being removed any time soon, so there's no need to upgrade.
- Added a reference to the changelog format I use (see above)
- Added a download URL in the
setup.py
file
- The cache is now scanned for leftover files and they are deleted (e.g.,
-
Changed
- Refactored the gitignore
- Readability is improved
__pycache__
directories are now ignored- Other unneeded files are also now ignored (like
/data/config/config.test.py
)
- Some calls to
os.system
have been changed to eithersubprocess.Popen
orsubprocess.call
- This migration will continue, because I feel that the software should use the newer functionality.
Also, this may remove the need to use the
os
library in some files whereos.system
is the only way the module is being used.
- This migration will continue, because I feel that the software should use the newer functionality.
Also, this may remove the need to use the
- Changelog entries are now organized by order of importance under their respective headings
- For example, the most important addition to the software is at the top of the Added section.
- Updated README-EXT.md
- The "Developing for Quinton" section has been renamed to "Contributing"
- A new "Future Inclusions" section has been added
- The "Different Versions" section has now been moved to "Future Inclusions" and it is now clearly stated that this is a concept and not a current part of the software.
- Updated README.md
- Added a "Contributing" section that refers viewers to
README-EXT.md
- Added a "Contributing" section that refers viewers to
- Some extra, unused functions that were in
cache_src/cache.py
are now incache_src/cache_extras.py
. - Clarified and rewrote some comments
- Refactored the gitignore
-
Added
- Added a new, shorter, easier to read README
- The
setup.py
file now gets version info number fromversion.txt
(meaning it's no longer hardcoded)
-
Changed
- The old README is now
README-EXT.md
- The old README is now
- The initial release of Quinton-VoiceAssistant