Releases: Unmanic/unmanic
Releases Β· Unmanic/unmanic
[RELEASE] v0.2.8
Service
- [IMPR] Improve how the command string is generated for the worker to execute.
Plugin executor
- [NEW] Add ability for a plugin to set file output to 'None'.
- [FIX] Unmanic was trying to create an output path even when file out path was 'None'.
Docker
- [FIX] Disable pinning of these runtime packages in Docker image so that they can be auto-updated on a scheduled builds:
libexpat1
,libglib2.0-0
,libgomp1
,libharfbuzz0b
,libmediainfo0v5
,libv4l-0
,libx11-6
,libxcb1
,libxext6
,libxml2
Front-end
- [FIX] Mobile view of the configuration drawers was not saving the settings
[RELEASE] v0.2.7
Service
- [FIX] Disable supporter restrictions and hide login .
- [IMPR] Thrown an exception when the remote support API is not available.
- [IMPR] Display better logging for responses from the support API.
Docker
- [NEW] Add ability to select a 'test' support API
- [IMPR] Update package: libexpat1=2.4.7-1ubuntu0.3
v0.2.6
- [NOTE] When upgrading from 0.2.4 to 0.2.5+, supporters will need to log in again. Due to the change in the auth api and changes with integrating with Patreon, all supporters will need to log into their respective platforms again. Sorry for the inconvenience.
Service
- [FIX] Always force logout to avoid showing the user an error message.
- [FIX] Only save remote request session cookies if they exist. This prevents overwriting some valid session cookies when a new session is created.
Docker
- [FIX] Bump required Docker build dependencies.
[RELEASE] v0.2.5
- [NOTE] Supporters will need to log in again. Due to the change in the auth api and changes with integrating with Patreon, all supporters will need to log into their respective platforms again. Sorry for the inconvenience.
Service
- [NEW] Add support for Python 3.12
- [NEW] Add a new logout v2 API endpoint
- [IMPR] Switch to new plugin and supporter auth APIs. This will provide much faster fetching of remote data.
- [IMPR] Add some better debug logging to any remote API calls
- [IMPR] Update the Python wheel build process to support the latest setuptools
Plugin executor
- [IMPR] Improvements to development of plugins locally
- Prevent a user from installing a plugin update over top of a plugin they are developing on that contains a .git directory
Docker
- [IMPR] Rebase image to Ubuntu Jammy
- [IMPR] Remove freeze on VA driver packages
- [IMPR] Remove freeze on intel media driver packages
- [IMPR] Update Jellyfin FFmpeg to v6
- [IMPR] Update NodeJS to v20
- [NOTE] Remove support for armv7
Front-end
- [IMPR] Update all dependencies
- [IMPR] Unify processing and ETC time format
- [IMPR] Switch to using the new v2 API endpoint
- [IMPR] Improve how navigation drawers function
- [IMPR] Add Help & Support links to all navigation drawers
- [FIX] Remove the I18n warning logs spamming into a browser console log
- [FIX] Fix bug where clicking on the Discord or GitHub login would sometimes activate the function for logging in for Patreon.
[RELEASE] v0.2.4
Service
- [NEW] Add ability to install plugins from zip file.
- [NEW] Add a new "notifications" feature to collect important details for users to review when the view the front-end.
- [IMPR] Drop support for Python v3.6.
- [IMPR] Add support for Python v3.9, v3.10 and v3.11.
- [IMPR] Slow down main thread executions to improve CPU usage on lower end hardware.
- [IMPR] Small improvements to the logs displayed for worker plugin executions. This will be helpful for plugins that do all the work themselves rather than passing a command to execute back to Unmanic.
- [IMPR] Improve plugin manager command-line tool (see commits for more details).
- [FIX] Fixed bug where logs were not being returned correctly from linked installations.
Plugin executor
- [NEW] Add support for "description" fields in plugin settings (see front-end changes below).
- [NEW] Add support for "tooltip" fields in plugin settings (see front-end changes below).
Docker
- [IMPR] Update package: intel-igc-cm=1.0.160+i755~u20.04
- [IMPR] Update package: intel-level-zero-gpu=1.3.23726.1+i419~u20.04
- [IMPR] Update package: intel-media-va-driver-non-free=22.5.0+i419~u20.04
- [IMPR] Update package: intel-opencl-icd=22.28.23726.1+i419~u20.04
- [IMPR] Update package: level-zero=1.8.1+i755~u20.04
- [IMPR] Update package: libgl1-mesa-dri=22.2.0.20220625.1+3091
- [IMPR] Update package: libigc1=1.0.11485+i419~u20.04
- [IMPR] Update package: libigdfcl1=1.0.11485+i419~u20.04
- [IMPR] Update package: libmfx1=22.5.0+i419~u20.04
- [IMPR] Update package: libva-drm2=2.15.0.2-36
- [IMPR] Update package: libva-wayland2=2.15.0.2-36
- [IMPR] Update package: libva-x11-2=2.15.0.2-36
- [IMPR] Update package: libva2=2.15.0.2-36
- [IMPR] Update package: vainfo=2.15.0.2-1
Front-end
- [NEW] Add a new "notifications" area for receiving push notifications from the backend.
- [NEW] Add support for displaying a "description" below most plugin config input fields.
- [NEW] Add support for displaying a "tooltip" when you hover over a plugin config option.
- [FIX] Fixed an issue that would prevent a library from being saved if you just hid the dialogue.
[RELEASE] v0.2.3
- [NOTE] For the next few months I will be dropping the minimum Patreon sponsorship level for unlocking Unmanic to $1. As the project is growing it is my hope to further spread the costs of maintaining the infrastructure across the users. Remember that Unmanic is a community driven project and you can also unlock supporter features by simply contributing to the Unmanic GitHub (including documentation) or by participating in supporting via Discord. Thank you to everyone who has been contributing to this project. Without you, Unmanic would not be what it is today.
Service
- [NEW] Added ability to configure a library as a remote-only library for receiving remote tasks.
- [NEW] Added the ability for a link to push any missing library configs, including installed plugins, plugin flow and plugin settings, to remote installations.
- [NEW] Updated linking to send only the relative path to a file if the remote library is configured to point to the same directory as the main installation's library. Use this feature to pull new tasks from a SMB or NFS share rather than having Unmanic transfer the file from the main installation to the remote one.
- [IMPR] Reduced the number of times plugin repos are refreshed to check for updates.
- [IMPR] Included the library config in API calls for requesting all libraries.
- [IMPR] Added better logging for any issues found during linking communications.
- [IMPR] Remove checksum validation from post-processing. Checksum generation was slowing down the processes unnecessarily.
- [IMPR] Make checksum validation optional on link task file transfers.
- [IMPR] Sort libraries alphabetically. Libraries are now scanned top-down in alphabetical order. Use the library name to configure the priority order in which a library is scanned.
- [IMPR] Made the number of pre-loaded tasks user configurable rather than calculating it based on the number of available remote workers.
- [IMPR] Improvements to building, starting and stopping Unmanic on Windows.
- [FIX] Removed the
--unmanic_path
cli option for setting the config directory. Use theHOME_DIR
environment variable instead. - [FIX] Fixed bug where tags would not be saved on new worker group creation.
- [FIX] Fixed bug where a link may not be configurable in the first 10 seconds after first creating it.
- [FIX] Fixed issue where plugin settings were not being set during the import or clone of a library.
- [FIX] Fixed bug where clicking submit on the link settings screen would always enable task pre-loading on each of the links.
- [FIX] Fixed a bug where if the remote pending task list is empty, the main installation would not detect that the task has been deleted.
Plugin executor
- [NEW] Added a the final cache path as a variable handed to post-processor plugins.
Docker
- [NEW] Included NodeJS in build.
- [NEW] Included exiftool in build.
- [NEW] Added libmediainfo0v5.
- [IMPR] Updated Intel dependencies.
- [IMPR] Updated Jellyfin FFmpeg to v4.4.1-4.
Front-end
- [IMPR] Display the library config overview on the library settings screen.
- [IMPR] Display the link config overview on the link settings screen.
[RELEASE] v0.2.2
Service
- [NEW] Introduce worker groups to specify unique schedules and tags for groups of workers.
- [NEW] Introduce new "tagging" feature. Apply tags to libraries and worker to further customise that partnership. Eg. Tag a library with "priority" and keep a matching tagged worker spare for priority tasks.
- [NEW] Add the ability to link with an installation that is behind a proxy (traefik, swag/nginx, etc.) configured with basic authentication.
- [NEW] Add ability to set the maximum number of days that the completed tasks should be kept. If enabled, Unmanic will remove successfully completed tasks after the configured number of days.
- [IMPR] Session reloads with the Unmanic site API are now reduced and persisted between application restarts. Unmanic can operate in a supporter tier without an internet connection for up to seven days.
- [IMPR] All sub-processes executed by workers will now be executed at a lower priority than the main application. This should help improve application responsiveness during times of high CPU load.
- [IMPR] When configured to send tasks to remote installations, Unmanic will now send one transfer at a time, but be available to receive up to two transfers back from that remote installation. This should help to saturate network bandwidth for people with faster networks.
- [IMPR] Remote linking will now poll for updates from a remote installation every 10 seconds (previously 30). This will reduce the delays between a task finishing and the source installation seeing it as available to download.
- [IMPR] Reduce the number of file copies during a task lifcycle by first attempting an atomic movement for the final file movement of the post-processor from the cache directory. If the cache directory and destination directory are on different mounts, Unmanic will fall back to a file copy.
- [IMPR] Carry out post-processor file movements with a '.unmanic.part' suffix added to the end of the file as it is moved.
- [IMPR] Improvements to application logging.
- [IMPR] Improvements to the how application settings are saved to file.
- [FIX] Fix a minor issue with the way that the main service exits when a termination request is given.
- [FIX] Fix for bug in post-processor where, under certain circumstances, if a file movement failed it could cause the post-processor thread to crash.
- [FIX] Fix a bug where removing a library while a task is about to be processed by a worker could crash the main worker foreman thread.
Plugin executor
- [FIX] Fix error causing plugin settings to fail during write if no global settings file exists
Front-end
- [NEW] Display release notes on dashboard the first time the UI is opened after a release update.
- [NEW] Add form elements presenting worker group settings.
- [NEW] Add form elements for configuring library and worker tags.
- [NEW] Add form elements for configuring basic auth credentials in remote installation linking.
- [NEW] Add form elements for configuring completed tasks management.
- [NEW] Add ability to filter the completed tasks list by success status.
- [NEW] Add ability to filter the completed tasks list by the date that the task was completed.
- [IMPR] Display more information on the list of configured libraries in settings so we can see at a glance how each library is configured.
- [IMPR] Update all front-end dependencies for improvements, bug-fixes and security patches.
[RELEASE] v0.2.1
Service
- [NEW] Add ability to set a priority score modifier per library. Setting a higher score will cause tasks to be added further up the queue. Use a negative value to drop the task closer to the bottom of the queue.
- [NEW] Added support for executing subprocesses when installed natively on Windows.
- [IMPR] The plugin repo will be reloaded before a library config import attempts to installing plugins.
- [IMPR] Workers now have the ability to execute commands as raw strings if a plugin provides it with a string rather than a list.
- [IMPR] Added checks to ensure a library ID is provided as a number when fetching a plugin's settings.
- [IMPR] Switch the primary Unmanic site API domain to api.unmanic.app.
- [IMPR] Remove '.' (periods) from the generated cache paths.
- [IMPR] Improvements to repo updater functionality.
- [IMPR] Tweaks to SQLite DB migrations during upgrades to allow different types of joining tables.
Plugin executor
- [NEW] Add ability to share common data between file testing plugins. This should speed up library scans as plugins adopt this feature.
- [FIX] Fix issue where worker plugins that requested multiple passes were being given the same input file rather than the output file from the previous pass.
- [FIX] Fix issue where if plugins were configured for the first time from the library, a FileNotFoundError exception would be thrown as the global settings.json file was missing.
- [FIX] Fix issue where during second pass plugin execution, a settings object was being retained for subsequent executions rather than being read fresh every time.
API
- [NEW] Add ability to set a priority score when creating a task via the API in order to modify its place in the task queue.
Front-end
- [NEW] Add form elements for configuring a library's priority score modifier.
[RELEASE] v0.2.0
Changes:
- Add support for multiple libraries
- Add ability to create, read, update and delete multiple libraries
- Update library scanner and file monitor to handle multiple libraries
- Move the "enabled plugins" feature to be per-library
- Add ability to configure plugins per-library or globally and add ability to reset library config to global defaults
- Move plugin flow configuration to be per-library
- Include a library ID when requesting data from plugins (requires bump in plugin compatibility version and all plugins to be updated)
- Update all plugin executors to only execute plugins enabled on a library
- Delete all pending tasks matching a library that is being deleted
- Add ability to export and import library config
- Add ability to clone a library
- Add ability to lock a library to prevent it from being accidentally deleted
- Add ability to login to Unmanic with GitHub
- Unlocks all "supporter perks" if your GitHub account has committed anything to the Unmanic project in the past month
- Add ability to login to Unmanic with Discord
- Unlocks all "supporter perks" if your Discord account has received reputation points for being helpful in the past month
- Update developer tools for multi-library support
- Give post-processor plugins the ability to prevent Unmanic's default file movement completely
- Remove NVIDIA GPU probe from system info
- Improve Unmanic installation linking
- Add library name when sending files
- Do not send a task to remote installations that do not have a library name matching that of the task
- Improve pre-loading of tasks on remote installations to help with smaller files and greater worker counts
- Allow sending smaller files of less than 100MB in parallel
- Enable network transfers to multiple remote installations at a time
- Improvements to debug logging
- Migrate the directory info
.unmanic
files from INI to JSON for better filename support - Add new plugin runner for managing web-hooks and API calls
- Add new API endpoints
- Create, read, update and delete a library
- Export a library config
- Import a library config
- Terminate all workers with one request
- Trigger a library scan
- Create a new local pending task from a given path
Docker
- Improve the Docker image inbuilt developer tools for multi-library support
- Bump packages:
- libgl1-mesa-dri
21.0.3-0ubuntu0.3~20.04.5
->21.2.6-0ubuntu0.1~20.04.2
- mesa-va-drivers
21.0.3-0ubuntu0.3~20.04.5
->21.2.6-0ubuntu0.1~20.04.2
- libgl1-mesa-dri
- Add EXPOSE port 8888 in Dockerfile
Front-end
- Add support for multiple libraries
- Add required screen elements to manage multiple libraries
- Move file monitor enable to be per-library
- Hide the plugin settings for plugins that are not configurable
- Add library selector when adding completed task back to pending task queue
- Add ability to install plugins from the library config screen
- Improvements to layout and text
- Improve mobile browsing
- Rewrite the plugin settings screen to be a list rather than a table
- Ensure the file browser dialog is full-screen when viewed on a mobile
- Add dark mode
- Ensure the web-socket warning is dismissed when new data arrives
- Update all translations
- Add ability to terminate all workers from the dashboard
- Add button to trigger a library scan from the dashboard
Bug fixes:
- When specifying a custom config path via the
unmanic
command, the old config file was still being imported before this param was being applied. - The web-socket connection warning would not disappear if the web-socket started receiving data again.
- When Unmanic detected an NVIDIA GPU, but the driver was not installed or the NVIDIA Docker runtime was not in use, it would throw an error.
- One of the logs "No libraries are configured to run a library scan" log was being run no matter what conditions were met
[RELEASE] v0.1.4
Changes:
- Always remove remote pending tasks on application startup
- Improvements to the library scanner
- Run file tests in a pool of threads to increase speed
- Disable plugin reloading during a library scan
- Pre-load all failed results from the database into memory rather than fetching them when testing each file
- Improve logging for the library scanner
Docker
- Ensure startup.sh line endings are always Unix line endings and not windows
- Bump packages:
- libgl1-mesa-dri '21.0.3-0ubuntu0.3
20.04.3' -> '21.0.3-0ubuntu0.320.04.5' - mesa-va-drivers '21.0.3-0ubuntu0.3
20.04.3' -> '21.0.3-0ubuntu0.320.04.5'
- libgl1-mesa-dri '21.0.3-0ubuntu0.3
- Added packages:
- sqlite3
Front-end
- Add configuration options for the number of threads to start for testing files during a library scan
- Display warning message on the data panels screen when there are no data panel plugins installed
- Update footer layout
Bug fixes:
- If a link is removed in settings while a task was in progress, the remote task manager threads would not be stopped
- Atomic file movements were not being picked up by the event monitor