14 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-nextrequirement 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.
-
python_deploy: Use the "eager" dependency update strategy.
-
wled: Use the
async_serialutility for serial comms. -
paneldue: Use the
async_serialutility for serial comms. -
scripts: Update
fetch-apikey.shto 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/upgradeendpoint 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 deprecatedfullandclientendpoints for compatibility with older API versions. -
simplyprint: Improve job progress calculation.
-
build: Bump PDM-Backend to 2.4.3.
-
build: Bump Apprise to 1.9.2
-
build: Bump Tornado to 6.5.1
-
build: Bump Streaming-form-data to 1.19.1
-
build: Bump Jinja2 to 3.1.5
-
build: Bump dbus-fast to 2.44.1
Fixed
- python_deploy: fix "dev" channel updates for GitHub sources.
- python_deploy: fix release rollbacks.
- mqtt: Publish the result of the Klipper status subscription request. This fixes issues with MQTT clients missing the initial status updates after Klippy restarts.
- eventloop: Fixed a condition where the garbage collector may prematurely cancel background tasks.
- spoolman: Use the default websocket ping timeout. Disable pinging for versions of Tornado prior to 6.5.0.
- application: Disable pinging for versions of Tornado prior to 6.5.0.
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
-goption 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
nameandconfigured_typefor all status response types. This adds consistency and allows front-end devs to simply iterate over the values of theversion_infoobject. - python_deploy: Add support for updating python packages with "extras" installed.
- update_manager: Add support for updating
executablebinaries. - update_manager: Added a
report_anomaliesoption for git, web, and zip types. - analysis: Initial support for gcode file time analysis using Klipper Estimator.
- power: Added the ability to discard unwanted responses for MQTT power devices.
- power: Added
poll_intervaloption for HTTP (and all derivatives), TPLink Smartplug, and uhubctl devices. When set Moonraker will poll device status. - power: Added
restrict_action_processingoption. When set toFalse, post toggle actions such as restarting Klippy and controlling bound services are run when an external power event is detected.
0.9.3 - 2024-09-05
Changed
- server: Use
asyncio.runto launch the server as recommended by the official Python documentation. - announcements: Look for xml files at
<data_path>/development/announcementswhendev_modeis 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.tomlandsystem-dependencies.jsonrespectively. - dev: Add pre-commit hook to call
sync_dependencies.py.
Fixed
- build: Build from sdist now correctly includes share data.
- build: Remove stray
.gitignorefrom Python Wheel.
Changed
- install: The
MOONRAKER_FORCE_DEFAULTSenvironment variable has changed toMOONRAKER_FORCE_SYSTEM_INSTALL.
0.9.1 - 2024-07-25
Fixed
- source_info: Fixed
importlib.metadatacompatibility issues with python versions 3.9 or older.
0.9.0 - 2024-07-25
Added
- notifier: The
attachoption now supports Jinja2 templates. - notifier: The
attachoption may now contain multiple attachments, each separated by a newline. - notifier: Added support for a configurable
body_format - power: Added support for generic
httptype 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_repoupdates - server: Added a
--unixsocketcommand line option - server: Command line options may also be specified as env variables
- server: Added a
route_prefixoption - webcam: Webcam APIs can now specify cameras by
uidorname - deps: Added support for optional
msgspecanduvlooppackages - extensions: Agents may now register remote methods with Klipper
- file_manager: Add
check_klipper_config_pathoption - button: Added
debounce_periodoption - 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
uvloopandmsgspec - update_manager: Added support for "zipped" application updates
- file_manager: Added
enable_config_write_accessoption - machine: Add support for system peripheral queries
- mqtt: Added the
status_intervaloption to support rate limiting - mqtt: Added the
enable_tlsoption to support ssl/tls connections - mqtt: Added support for a configurable
client_id - history: Added
userfield 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
uhubctldevices - 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_gcoderuns 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-configuratorto 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
webtype updates. This change adds a validation step to the install, front-end developers may refer to the configuration documentation for details. - update_manager: The
envoption for thegit_repotype has been deprecated, new configurations should use thevirtualenvoption. - update_manager: The
install_scriptoption for thegit_repohas been deprecated, new configurations should use thesystem_dependenciesoption. - 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_stateis 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_cliprovider. - machine: Added
octoeverywhereto 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.pyhas been moved toserver.py. The remaining code inmoonraker.pyserves 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_cliinstead 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_warningsconfiguration option has been deprecated in favor ofenable_observer_warnings.
Fixed
- file_manager: Fix edge condition where
create_filenotifications may be sent before acreate_dirnotification. - 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