Skip to content

3.0.0

Compare
Choose a tag to compare
@LongLiveCHIEF LongLiveCHIEF released this 09 Dec 21:32
· 104 commits to master since this release
abf782e

Version 3.0.0 Changelog

  • plugins will now persist in the /octoprint volume (see #71 and #44)
  • Settings unique to docker (such as restarting octoprint and webcam configs), are now pre-configured (implemented in #132)
  • Backup/restore will now work with the docker image (fixed #92 via #135)
  • the creation of edge, canary, and bleeding tags. See README for details on how to use these tags

Breaking changes

PR #135 introduced a change that will not affect most users, but may be a breaking change for existing users that are using a volume mounting strategy other than the recommended strategy. Details follow:

  • /octoprint/octoprint and /octoprint/plugins folders are now explicitly created during docker build
  • octoprint service basedir is now /octoprint/octoprint (was previously /octoprint)
  • the recommended mount path for the config-editor container to has been changed to octoprint:/octoprint. See updated examples and usage info in docker-compose.yml and README.

As a result of the breaking changes in 3.0.0, we have introduced a script that will attempt to detect and auto-migrate filesystem structures from previous octoprint-docker release versions to the current version, by utilizing an optional environment variable you can set

This feature was impossible to test for all condidtions, and as such is defaulted to false. We highly recommend you use the OctoPrint backup feature, or use this docker based method of backing up your container volume before attempting auto-migration. To attempt auto-migration, set a container environment variable of AUTOMIGRATE=true.

Due to the changes of the folder structure below the /octoprint directory, where before the root context of the volume mount looked like this:

/octoprint
├── config.backup
├── config.yaml
├── data
│   ├── announcements
│   ├── appkeys
│   ├── backup
│   ├── pluginmanager
│   ├── preemptive_cache_config.yaml
│   └── softwareupdate
├── generated
│   └── webassets
├── logs
│   ├── octoprint.log
│   ├── plugin_bedlevelvisualizer_debug.log
│   ├── plugin_pluginmanager_console.log
│   └── plugin_softwareupdate_console.log
├── plugins
│   ├── bin
│   └── lib
├── printerProfiles
│   └── _default.profile
├── scripts
├── slicingProfiles
├── timelapse
│   └── tmp
├── translations
├── uploads
├── virtualSd
└── watched

It will now look like this:

/octoprint
├── octoprint
│   ├── config.backup
│   ├── config.yaml
│   ├── data
│   ├── generated
│   ├── logs
│   ├── plugins
│   ├── printerProfiles
│   ├── scripts
│   ├── slicingProfiles
│   ├── timelapse
│   ├── translations
│   ├── uploads
│   ├── virtualSd
│   └── watched
└── plugins

The /octoprint/plugins directory is the python libraries path, and /octoprint/octoprint/plugins is the path for plugin data and configuration. Prior to this change, both of these things existed in the /octoprint/plugins folder, polluting it's purpose.

This new method will allow savvy users to create distinct volumes for plugin binaries and octoprint configuration data, giving them more ability to selectively control how state and memory consumption are utilized in their octoprint image usage/distribution strategies.