Moonraker's external API documentation has been significantly overhauled in an effort to improve clarity and readability. All parameters and responses are documented with specifications. Tables and other elements are used to make documentation more visible and less verbose. Spelling and other corrections have also been added. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
13 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
Unreleased
Changed
-
data_store: Store multi-line gcode commands in a single entry.
-
dbus_manager: Replace unmaintained
dbus-next
requirement withdbus-fast
. -
pip_utils: Use the "upgrade" option when installing python packages. This will force upgrades to the latest version available as resolved by the requirement specifier.
-
wled: Use the
async_serial
utility for serial comms. -
paneldue: Use the
async_serial
utility for serial comms. -
scripts: Update
fetch-apikey.sh
to query the SQL database -
update_manager: The following endpoints have been deprecated as of API version 1.5.0:
/machine/update/full
/machine/update/client
/machine/update/moonraker
/machine/update/klipper
/machine/update/system
The new
/machine/update/upgrade
endpoint replaces the functionality of all of the above. The deprecated endpoints will NOT be removed, so existing software does not need to be changed. New software should use the new endpoint, however it may be desirable to also support the deprecatedfull
andclient
endpoints for compatibility with older API versions.
Fixed
- python_deploy: fix "dev" channel updates for GitHub sources.
Added
- application: Verify that a filename is present when parsing the multipart/form-data for uploads.
- application: Log all failed HTTP API requests when verbose logging is enabled.
- install: Support "requirement specifiers" for system packages. Initially this is limited to restricting packages to a specific distro version.
- async_serial: Basic asyncio wrapper around pyserial.
- wled: Add initial support for receiving responses.
- scripts: Add a
-g
option tofetch-apikey.sh
. When specified a new API Key will be generated and stored in the database. After running this script it is necessary to restart Moonraker. - update_manager: Report
name
andconfigured_type
for all status response types. This adds consistency and allows front-end devs to simply iterate over the values of theversion_info
object. - python_deploy: Add support for updating python packages with "extras" installed.
0.9.3 - 2024-09-05
Changed
- server: Use
asyncio.run
to launch the server as recommended by the official Python documentation. - announcements: Look for xml files at
<data_path>/development/announcements
whendev_mode
is set to True. - build: Move scripts from the "data" directory into a folder inside the moonraker package.
Fixed
- confighelper: Don't resolve symbolic links to the main configuration file.
- power: Allow special characters in the user/pass options for backends that support Basic Authentication.
0.9.2 - 2024-07-30
Added
- install: Add support for installing Moonraker's python package via pip.
- scripts: Add script to sync python and system dependencies from
pyproject.toml
andsystem-dependencies.json
respectively. - dev: Add pre-commit hook to call
sync_dependencies.py
.
Fixed
- build: Build from sdist now correctly includes share data.
- build: Remove stray
.gitignore
from Python Wheel.
Changed
- install: The
MOONRAKER_FORCE_DEFAULTS
environment variable has changed toMOONRAKER_FORCE_SYSTEM_INSTALL
.
0.9.1 - 2024-07-25
Fixed
- source_info: Fixed
importlib.metadata
compatibility issues with python versions 3.9 or older.
0.9.0 - 2024-07-25
Added
- notifier: The
attach
option now supports Jinja2 templates. - notifier: The
attach
option may now contain multiple attachments, each separated by a newline. - notifier: Added support for a configurable
body_format
- power: Added support for generic
http
type switches. - metadata: Added support for OrcaSlicer
- zeroconf: Added support for a configurable mDNS hostname.
- zeroconf: Added support for UPnP/SSDP Discovery.
- spoolman: Added integration to the Spoolman filament manager.
- update_manager: Added support for update rollbacks
- update_manager: Added support for stable
git_repo
updates - server: Added a
--unixsocket
command line option - server: Command line options may also be specified as env variables
- server: Added a
route_prefix
option - webcam: Webcam APIs can now specify cameras by
uid
orname
- deps: Added support for optional
msgspec
anduvloop
packages - extensions: Agents may now register remote methods with Klipper
- file_manager: Add
check_klipper_config_path
option - button: Added
debounce_period
option - history: Added a check for previous jobs not finished (ie: when power is
lost during a print). These jobs will report their status as
interrupted
. - build: Added support for optional speedup dependencies
uvloop
andmsgspec
- update_manager: Added support for "zipped" application updates
- file_manager: Added
enable_config_write_access
option - machine: Add support for system peripheral queries
- mqtt: Added the
status_interval
option to support rate limiting - mqtt: Added the
enable_tls
option to support ssl/tls connections - mqtt: Added support for a configurable
client_id
- history: Added
user
field to job history data - history: Added support for auxiliary history fields
- spoolman: Report spool ids set during a print in history auxiliary data
- sensor: Added support for history fields reported in auxiliary data
- power: Added support for
uhubctl
devices - update_manager: Add support for pinned git commits
- update_manager: Added support for updating pip managed python apps
Fixed
- simplyprint: Fixed import error preventing the component from loading.
- update_manager: Moonraker will now restart the correct "moonraker" and "klipper" services if they are not the default values.
- job_queue: Fixed transition when auto is disabled
- history: Added modification time to file existence checks.
- dbus_manager: Fixed PolKit warning when PolKit features are not used.
- job_queue: Fixed a bug where the
job_transition_gcode
runs when the queue is started. It will now only run between jobs during automatic transition. - klippy_connection: Fixed a race condition that can result in skipped subscription updates.
- configheler: Fixed inline comment parsing.
- authorization: Fixed blocking call to
socket.getfqdn()
- power: Fixed "on_when_job_queued" behavior when the internal device state is stale.
Changed
- build: Bumped apprise to version
1.8.0
. - build: Bumped lmdb to version
1.4.1
- build: Bumped tornado to version
6.4.0
- build: Bumped jinja2 to version
3.1.4
- build: Bumped zeroconf to version
0.131.0
- build: Bumped libnacl to version
2.1.0
- build: Bumped distro to version
1.9.0
- build: Bumped pillow to version
10.3.0
- build: Bumped streaming-form-data to version
1.15.0
- machine: Added
ratos-configurator
to list of default allowed services - update_manager: It is now required that an application be "allowed" for Moonraker to restart it after an update.
- update_manager: Git repo validation no longer requires a match for the remote URL and/or branch.
- update_manager: Fixed potential security vulnerabilities in
web
type updates. This change adds a validation step to the install, front-end developers may refer to the configuration documentation for details. - update_manager: The
env
option for thegit_repo
type has been deprecated, new configurations should use thevirtualenv
option. - update_manager: The
install_script
option for thegit_repo
has been deprecated, new configurations should use thesystem_dependencies
option. - update_manager: APIs that return status report additional fields. See the API Documentation for details.
- proc_stats: Improved performance of Raspberry Pi CPU throttle detection.
- power: Bound services are now processed during initialization when
initial_state
is configured. - gpio: Migrate from libgpiod to python-periphery
- authorization: The authorization module is now loaded as part of Moonraker's core.
- database: Migrated the underlying database from LMDB to Sqlite.
- history: Use dedicated SQL tables to store job history and job totals.
- authorization: Use a dedicated SQL table to store user data.
REMOVED
- simplyprint: Removed defunct "AI" functionality
0.8.0 - 2023-02-23
!!! Note This is the first tagged release since a changelog was introduced. The list below contains notable changes introduced beginning in February 2023. Prior notable changes were kept in user_changes.md and api_changes.md.
Added
- Added this changelog!
- Added pyproject.toml with support for builds through pdm.
- sensor: New component for generic sensor configuration.
- file_manager: Added new scan metadata endpoint.
- file_manager: Added new thumbnails endpoint.
- file_manager: Added file_system_observer configuration option.
- file_manager: Added enable_observer_warnings configuration option.
- file_manager: Added ability to upload to symbolic links.
- metadata: Added support for Simplify3D V5 metadata parsing
- machine: Added shutdown_action configuration option.
- machine: Added service detection to the
supervisord_cli
provider. - machine: Added
octoeverywhere
to the list of default allowed service. - power: Added support for "Hue" device groups.
- websockets: Added support for direct bridge connections.
- update_manager: Added new refresh endpoint.
- update_manager: Added support for pinned pip upgrades.
- websockets: Added support for post connection authentication over the websocket.
- scripts: Added database backup and restore scripts.
Changed
- Converted Moonraker source into a Python package.
- The source from
moonraker.py
has been moved toserver.py
. The remaining code inmoonraker.py
serves as a legacy entry point for launching Moonraker. - file_manager: Improved inotify synchronization with API requests.
- file_manager: Endpoint return values are now consistent with their respective websocket notifications.
- machine: The provider configuration option
now expects
supervisord_cli
instead ofsupervisord
. - update_manager: Relaxed requirement for git repo tag detection. Now only two parts are required (ie: v1.5 and v1.5.0 are acceptable).
Deprecated
- file_manager: The
enable_inotify_warnings
configuration option has been deprecated in favor ofenable_observer_warnings
.
Fixed
- file_manager: Fix edge condition where
create_file
notifications may be sent before acreate_dir
notification. - power - Fixed URL encoding issues for http devices.
- template: A ConfigError is now raised when a template fails to render during configuration.
- machine: Fixed support for Supervisord Version 4 and above.
- update_manager: Added package resolution step to the APT backend.
- update_manger: Fixed PackageKit resolution step for 64-bit systems.
- update_manager: Fixed Python requirements file parsing. Comments are now ignored.
Removed
- Pycurl dependency. Moonraker no longer uses Tornado's curl based http client.
0.7.1 - 2021-07-08
- Experimental pre-release