Skip to content

v1.19.1

Latest

Choose a tag to compare

@github-actions github-actions released this 08 Apr 04:42
cc5c264

To learn how to install and configure OpenCue, see our Getting Started guide.

This release brings major new capabilities including a distributed scheduler written in Rust, comprehensive RQD improvements (OOM prevention, Windows support, PSS memory), CueWeb LDAP authentication, a full-stack sandbox deployment, and numerous bug fixes and stability improvements across the ecosystem.

Major Features

  • Distributed Scheduler (Beta)
    Introduced a new distributed scheduler written in Rust, enabling scalable and high-performance job dispatching with support for hardware tags, show/facility-scoped clusters, environment variables, and Sentry tracing.
    (#2104), (#2113), (#2155), (#2182), (#2188), (#2198), (#2242)

  • Event-Driven Monitoring Stack
    Added a full event-driven monitoring stack with enhanced metrics, dashboards, and comprehensive documentation.
    (#2086)

  • CueWeb LDAP Authentication
    Added LDAP authentication support for CueWeb, enabling enterprise directory integration.
    (#2096)

  • Full Stack Sandbox Deployment
    Introduced a unified Docker Compose sandbox deployment with CueWeb, REST Gateway, core-only defaults, monitoring profiles, and quick start documentation.
    (#2103), (#2110), (#2166)

  • RQD Windows Support (Release Candidate)
    Added full Windows support for RQD.
    (#2165), (#2121), (#2122)

  • Rust RQD OOM Prevention
    Added OOM prevention logic with intelligent frame kill selection and PSS memory measurement support in the Rust RQD implementation.
    (#2064), (#2067), (#2089), (#2093)

  • PSS Memory Measurement
    Added option to measure process memory using PSS (Proportional Set Size) and store PSS/MaxPSS values across Cuebot, CueGUI, PyCue, and RQD.
    (#2089), (#2112)

  • Booking Show:Facility Exclusion List
    Added the ability to configure booking exclusion lists per show and facility.
    (#2087)

  • External Facility Feature
    Added external facility support in PyCue and CueGUI.
    (#2248)

  • Filter Actions for UTIL and PRE Layers
    Added cue filter actions for UTIL and PRE layer types with support for multiple delimiters in filter action tag parsing.
    (#2050), (#2048)

User Interface and Usability

  • CueGUI

    • Replaced NodeGraphQtPy with the upstream NodeGraphQt library
      (#2040)
    • Added User Color sorting in Cuetopia job monitor
      (#2176)
    • Fixed gRPC CANCELLED errors causing UI refresh failures
      (#2042), (#2079)
    • Fixed UI freeze on gRPC connection drops with job unavailable notification
      (#2143)
    • Fixed LLU and Last Line columns not populating on large jobs
      (#2044)
    • Fixed AttributeError when assigning local cores from layers/frames
      (#2052)
    • Fixed ETA calculation type error and UTF-8 decoding
      (#2119)
    • Fixed layer tags validation to allow dashes and underscores
      (#2120)
    • Fixed CueJobMonitorTree not refreshing on property changes
      (#2100)
    • Made job-not-found popup notification configurable, default off
      (#2199)
    • Fixed max_cores bug
      (#2222)
    • Added PSS and MaxPSS display support
      (#2112)
  • CueNIMBY

    • Enhanced system tray with OpenCue icons, emoji status, and connectivity awareness
      (#2061)
    • Made CueGUI launch command and menu label configurable
      (#2232)
    • Fixed operation on headless Linux render nodes (editor, notifications, threading)
      (#2237), (#2234)
    • Load default config from JSON file instead of hardcoding
      (#2244)

Scheduler Improvements

  • Distributed scheduler with show migration support
    (#2104), (#2182)
  • Bulk resource accounting
    (#2198)
  • Add job and layer environment variables to frames
    (#2161)
  • Scope manual/hostname/hardware tag clusters to show and facility
    (#2188)
  • Improved scheduler metrics
    (#2178)
  • Allow jobs without an OS constraint to dispatch
    (#2246)
  • Added Sentry tracing and sqlx warnings as Sentry events
    (#2242), (#2250)
  • Fixed race condition in multi-scheduler environments
    (#2191)
  • Fixed single-threaded bug, datatype errors, and memory value calculations
    (#2220), (#2162), (#2163), (#2241)

RQD Improvements

  • Rust RQD:
    • Kill all frames when host becomes nimby_locked
      (#2057)
    • OOM prevention with kill frame selection and PSS memory measurement
      (#2064), (#2089)
    • Fixed memory bug on OOM killed frames and process cache/timeout
      (#2093), (#2160)
    • Replaced Python RQD with Rust RQD in Docker stack
      (#2227)

Cuebot Improvements

  • Added scheduled subscription recalculation task
    (#2134)
  • Added spring-boot-starter-mail dependency
    (#2156)
  • Allow customizing the output_path for EmailSupport
    (#2153)
  • DB optional environment variables for custom deployments
    (#2076)
  • VirtualProc allows cores above predefined max
    (#2223)
  • Improved nimby retry logic
    (#2169)
  • Updated Dockerfile to use openjdk:18-ea-18-slim-bullseye
    (#2074)
  • Fixed stuck depend frames on transient failures
    (#2201)
  • Fixed hardware tags update on host restart
    (#2125)
  • Fixed race condition when updating host.int_mem_idle
    (#2217)
  • Recover lost dependencies
    (#2219)
  • Only replace username once on PostJobs
    (#2088)
  • Removed unused threadpool properties
    (#2204)

Documentation and Ecosystem

  • Documentation:

    • Added comprehensive documentation for the new scheduler module
      (#2113)
    • Added comprehensive documentation for PyOutline and PyCuerun
      (#2212)
    • Added AI policy to developer guide
      (#2228)
    • Added 2026 project update news
      (#2154)
    • Front page design improvements
      (#2205)
    • Fixed broken www.opencue.io links
      (#2197)
    • Added Docker setup for building documentation
      (#2130)
    • Updated CueWeb documentation with correct healthcheck using wget
      (#2132)
    • Added nav_order management utilities for documentation
      (#2055)
  • Docker and Deployment:

    • Unified Docker Compose stack with core-only defaults and monitoring profiles
      (#2166)
    • Updated docker compose with newer versions and profiles
      (#2175)
    • Removed redundant sandbox compose files, switched to named Docker volumes
      (#2208)
    • Replaced Python RQD with Rust RQD in Docker stack
      (#2227)

Changes:

  • c7a3cbb [docs] Update documentation version to 1.13.8 and add release notes (#2038)
  • f96a852 [cuegui] Replace NodeGraphQtPy with NodeGraphQt (#2040)
  • 55a90b3 [ci] Add Apache-2.0 license metadata to package pyproject.toml files and license check (#2039)
  • 5a57381 [cuegui] Fix AttributeError when assigning local cores from layers/frames (#2052)
  • 1be2602 [cuegui] Handle gRPC CANCELLED errors to fix UI refresh issues (#2042)
  • cc83b7c [cuegui] Fix LLU and Last Line columns not populating on large jobs (#2044)
  • 97cf3e5 [cuebot] Support multiple delimiters in filter action tag parsing (#2048)
  • 747474f [cuebot/cuegui/pycue/cueadmin] Add cue filter actions for UTIL and PRE layers (#2050)
  • 942ef70 [docs] Add nav_order management utilities for documentation (#2055)
  • f6018c9 [rust/rqd] Trigger a kill_all_frames action when a host becomes nimby_locked (#2057)
  • 5b2c8da Update Slack channel link in README (#2059)
  • 0bf7e2c [cuegui/docs] Fix EnableJobInteraction setting type handling (#2060)
  • 21bc549 [rust/rqd] Add OOM prevention logic with kill frame selection (#2064)
  • 0e758f4 [rust/rqd] Version Up rust/rqd (#2066)
  • 34f4fd8 [rust/rqd] Log OOM kill on rqd (#2067)
  • 271e69a [cuenimby] Add Enhanced CueNimby System Tray with OpenCue Icons, Emoji Status, and Connectivity Awareness (#2061)
  • c879f4e [cuenimby] Fix working icon description in documentation (#2070)
  • 016ea06 Bump next-auth from 4.24.10 to 4.24.12 in /cueweb (#2068)
  • 22c9cd9 Fix PyOutline package name typo in installation docs (#2071)
  • fe9610b [cuebot] Update Dockerfile to use openjdk:18-ea-18-slim-bullseye image (#2074)
  • a5827b8 [pycue] Remove six and unpin PyYaml (#2072)
  • 1705100 [cuebot] DB optional env vars to streamline custom deployment (#2076)
  • 90d2d17 [cuegui] Add error handling for gRPC connection failures in FrameMonitor (#2079)
  • 648191d Bump glob from 10.4.5 to 10.5.0 in /cueweb (#2080)
  • b5959bb Bump js-yaml in /cueweb (#2081)
  • b00240b [pyoutline] Layer module cleanup (#2073)
  • 7a15bed [Cuebot] Add booking show:facility exclusion list (#2087)
  • 89ddcaf [cuebot] Only replace username once on PostJobs (#2088)
  • 5e374a8 [rust/rqd] Add option to measure proc memory using PSS (#2089)
  • fa916ff [docs] Move theme toggle (sun icon) into header (#2090)
  • 8597e82 [docs] Fix theme toggle not displaying due to duplicate const declara… (#2092)
  • 084506c [rust/rqd] Fix memory bug on OOM killed frames (#2093)
  • 6d381df Bump jws from 3.2.2 to 3.2.3 in /cueweb (#2094)
  • 64a133a [cueweb] Add CueWeb LDAP Authentication (#2096)
  • dcf346c [cuegui] Fix CueJobMonitorTree not refreshing on property changes (#2100)
  • c78ad97 [ci/cueweb/rest_gateway] Add Docker build jobs for cueweb and rest_gateway (#2098)
  • 7372825 [ci/rust] Upgrade CI/CD macOS runners from macos-13 to macos-14 (#2099)
  • e143627 [sandbox/docs/cueweb/rest_gateway] Add full stack sandbox deployment with CueWeb and REST Gateway (#2103)
  • 9737ec5 Bump next from 14.2.32 to 14.2.35 in /cueweb (#2109)
  • 74683bd [sandbox/rest_gateway] Fix Docker build compatibility for ARM64 and health checks (#2110)
  • 5b8b02d [cuebot/pycue/proto/sandbox/docs] Add full event-driven monitoring stack, enhance metrics, dashboards, and documentation (#2086)
  • 515b701 [rust/scheduler] Distributed Scheduler (#2104)
  • 4f7e983 [scheduler/docs] Add docs for the new scheduler module (#2113)
  • 2d2ce13 [rust] Add Copyright header on all rust files (#2114)
  • 3599a1e [cuegui] Fix ETA calculation type error and UTF-8 decoding in FrameMonitorTree (#2119)
  • ce61412 [cuegui] Fix layer tags validation to allow dashes and underscores (#2120)
  • 8b39636 [RQD][FIX] Remove code duplication (#2123)
  • b6633a3 docs: add Docker setup for building documentation (#2130)
  • 9d7fafc [cueweb/docs] Update cueweb documentation with correct healthcheck using wget instead of curl (#2132)
  • 081cbc1 Bump uri from 1.0.3 to 1.0.4 in /docs (#2135)
  • 5519f7d [docs] Revert uri gem to 1.0.3 in Gemfile.lock (#2136)
  • aba6471 [docs] Remove obsolete version attribute from docker-compose.yml (#2137)
  • ce6a8ff [RQD][FIX] Fix hyperthreading cores reservation (#2124)
  • b81ba27 [RQD][FIX] Skip os.chown for Windows (#2122)
  • 624775b [RQD][FIX] Windows log rotation retries (#2121)
  • 2a27f49 [cuebot/cuegui/pycue/rqd] Store PSS and MaxPSS (#2112)
  • 55e4c98 [rust] Enforce home version to stay compatible with rust 187 (#2145)
  • 71ef981 [rqd/cicd] Only build rqd crate when packaging rqd binary (#2149)
  • 8ec37c7 [cuebot][FIX] Hardware tags update on Host restart (#2125)
  • 01bd30d [pycue] Fix service timeout LLU getter (#2146)
  • c4b0cac [cuegui/cuebot] Fix UI freeze on gRPC connection drops and add job unavailable notification (#2143)
  • 453d6f4 [cuebot] Add scheduled subscription recalculation task (#2134)
  • f926ca1 [rqd] Fix race condition for ultrafast frames (#2157)
  • 94f26f3 [scheduler] Add job and layer envs to frame (#2161)
  • b46e170 [scheduler] Fix datatype error on layer_dao (#2162)
  • cafca69 [scheduler] Fix memory values on env vars (#2163)
  • bda23e2 [docker/ci/docs] Introduce unified Docker Compose stack with core-only defaults, monitoring, and quick start documentation (#2166)
  • 0435d35 [cuebot] Add spring-boot-starter-mail into gradle dependencies (#2156)
  • 9f333ca [scheduler] Add hardware tags to rust scheduler (#2155)
  • 777d05e [docs] Add 2026 project update news and automate nav_order management (#2154)
  • b8396bb [ci/docs] Fix permission denied error in docs pipeline (#2170)
  • 57234a2 [cuebot] Improve nimby retry logic (#2169)
  • bad9191 [ci/docs] Fix docs pipeline build failure and path references (#2171)
  • 69ad038 [cuegui] Add User Color sorting in Cuetopia job monitor (#2176)
  • 35080d9 [docker] Remove prometheus exporter (#2179)
  • a22f024 [Scheduler/Cuebot] Allow entire show migration to new scheduler (#2182)
  • 0da9c5e [rust/rqd] Fix process cache and timeout feature (#2160)
  • 9a0db7a [cuebot] Allow customizing the output_path for EmailSupport (#2153)
  • 50c7a7a [scheduler] Improve scheduler metrics (#2178)
  • e8d55d4 [Scheduler] Scope manual/hostname/hardware tag clusters to show and facility (#2188)
  • f075786 [docs] Fix broken www.opencue.io links to use docs.opencue.io (#2197)
  • 66783c4 [cuegui] Make job-not-found popup notification configurable, default off (#2199)
  • f6ecd97 [scheduler] Fix race condition in multi-scheduler environments. (#2191)
  • b9669ed [Cuebot] Fix stuck depend frames on transient failures (#2201)
  • ec6fae9 [docs] Front page Design improvements (#2205)
  • b5f90c1 [docker] Update docker compose with newer versions and add profiles (#2175)
  • bfd92f2 [docs/docker/ci] Remove redundant sandbox compose files and update to named Docker volumes (#2208)
  • 5e58c02 [docs] Fix docs content spacing (#2210)
  • 5928e2d [rqd] Add CUE_HT env to hyperthreaded frames (#2207)
  • 9cc2ef6 [pyoutline] Allow adding or overriding outline modules via environment variable (#2193)
  • 6078c54 [Cuebot] Remove unused threadpool properties (#2204)
  • 42a48ed [rqd] Fix available memory calculation error (#2211)
  • 7e268fb [Cuebot] Fix possible race condition when updating host.int_mem_idle (#2217)
  • eb5ed41 [cuebot] Recover lost dependencies (#2219)
  • 51392d9 [scheduler] Fix single-threaded bug (#2220)
  • ea033f6 [cuegui] fix max_cores bug (#2222)
  • b1e1837 [cuebot] VirtualProc allows cores above predefined max (#2223)
  • 0d9b7cb [cuenimby] Make CueGUI launch command and menu label configurable (#2232)
  • 609c939 [cuenimby] Fix config file open and notifications on headless render nodes (#2234)
  • 42a17d9 Update PULL_REQUEST_TEMPLATE.md (#2229)
  • c08d809 [docs] Add ai-policy to developer-guide docs (#2228)
  • b263931 [cuenimby] Fix CueNIMBY on headless Linux: editor, notifications, threading, frame info (#2237)
  • 851d89b [scheduler] Fix memory_reserved divided by KIB instead of KB (#2241)
  • 022f857 [docs] Add comprehensive documentation for PyOutline and PyCuerun (#2212)
  • 2ba7434 [pyoutline/rqd] Add pycuerun entry point, fix CLI bugs, and improve sandbox support (#2215)
  • 5e5914b [rqd] Add windows support (#2165)
  • ee9af69 [scheduler] Add sentry tracing (#2242)
  • 487a92b [rqd/cicd] Replace python/rqd by rust/rqd on docker stack (#2227)
  • 0b850e3 [cuenimby] Load CueNIMBY default config from JSON file instead of hardcoding (#2244)
  • f5fe0b1 [pycue/cuegui] Add external facility feature (#2248)
  • a94e690 [cicd] Increase sonarqube memory (#2249)
  • 8d306ac [scheduler] Allow jobs without an OS constraint to dispatch (#2246)
  • a008061 [rqd] Add config option for default NIMBY lock at startup (#2247)
  • 86b9164 [scheduler/cuebot] Bulk resource accounting (#2198)
  • cc5c264 [scheduler] Add sqlx warnings as sentry events (#2250)