Tags give the ability to mark specific points in history as being important
-
v26.28.0
protectedRelease: v26.28.0284e5725 · ·## v26.28.0 (10.07.2026) ### Fixes - Fix plot colors, unreadable legends and long floats on the system monitor dashboard - Service log pane now has datetime selectors for usability - General bugfixes ### Features - Allow configuring the dashboard log level - Add hoverable hints to all dashboard pages - Add steptimer support to `juice install` - Add a detailed flag and juice-core version to `display_system_info` ### Full release notes - fix(steptimer): fix live step timer for Juice CLI installation([!454](https://gitlab.com/orangeqs/juice/-/merge_requests/454)) - fix(dashboard): match temperature plot hover marker color to its line([!448](https://gitlab.com/orangeqs/juice/-/merge_requests/448)) - fix(dashboard): filter implausible temperature readings from plot([!447](https://gitlab.com/orangeqs/juice/-/merge_requests/447)) - fix(dashboard): allow configuration of dashboard log level([!451](https://gitlab.com/orangeqs/juice/-/merge_requests/451)) - fix(dashboard): round heater power setting to 3 decimals([!449](https://gitlab.com/orangeqs/juice/-/merge_requests/449)) - fix(dashboard): let time interval input clear entries newer than the given end boundary([!284](https://gitlab.com/orangeqs/juice/-/merge_requests/284)) - feat(orchestration): add steptimer to juice install([!438](https://gitlab.com/orangeqs/juice/-/merge_requests/438)) - feat(client): add detailed flag and juice-core version to display_system_info([!440](https://gitlab.com/orangeqs/juice/-/merge_requests/440)) - fix(orchestration): default mount /etc/machine-id alongside license dir([!436](https://gitlab.com/orangeqs/juice/-/merge_requests/436)) - fix(devcontainer): clear root-owned __pycache__ before uv sync on attach([!433](https://gitlab.com/orangeqs/juice/-/merge_requests/433)) - feat(dashboard): add hoverable hints to all pages([!422](https://gitlab.com/orangeqs/juice/-/merge_requests/422)) - fix(dashboard): restore blue table headers broken by get_stylesheet change([!431](https://gitlab.com/orangeqs/juice/-/merge_requests/431))
-
v26.27.0
protectedRelease: v26.27.0092f6bb3 · ·## v26.27.0 (29.06.2026) ### Fixes - General bugfixes ### Features ### Documentation - Add note to devcontainer setup docs to open VS Code within WSL ### Full release notes - fix(settings): fix default shared bucket name([!428](https://gitlab.com/orangeqs/juice/-/merge_requests/428)) - fix(orchestration): ensure lib_data is owned by juice-data([!427](https://gitlab.com/orangeqs/juice/-/merge_requests/427)) - docs(devcontainer): add note to make sure vs code is opened within wsl([!425](https://gitlab.com/orangeqs/juice/-/merge_requests/425))
-
v26.26.1
protectedRelease: v26.26.1ae7a9500 · ·## v26.26.1 (25.06.2026) ### Fixes - Fix USB passthrough default not being applied correctly in service containers - General bugfixes ### Features - Publish a base Docker image with Juice dependencies pre-installed ### Documentation - Update pub/sub tutorial to reflect current API ### Deprecations - Legacy entrypoint mechanisms for dashboard entries and client methods are deprecated ### Full release notes - fix(orchestration): apply usb_passthrough default after sentinel replacement([!423](https://gitlab.com/orangeqs/juice/-/merge_requests/423)) - feat(orchestration): publish base image with baked in juice dependencies([!416](https://gitlab.com/orangeqs/juice/-/merge_requests/416)) - refactor!: remove legacy dashboard page bokeh entry point logic([!421](https://gitlab.com/orangeqs/juice/-/merge_requests/421)) - docs(pubsub): update tutorial to match public API and add tests([!420](https://gitlab.com/orangeqs/juice/-/merge_requests/420)) - fix(pytest): add connection handshake to test_subscriptions_blocking([!419](https://gitlab.com/orangeqs/juice/-/merge_requests/419)) - refactor(client): remove juice.client entrypoint injection mechanism([!368](https://gitlab.com/orangeqs/juice/-/merge_requests/368))
-
v26.26.0
protectedRelease: v26.26.01ce6f573 · ·## v26.26.0 (19.06.2026) ### Fixes - Fix service interrupt dashboard button - General bugfixes ### Features - Add USB passthrough support for service containers - Add default Run ID configuration for the shared service - Add a validated config view command - Notify users of available Juice updates in the dashboard - Add a community button to the dashboard resources panel - Add utility to view currently active pub/sub topics ### Documentation - Minor corrections and fixes - Add a testing contributors guide ### Full release notes - feat(orchestration): add usb_passthrough option for service containers([!409](https://gitlab.com/orangeqs/juice/-/merge_requests/409)) - chore(reporting): use importlib to load themes and assets([!410](https://gitlab.com/orangeqs/juice/-/merge_requests/410)) - fix(orchestration): allow IPythonService subclasses as proxy entrypoints([!413](https://gitlab.com/orangeqs/juice/-/merge_requests/413)) - feat(orchestration): add default Run ID configuration for shared service([!414](https://gitlab.com/orangeqs/juice/-/merge_requests/414)) - fix(tests): mock system config path and skip pandoc tests when unavailable([!415](https://gitlab.com/orangeqs/juice/-/merge_requests/415)) - docs: minor corrections and fixes([!386](https://gitlab.com/orangeqs/juice/-/merge_requests/386)) - refactor(settings): strictly load orchestration settings only from system config directory([!412](https://gitlab.com/orangeqs/juice/-/merge_requests/412)) - fix(deps): unpin param and panel([!411](https://gitlab.com/orangeqs/juice/-/merge_requests/411)) - feat(config): add validated config view command([!397](https://gitlab.com/orangeqs/juice/-/merge_requests/397)) - feat(dashboard): notify users of available juice updates([!394](https://gitlab.com/orangeqs/juice/-/merge_requests/394)) - fix(dashboard): wait for interrupt_reply before closing ZMQ control channel([!408](https://gitlab.com/orangeqs/juice/-/merge_requests/408)) - feat(dashboard): add community button to resources([!406](https://gitlab.com/orangeqs/juice/-/merge_requests/406)) - feat(task-manager): track published pub/sub topics and expose via API (#329)([!395](https://gitlab.com/orangeqs/juice/-/merge_requests/395)) - fix(devcontainer): restart telegraf on container start to fix login1 race([!407](https://gitlab.com/orangeqs/juice/-/merge_requests/407)) - fix(task-manager): ensure service starts correctly by calling super().start()([!403](https://gitlab.com/orangeqs/juice/-/merge_requests/403)) - docs(contribute): add testing contributors guide([!405](https://gitlab.com/orangeqs/juice/-/merge_requests/405)) - ci(test): add test stage to release pipelines([!404](https://gitlab.com/orangeqs/juice/-/merge_requests/404))
-
v26.24.0
protectedRelease: v26.24.0a72b1b39 · ·## v26.24.0 (12.06.2026) ### Fixes - General bugfixes and dashboard notification improvements on entrypoint errors ### Features - Add CI tools for updating changelogs and generating MRs - Add defaults for services, license folder and packages ### Documentation - Publish lock file for all dependencies tested in CI for quick debugging. ### Full release notes - ci(test): add test stage to release pipelines([!404](https://gitlab.com/orangeqs/juice/-/merge_requests/404)) - fix(tooling): remove formatted release announcement generation from ci([!401](https://gitlab.com/orangeqs/juice/-/merge_requests/401)) - docs(versioning): show packaged versions([!399](https://gitlab.com/orangeqs/juice/-/merge_requests/399)) - fix(dashboard): display startup errors from tornado and bokeh entrypoints with panel notifications([!383](https://gitlab.com/orangeqs/juice/-/merge_requests/383)) - feat(orchestration): add default folder, service and packages to bare installation([!387](https://gitlab.com/orangeqs/juice/-/merge_requests/387)) - feat(ci): add job for regular changelog updates([!384](https://gitlab.com/orangeqs/juice/-/merge_requests/384)) - fix(ipython): add jupyter_client_connection_info property to KernelConnectionInfo([!398](https://gitlab.com/orangeqs/juice/-/merge_requests/398))
-
v26.23.0
protectedRelease: v26.23.06f13d089 · ·## v26.23.0 (01.06.2026) This release marks the addition of the Alert API, allowing users to configure email alerts based on any parameter monitored by the Juice system! ### Fixes - Remove .egg-info in post attach command and remove ubuntu dockerfile - Fix svg files in docs to be visible in dark mode ### Features - Add tutorial and API for setting up email alerts - Display setup name on overview page ### Documentation - Add autogenerated example toml files for all configurables ### Full release notes - feat(dashboard): display setup name on overview page([!381](https://gitlab.com/orangeqs/juice/-/merge_requests/381)) - feat(docs): add autogenerated example toml files for all configurables([!374](https://gitlab.com/orangeqs/juice/-/merge_requests/374)) - docs(images): fix svg files to be visible in dark mode([!378](https://gitlab.com/orangeqs/juice/-/merge_requests/378)) - feat(alerts): add tutorial and API for setting up email alerts([!348](https://gitlab.com/orangeqs/juice/-/merge_requests/348)) - feat(tooling): update changelog tool to also generate release announcement([!376](https://gitlab.com/orangeqs/juice/-/merge_requests/376)) - fix(devcontainer): remove .egg-info in post attach command and remove ubuntu dockerfile([!377](https://gitlab.com/orangeqs/juice/-/merge_requests/377))
-
v26.23.0a1
protectedfccd44a3 · ·## v26.23.0a1 (28.05.2026) Pre-release for testing email alert functionality
-
v26.22.0
protectedRelease: v26.22.0e8916c40 · ·## v26.22.0 (26.05.2026) This release marks the introduction of official support for debian based linux installations and python 3.14! ### Fixes - Pin Panel and Param python packages to avoid breaking issues with type validation. - Maintainers changelog generation script now fails gracefully when dealing with pre-releases. ### Features - Add API to list latest identifiers. - Add support for Python 3.14 and Debian based installations of Juice. ### Full release notes - fix(tooling): handle version detection failure gracefully in changelog tool([!373](https://gitlab.com/orangeqs/juice/-/merge_requests/373)) - refactor(client): deprecate juice.client entrypoint injection([!366](https://gitlab.com/orangeqs/juice/-/merge_requests/366)) - feat(python): add support for python 3.14([!372](https://gitlab.com/orangeqs/juice/-/merge_requests/372)) - fix(orchestration): fixed docs and package manager error([!371](https://gitlab.com/orangeqs/juice/-/merge_requests/371)) - feat(orchestration): added support for running juice on ubuntu 26.04([!367](https://gitlab.com/orangeqs/juice/-/merge_requests/367)) - feat(tooling): generate calver version and links to MR titles in changelog script([!363](https://gitlab.com/orangeqs/juice/-/merge_requests/363)) - fix(tests): pin panel and param([!370](https://gitlab.com/orangeqs/juice/-/merge_requests/370)) - feat(identifiers): add function to list latest identifiers([!369](https://gitlab.com/orangeqs/juice/-/merge_requests/369))
-
v26.21.0
protectedRelease: v26.21.0f7e507e3 · ·## v26.21.0 (18.05.2026) ### Fixes - Fixes a bug that excluded the html version from the zipped report. ### Features - Allow configuration of setup name and zest via install command. ### Full release notes - feat(zest): request consent for all users for zest integration([!341](https://gitlab.com/orangeqs/juice/-/merge_requests/341)) - fix(reporting): include html file in downloadable zip([!362](https://gitlab.com/orangeqs/juice/-/merge_requests/362))
-
v26.20.1
protectedRelease: v26.20.1452919f8 · ·## v26.20.1 (11.05.2026) ### Fixes - Set init module signal for task server correctly in an edge case - Allow loading template directories via module path instead of file path ### Full release notes - fix(ipython): set signal correctly for ipython services without init modules - fix(reporting): modified extra directory loaders to package loaders
-
v26.20.0
protectedRelease: v26.20.02c5883ec · ·## v26.20.0 (11.05.2026) ### Features - Add a hint widget for copyable code on the dashboard ### Documentation - Simplify tutorial and API for the reporting engine ### Full release notes - feat(dashboard): hint widget for dashboard elements - refactor(orchestration): expose file paths as constants for apps - style: explicit "read-only" label on influxdb2 dashboard button - chore(reporting-engine): cleanup documentation and rename schemas
-
v26.19.1
protectedRelease: v26.19.162ac9a2c · ·## v26.19.1 (06.05.2026) ### Features - Add utilities for managing run IDs. ### Documentation - Add policy and FAQ on data collection. - Add tutorial on managing identifiers. ### Full release notes - feat(identifiers): add apis for managing run IDs - docs(zest): policy and faq on telemetry
-
v26.19.0
protectedRelease: v26.19.08f7af64c · ·## v26.19.0 (04.05.2026) This release introduces a reporting engine that enables generating custom experimental reports using Markdown templates. Reports can be built using any data available in the Juice system. ### Features - Introduces report templating engine. - Add a unique setup id for each juice system and a configurable setup name. - Add scripts for generating changelogs for maintainers. ### Documentation - Add a tutorial for generating and customizing reports. ### Full release notes - feat(reporting): templating engine for custom reports - feat(orchestration): add setup name and setup id - fix(packaging): cleaning up installation docs - feat(tooling): changelog script for maintainers