CreatBotMoonraker/docs/changelog.md
Eric Callahan 9c550a8f9a docs: complete API documentation rework
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>
2025-02-06 19:15:38 -05:00

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 with dbus-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 deprecated full and client 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 to fetch-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 and configured_type for all status response types. This adds consistency and allows front-end devs to simply iterate over the values of the version_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 when dev_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 and system-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 to MOONRAKER_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 or name
  • deps: Added support for optional msgspec and uvloop 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 and msgspec
  • 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 the git_repo type has been deprecated, new configurations should use the virtualenv option.
  • update_manager: The install_script option for the git_repo has been deprecated, new configurations should use the system_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 to server.py. The remaining code in moonraker.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 of supervisord.
  • 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 of enable_observer_warnings.

Fixed

  • file_manager: Fix edge condition where create_file notifications may be sent before a create_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