Skip to content

Add monsta_venv bundle and Windows client documentation; apply cuegui fixes (closes #5)#7

Open
Copilot wants to merge 21 commits intopipeline-mainfrom
copilot/windows-deployement
Open

Add monsta_venv bundle and Windows client documentation; apply cuegui fixes (closes #5)#7
Copilot wants to merge 21 commits intopipeline-mainfrom
copilot/windows-deployement

Conversation

Copy link

Copilot AI commented Nov 27, 2025

Fixes #5

Summarize your change.

Adds Windows deployment support with portable Python 3.9 environment bundle and documentation. Addresses the Python 3.9 requirement for Windows client components.

  • docs/Windows.md - Two-step deployment flow:

    1. deploy_opencue_windows.ps1 - environment setup
    2. start_opencue_env.ps1 - launch applications
    • Includes troubleshooting, verification, and IPv6 configuration notes
  • monsta_venv/ - Portable Python 3.9 bundle with pre-installed dependencies (PySide6, gRPC, pycue, pyoutline, cuegui, cuesubmit)

  • Static version pinning (commit 56ad287) - Uses static version 1.13.8 instead of dynamic git-based versioning, enabling deployment on machines without git. Also fixes IPv6 binding.

  • CueGUI improvements - UI fixes and gRPC error handling for connection interruptions

  • Blender plugin - OpenCue farm submission integration for Blender

README.md unchanged from master as requested.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com//advisories
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node /home/REDACTED/work/_temp/ghcca-node/node/bin/node --enable-source-maps /home/REDACTED/work/_temp/copilot-developer-action-main/dist/index.js (http block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

Objective: Create a pull request that closes issue #5 (Windows client components require Python 3.9 environment) by using the existing windows-deployement branch.

Repository: ddlite92/OpenCue

Context and requirements (from user):

  • Use the existing branch windows-deployement (do NOT create a new branch).
  • The windows-deployement branch already contains monsta_venv with the necessary files; do NOT re-add monsta_venv.
  • Ensure commit 56ad287 (feat: static versions and deployment packages for windows deployment) that fixes IPv6 binding is present on the branch and included in the PR.
  • Apply provided fixes to cuegui/cuegui and commit them with message: "Update OpenCue UI and backend improvements" if those fixes are not already present on the branch.
  • Add a new documentation file docs/Windows.md with the following instructions (two-step flow): run deploy_opencue_windows.ps1, then start_opencue_env.ps1. Include troubleshooting and verification sections. The user provided the exact content to use.
  • Do NOT modify README.md; keep README.md from master as-is.
  • Open a pull request from windows-deployement into master with title: "Add monsta_venv bundle and Windows client documentation; apply cuegui fixes (closes Windows client components require Python 3.9 environment #5)" and a description that references and closes issue Windows client components require Python 3.9 environment #5 and notes that commit 56ad287 fixes IPv6 binding.

Acceptance criteria:

  • A pull request is opened from windows-deployement into master that includes:
    • docs/Windows.md file added with the user-approved content (deploy_opencue_windows.ps1 then start_opencue_env.ps1 instructions).
    • cuegui/cuegui fixes committed with message: "Update OpenCue UI and backend improvements" (if they were not already present).
    • commit 56ad287 is present on the branch and included in the PR.
    • monsta_venv is present on the windows-deployement branch (do not re-add it).
    • README.md is NOT modified in this PR.
  • The PR description references and closes issue Windows client components require Python 3.9 environment #5 and mentions the IPv6 binding fix (56ad287).

Notes for the agent performing git operations:

  • Verify the windows-deployement branch exists and use it as the source branch for the PR.
  • If cuegui/cuegui files differ from the provided fixes, apply the exact files from the user's cuegui/cuegui folder and commit with the specified commit message.
  • Add docs/Windows.md file at repository root with the provided content.
  • Do not change README.md.
  • Create the PR targeting the master branch with the title above and body referencing/closes Windows client components require Python 3.9 environment #5 and noting commit 56ad287.

This task was requested by GitHub user ddlite92. Please proceed and create the pull request.

This pull request was created as a result of the following prompt from Copilot chat.

Objective: Create a pull request that closes issue #5 (Windows client components require Python 3.9 environment) by using the existing windows-deployement branch.

Repository: ddlite92/OpenCue

Context and requirements (from user):

  • Use the existing branch windows-deployement (do NOT create a new branch).
  • The windows-deployement branch already contains monsta_venv with the necessary files; do NOT re-add monsta_venv.
  • Ensure commit 56ad287 (feat: static versions and deployment packages for windows deployment) that fixes IPv6 binding is present on the branch and included in the PR.
  • Apply provided fixes to cuegui/cuegui and commit them with message: "Update OpenCue UI and backend improvements" if those fixes are not already present on the branch.
  • Add a new documentation file docs/Windows.md with the following instructions (two-step flow): run deploy_opencue_windows.ps1, then start_opencue_env.ps1. Include troubleshooting and verification sections. The user provided the exact content to use.
  • Do NOT modify README.md; keep README.md from master as-is.
  • Open a pull request from windows-deployement into master with title: "Add monsta_venv bundle and Windows client documentation; apply cuegui fixes (closes Windows client components require Python 3.9 environment #5)" and a description that references and closes issue Windows client components require Python 3.9 environment #5 and notes that commit 56ad287 fixes IPv6 binding.

Acceptance criteria:

  • A pull request is opened from windows-deployement into master that includes:
    • docs/Windows.md file added with the user-approved content (deploy_opencue_windows.ps1 then start_opencue_env.ps1 instructions).
    • cuegui/cuegui fixes committed with message: "Update OpenCue UI and backend improvements" (if they were not already present).
    • commit 56ad287 is present on the branch and included in the PR.
    • monsta_venv is present on the windows-deployement branch (do not re-add it).
    • README.md is NOT modified in this PR.
  • The PR description references and closes issue Windows client components require Python 3.9 environment #5 and mentions the IPv6 binding fix (56ad287).

Notes for the agent performing git operations:

  • Verify the windows-deployement branch exists and use it as the source branch for the PR.
  • If cuegui/cuegui files differ from the provided fixes, apply the exact files from the user's cuegui/cuegui folder and commit with the specified commit message.
  • Add docs/Windows.md file at repository root with the provided content.
  • Do not change README.md.
  • Create the PR targeting the master branch with the title above and body referencing/closes Windows client components require Python 3.9 environment #5 and noting commit 56ad287.

This task was requested by GitHub user ddlite92. Please proceed and create the pull request.


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

DiegoTavares and others added 15 commits October 27, 2025 08:13
…ySoftwareFoundation#2064)

Implement a new OOM (Out-Of-Memory) prevention module that proactively
kills frames when memory usage exceeds configured thresholds, preventing
system-wide OOM killer from terminating the RQD process.

When memory usage exceeds `memory_oom_margin_percentage` (default 96%),
the system calculates a target memory level (5% below the threshold) and
selects frames to kill to reach that target safely.

Frame Selection Algorithm -------------------------

Frames are sorted using a multi-criteria scoring system that balances
three factors:

1. **Memory Impact (weight: 10x)** 
- Measures absolute memory savings: consumed_memory /
total_memory_consumed
- Prioritizes frames that will free the most system memory - Normalized
to [0,1] range by dividing by the maximum memory impact

3. **Overboard Rate (weight: 7x)** 
- Measures relative excess: (consumed - limit) / limit 
- Targets frames most aggressively exceeding their soft limits 
- A frame using 10GB with a 1GB limit (900% over) has higher overboard
rate than one using 60GB with a 50GB limit (20% over) - Normalized to
[0,1] range by dividing by the maximum overboard rate

5. **Duration Rate (weight: 12x - highest)** 
- Prefers killing more recent frames: (max_duration - frame_duration) /
max_duration
- Minimizes wasted compute by preserving long-running frames 
- Inverted scale: newer frames score higher - Normalized to [0,1] range

Each frame receives a composite score calculated as: score =
(memory_impact × 10) + (overboard_rate × 7) + (duration_rate × 12)

All metrics are normalized before weighting to ensure each factor
contributes meaningfully regardless of absolute values. This prevents a
frame with very high memory usage from completely dominating the score,
allowing the algorithm to balance all three criteria.

The algorithm sorts frames by descending score and kills them
iteratively until enough memory is freed to reach the target level. This
conservative approach avoids unnecessary termination while effectively
preventing OOM.

The weighting scheme reflects production priorities: 
- Duration (12x): Preserve investment in long-running frames 
- Memory Impact (10x): Maximize immediate memory relief 
- Overboard Rate (7x): Discourage limit violations

Implementation includes comprehensive test coverage validating: 
- Threshold triggering behavior 
- Target memory calculation 
- Single and multi-frame selection 
- Each scoring criterion independently
- Normalized scoring with edge cases 
- Stop-when-sufficient-memory-freed logic
The last PR should failed to version up the component it had modified
Related to AcademySoftwareFoundation#2064 , which handles killing frames but fails to log its
actions.
…i Status, and Connectivity Awareness (AcademySoftwareFoundation#2061)

**Link the Issue(s) this Pull Request is related to.**
- AcademySoftwareFoundation#2069
- AcademySoftwareFoundation#1800
- AcademySoftwareFoundation#2054

**Summarize your change.**

This PR modernizes CueNIMBY with a Qt6-based system tray, professional
icons, enhanced status detection, and comprehensive documentation.

**CueNIMBY Application Changes:**
- Added professional icons featuring the OpenCue logo for all status
states
- Migrated backend from pystray to Qt6 QSystemTrayIcon for native
cross-platform support
- Added emoji status hints (🔒❌⚠️🔧) in notifications and tooltips for
quick visual recognition
- Implemented resilient connection: starts even when CueBot is
unreachable and reconnects automatically
- Enhanced status detection with distinct states:
    - STARTING, AVAILABLE, WORKING, NIMBY_LOCKED, HOST_LOCKED, HOST_DOWN
- CUEBOT_UNREACHABLE (new), NO_HOST (new), HOST_LAGGING (new), REPAIR
(new), UNKNOWN
- Added intelligent menu states: options appear disabled when actions
cannot be performed
- New "Launch CueGUI" menu item for quick access to CueGUI (disabled
when not available)
- New "Open Config File" menu item to edit configuration directly from
tray
- Enhanced "About" dialog showing CueBot address, monitored hostname,
and version
- Improved notifications with helpful troubleshooting information about
CueBot and RQD status
- Moved config file path to `~/.config/opencue/cuenimby.json` to align
with other OpenCue modules
- Added CueNIMBY to CI test pipeline

**Documentation Changes:**
- Updated all CueNIMBY documentation with Qt6 architecture and new
features
- Added platform-specific screenshots (macOS and Windows) to 3 key
documentation files:
    - `quick-start-cuenimby.md`: Setup and common issues
    - `cuenimby-tutorial.md`: Step-by-step configuration with visuals
    - `cuenimby-user-guide.md`: Menu features and troubleshooting
- Created visual icon gallery showing all professional OpenCue icons
across documentation
- Added new developer guide: `hybrid-rqd-setup.md` with complete
instructions for:
    - Running CueBot in Docker alongside native RQD instances
    - Platform-specific setup for macOS, Windows, and Linux
    - Port configuration to avoid Docker/native RQD conflicts
    - Testing CueNIMBY in realistic hybrid environments
- Updated `cuenimby/README.md` with comprehensive feature list and icon
reference
- Updated NIMBY concepts documentation with enhanced status explanations
- All documentation uses Jekyll absolute paths for proper rendering

**Configuration Changes:**
- Added Linux RQD configuration example: `sandbox/rqd_linux.conf`
- Updated hybrid RQD setup guide with Linux support alongside macOS and
Windows
- Configuration files now include NIMBY settings optimized for
workstation testing

**Assets:**
- Added 9 professional PNG icons with OpenCue logo to
`cuenimby/cuenimby/icons/`
- Added 17 macOS screenshots showing all status states and menu options
- Added 10 Windows screenshots for cross-platform documentation coverage

Co-authored-by: Kern Attila GERMAIN
<5556461+KernAttila@users.noreply.github.com>
Co-authored-by: Ramon Figueiredo <rfigueiredo@imageworks.com>

---------

Co-authored-by: Jimmy Christensen <Lithorus@gmail.com>
Co-authored-by: Ramon Figueiredo <rfigueiredo@imageworks.com>
…wareFoundation#2070)

**Link the Issue(s) this Pull Request is related to.**
- AcademySoftwareFoundation#2061

**Summarize your change.**

Update all CueNIMBY documentation to accurately describe the working
state icon as having a red dot in center rather than being blue. This
better represents a "busy" state visually.

Changes made across 8 documentation files:
- 🔴 **Working** (`opencue-working.png`): Currently rendering frames (red
dot in center)
- Updated emoji from 🔵 to 🔴 in state descriptions
- Changed "Blue icon" to "Icon with red dot in center" in icon galleries
- Fixed "turns blue" to "shows red dot in center" in tutorials
- Corrected "Checked (🟢/🔵)" to "Checked (🟢/🔴)" in user guide
- Added clarification "(red dot in center)" where appropriate

Updated files:
- cuenimby/README.md
- docs/_docs/concepts/nimby.md
- docs/_docs/developer-guide/cuenimby-development.md
- docs/_docs/other-guides/desktop-rendering-control.md
- docs/_docs/quick-starts/quick-start-cuenimby.md
- docs/_docs/reference/tools/cuenimby.md
- docs/_docs/tutorials/cuenimby-tutorial.md
- docs/_docs/user-guides/cuenimby-user-guide.md
…ndation#2068)

Bumps [next-auth](https://github.com/nextauthjs/next-auth) from 4.24.10
to 4.24.12.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/nextauthjs/next-auth/commit/1f48cf7cbbc43517174cb47b4eb5dd402025c8b7"><code>1f48cf7</code></a>
chore(release): bump version [skip ci]</li>
<li><a
href="https://github.com/nextauthjs/next-auth/commit/4758a2f1ff185c9759df0c558b03fe931920d0a5"><code>4758a2f</code></a>
ci: add <code>workflow_dispatch</code> for release.yml</li>
<li><a
href="https://github.com/nextauthjs/next-auth/commit/d3aecfe1f150434e1cfff21c291277137266827a"><code>d3aecfe</code></a>
feat: add next 16 support (<a
href="https://redirect.github.com/nextauthjs/next-auth/issues/13303">#13303</a>)</li>
<li><a
href="https://github.com/nextauthjs/next-auth/commit/82efcf81f218aae43683f8dd2f7c260ef69b3ece"><code>82efcf8</code></a>
fix: security issue from <code>nodemailer</code> (<a
href="https://redirect.github.com/nextauthjs/next-auth/issues/13304">#13304</a>)</li>
<li><a
href="https://github.com/nextauthjs/next-auth/commit/798c3d59274cddc5ad22d4a68c211736f0deb191"><code>798c3d5</code></a>
docs: update banner</li>
<li><a
href="https://github.com/nextauthjs/next-auth/commit/02d3480f8d8405af52eaa0cdc2f8f75bb7e8b4e8"><code>02d3480</code></a>
chore: remove clerk ads</li>
<li><a
href="https://github.com/nextauthjs/next-auth/commit/7f88fa0ba97e7aab43c931dfe674e51748723da3"><code>7f88fa0</code></a>
chore: remove sponsors</li>
<li><a
href="https://github.com/nextauthjs/next-auth/commit/46e01af41fc028f22322f225f4f03c0dce069035"><code>46e01af</code></a>
chore(docs): update credentials.md app router route.js filename (<a
href="https://redirect.github.com/nextauthjs/next-auth/issues/13025">#13025</a>)</li>
<li><a
href="https://github.com/nextauthjs/next-auth/commit/11939f2f70495c0408d0187dbfa0741fdd5916e6"><code>11939f2</code></a>
feat(core): add default cache control headers for GET endpoints (<a
href="https://redirect.github.com/nextauthjs/next-auth/issues/12627">#12627</a>)</li>
<li><a
href="https://github.com/nextauthjs/next-auth/commit/918a6ac37beb766402940db64584df407668bbea"><code>918a6ac</code></a>
docs: Update FAQ with <code>allowDangerousEmailAccountLinking</code> (<a
href="https://redirect.github.com/nextauthjs/next-auth/issues/12586">#12586</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/nextauthjs/next-auth/compare/next-auth@4.24.10...next-auth@4.24.12">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~himself_65">himself_65</a>, a new releaser
for next-auth since your current version.</p>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=next-auth&package-manager=npm_and_yarn&previous-version=4.24.10&new-version=4.24.12)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/AcademySoftwareFoundation/OpenCue/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ramon Figueiredo <rfigueiredo@imageworks.com>
…Foundation#2071)

**Link the Issue(s) this Pull Request is related to.**
Fixes AcademySoftwareFoundation#2065

**Summarize your change.**
This PR fixes a typo in the PyOutline installation documentation where
the package name was misspelled as `opencue-pyotline` instead of
`opencue-pyoutline`.

**Changes made:**
- Changed `opencue-pyotline` to `opencue-pyoutline` in
`/docs/_docs/getting-started/installing-pycue-and-pyoutline.md`

**Why this change is needed:**
The current documentation shows an incorrect command that results in a
package not found error when users try to install PyOutline. This
prevents users from successfully setting up OpenCue components.

**Testing performed:**
- Verified that `pip install opencue-pyoutline` works correctly
- Confirmed that `pip install opencue-pyotline` produces the expected
package not found error
- The change is a straightforward documentation correction with no
functional code changes
AcademySoftwareFoundation#2074)

Looks like the tags for openjdk has been renamed/updated.

This updates the cuebot image to use `openjdk:18-ea-18-slim-bullseye`
instead of `openjdk:18-slim-bullseye`
**Summary**
Clean up pycue dependencies.

**Changes**
- Remove six, which is now unused (fully Python 3).
- Unpin PyYAML and constrain it to a minimal version of 6.0.1 instead of
pinning it.

**Rationale**

- Six: It pollutes dependency resolution and is no longer needed (as per
AcademySoftwareFoundation#1723).
- PyYAML: Pinning dependencies (==) can cause conflicts in complex
client environments that rely on many packages. Using a minimal version
constraint (>=) ensures compatibility while allowing flexible dependency
resolution across projects.


**Side note**
Future: Not modified, as it is a stable package with infrequent changes.
See [PyPI release history](https://pypi.org/project/future/#history)
 for reference.
…ySoftwareFoundation#2076)

**Summary**
Add the possibility to set optional env vars to connect to the db.

**Changes**
In the `opencue.properties` file, add 3 new environment variables to
simplify the deployment:

`CUEBOT_DB_URL`: URL of the Postgres database.
`CUEBOT_DB_USER`: the username to use to connect to the Postgres
database
`CUEBOT_DB_PASSWORD`: the password to use to connect to the Postgres
database

Those environment variables are optional. Default behavior stays
unchanged.

**Why**
Streamline custom config of cuebot and db setup on client side.

**Feedback**
Any documentation you would recommend updating?
…tor (AcademySoftwareFoundation#2079)

**Link the Issue(s) this Pull Request is related to.**
- AcademySoftwareFoundation#2078

**Summarize your change.**
When gRPC connections are interrupted or reset by the network/load
balancer, CueGUI would freeze and display "rpcObjects is None" errors,
requiring users to restart the application.

This change adds graceful error handling to _filterLayersUpdate() and
_frameRangeSelectionFilterUpdate() to catch grpc.RpcError exceptions and
allow the UI to continue functioning.

Changes:
- Import grpc module in FrameMonitor.py
- Wrap getLayers() calls in try/except blocks
- Log appropriate warnings for connection interruptions
- Return empty lists on failure to allow graceful degradation
- UI remains responsive and auto-recovers when connection is restored

This follows the same error handling pattern already used in
FrameMonitorTree._getUpdate() and _getUpdateChanged().
…#2080)

Bumps [glob](https://github.com/isaacs/node-glob) from 10.4.5 to 10.5.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/isaacs/node-glob/commit/56774ef73b495eb0b17cdd0f42921f5ef62297c1"><code>56774ef</code></a>
10.5.0</li>
<li><a
href="https://github.com/isaacs/node-glob/commit/1e4e297342a09f2aa0ced87fcd4a70ddc325d75f"><code>1e4e297</code></a>
bin: Do not expose filenames to shell expansion</li>
<li>See full diff in <a
href="https://github.com/isaacs/node-glob/compare/v10.4.5...v10.5.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=glob&package-manager=npm_and_yarn&previous-version=10.4.5&new-version=10.5.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/AcademySoftwareFoundation/OpenCue/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ramon Figueiredo <rfigueiredo@imageworks.com>
Bumps and [js-yaml](https://github.com/nodeca/js-yaml). These
dependencies needed to be updated together.
Updates `js-yaml` from 3.14.1 to 3.14.2
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md">js-yaml's
changelog</a>.</em></p>
<blockquote>
<h2>[3.14.2] - 2025-11-15</h2>
<h3>Security</h3>
<ul>
<li>Backported v4.1.1 fix to v3</li>
</ul>
<h2>[4.1.1] - 2025-11-12</h2>
<h3>Security</h3>
<ul>
<li>Fix prototype pollution issue in yaml merge (&lt;&lt;)
operator.</li>
</ul>
<h2>[4.1.0] - 2021-04-15</h2>
<h3>Added</h3>
<ul>
<li>Types are now exported as <code>yaml.types.XXX</code>.</li>
<li>Every type now has <code>options</code> property with original
arguments kept as they were
(see <code>yaml.types.int.options</code> as an example).</li>
</ul>
<h3>Changed</h3>
<ul>
<li><code>Schema.extend()</code> now keeps old type order in case of
conflicts
(e.g. Schema.extend([ a, b, c ]).extend([ b, a, d ]) is now ordered as
<code>abcd</code> instead of <code>cbad</code>).</li>
</ul>
<h2>[4.0.0] - 2021-01-03</h2>
<h3>Changed</h3>
<ul>
<li>Check <a
href="https://github.com/nodeca/js-yaml/blob/master/migrate_v3_to_v4.md">migration
guide</a> to see details for all breaking changes.</li>
<li>Breaking: &quot;unsafe&quot; tags <code>!!js/function</code>,
<code>!!js/regexp</code>, <code>!!js/undefined</code> are
moved to <a
href="https://github.com/nodeca/js-yaml-js-types">js-yaml-js-types</a>
package.</li>
<li>Breaking: removed <code>safe*</code> functions. Use
<code>load</code>, <code>loadAll</code>, <code>dump</code>
instead which are all now safe by default.</li>
<li><code>yaml.DEFAULT_SAFE_SCHEMA</code> and
<code>yaml.DEFAULT_FULL_SCHEMA</code> are removed, use
<code>yaml.DEFAULT_SCHEMA</code> instead.</li>
<li><code>yaml.Schema.create(schema, tags)</code> is removed, use
<code>schema.extend(tags)</code> instead.</li>
<li><code>!!binary</code> now always mapped to <code>Uint8Array</code>
on load.</li>
<li>Reduced nesting of <code>/lib</code> folder.</li>
<li>Parse numbers according to YAML 1.2 instead of YAML 1.1
(<code>01234</code> is now decimal,
<code>0o1234</code> is octal, <code>1:23</code> is parsed as string
instead of base60).</li>
<li><code>dump()</code> no longer quotes <code>:</code>, <code>[</code>,
<code>]</code>, <code>(</code>, <code>)</code> except when necessary, <a
href="https://redirect.github.com/nodeca/js-yaml/issues/470">#470</a>,
<a
href="https://redirect.github.com/nodeca/js-yaml/issues/557">#557</a>.</li>
<li>Line and column in exceptions are now formatted as
<code>(X:Y)</code> instead of
<code>at line X, column Y</code> (also present in compact format), <a
href="https://redirect.github.com/nodeca/js-yaml/issues/332">#332</a>.</li>
<li>Code snippet created in exceptions now contains multiple lines with
line numbers.</li>
<li><code>dump()</code> now serializes <code>undefined</code> as
<code>null</code> in collections and removes keys with
<code>undefined</code> in mappings, <a
href="https://redirect.github.com/nodeca/js-yaml/issues/571">#571</a>.</li>
<li><code>dump()</code> with <code>skipInvalid=true</code> now
serializes invalid items in collections as null.</li>
<li>Custom tags starting with <code>!</code> are now dumped as
<code>!tag</code> instead of <code>!&lt;!tag&gt;</code>, <a
href="https://redirect.github.com/nodeca/js-yaml/issues/576">#576</a>.</li>
<li>Custom tags starting with <code>tag:yaml.org,2002:</code> are now
shorthanded using <code>!!</code>, <a
href="https://redirect.github.com/nodeca/js-yaml/issues/258">#258</a>.</li>
</ul>
<h3>Added</h3>
<ul>
<li>Added <code>.mjs</code> (es modules) support.</li>
<li>Added <code>quotingType</code> and <code>forceQuotes</code> options
for dumper to configure
string literal style, <a
href="https://redirect.github.com/nodeca/js-yaml/issues/290">#290</a>,
<a
href="https://redirect.github.com/nodeca/js-yaml/issues/529">#529</a>.</li>
<li>Added <code>styles: { '!!null': 'empty' }</code> option for dumper
(serializes <code>{ foo: null }</code> as &quot;<code>foo:
</code>&quot;), <a
href="https://redirect.github.com/nodeca/js-yaml/issues/570">#570</a>.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/nodeca/js-yaml/commit/9963d366dfbde0c69722452bcd40b41e7e4160a0"><code>9963d36</code></a>
3.14.2 released</li>
<li><a
href="https://github.com/nodeca/js-yaml/commit/10d3c8e70a6888543f5cdb656bb39f73e0ea77c1"><code>10d3c8e</code></a>
dist rebuild</li>
<li><a
href="https://github.com/nodeca/js-yaml/commit/5278870a17454fe8621dbd8c445c412529525266"><code>5278870</code></a>
fix prototype pollution in merge (&lt;&lt;) (<a
href="https://redirect.github.com/nodeca/js-yaml/issues/731">#731</a>)</li>
<li>See full diff in <a
href="https://github.com/nodeca/js-yaml/compare/3.14.1...3.14.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `js-yaml` from 4.1.0 to 4.1.1
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md">js-yaml's
changelog</a>.</em></p>
<blockquote>
<h2>[3.14.2] - 2025-11-15</h2>
<h3>Security</h3>
<ul>
<li>Backported v4.1.1 fix to v3</li>
</ul>
<h2>[4.1.1] - 2025-11-12</h2>
<h3>Security</h3>
<ul>
<li>Fix prototype pollution issue in yaml merge (&lt;&lt;)
operator.</li>
</ul>
<h2>[4.1.0] - 2021-04-15</h2>
<h3>Added</h3>
<ul>
<li>Types are now exported as <code>yaml.types.XXX</code>.</li>
<li>Every type now has <code>options</code> property with original
arguments kept as they were
(see <code>yaml.types.int.options</code> as an example).</li>
</ul>
<h3>Changed</h3>
<ul>
<li><code>Schema.extend()</code> now keeps old type order in case of
conflicts
(e.g. Schema.extend([ a, b, c ]).extend([ b, a, d ]) is now ordered as
<code>abcd</code> instead of <code>cbad</code>).</li>
</ul>
<h2>[4.0.0] - 2021-01-03</h2>
<h3>Changed</h3>
<ul>
<li>Check <a
href="https://github.com/nodeca/js-yaml/blob/master/migrate_v3_to_v4.md">migration
guide</a> to see details for all breaking changes.</li>
<li>Breaking: &quot;unsafe&quot; tags <code>!!js/function</code>,
<code>!!js/regexp</code>, <code>!!js/undefined</code> are
moved to <a
href="https://github.com/nodeca/js-yaml-js-types">js-yaml-js-types</a>
package.</li>
<li>Breaking: removed <code>safe*</code> functions. Use
<code>load</code>, <code>loadAll</code>, <code>dump</code>
instead which are all now safe by default.</li>
<li><code>yaml.DEFAULT_SAFE_SCHEMA</code> and
<code>yaml.DEFAULT_FULL_SCHEMA</code> are removed, use
<code>yaml.DEFAULT_SCHEMA</code> instead.</li>
<li><code>yaml.Schema.create(schema, tags)</code> is removed, use
<code>schema.extend(tags)</code> instead.</li>
<li><code>!!binary</code> now always mapped to <code>Uint8Array</code>
on load.</li>
<li>Reduced nesting of <code>/lib</code> folder.</li>
<li>Parse numbers according to YAML 1.2 instead of YAML 1.1
(<code>01234</code> is now decimal,
<code>0o1234</code> is octal, <code>1:23</code> is parsed as string
instead of base60).</li>
<li><code>dump()</code> no longer quotes <code>:</code>, <code>[</code>,
<code>]</code>, <code>(</code>, <code>)</code> except when necessary, <a
href="https://redirect.github.com/nodeca/js-yaml/issues/470">#470</a>,
<a
href="https://redirect.github.com/nodeca/js-yaml/issues/557">#557</a>.</li>
<li>Line and column in exceptions are now formatted as
<code>(X:Y)</code> instead of
<code>at line X, column Y</code> (also present in compact format), <a
href="https://redirect.github.com/nodeca/js-yaml/issues/332">#332</a>.</li>
<li>Code snippet created in exceptions now contains multiple lines with
line numbers.</li>
<li><code>dump()</code> now serializes <code>undefined</code> as
<code>null</code> in collections and removes keys with
<code>undefined</code> in mappings, <a
href="https://redirect.github.com/nodeca/js-yaml/issues/571">#571</a>.</li>
<li><code>dump()</code> with <code>skipInvalid=true</code> now
serializes invalid items in collections as null.</li>
<li>Custom tags starting with <code>!</code> are now dumped as
<code>!tag</code> instead of <code>!&lt;!tag&gt;</code>, <a
href="https://redirect.github.com/nodeca/js-yaml/issues/576">#576</a>.</li>
<li>Custom tags starting with <code>tag:yaml.org,2002:</code> are now
shorthanded using <code>!!</code>, <a
href="https://redirect.github.com/nodeca/js-yaml/issues/258">#258</a>.</li>
</ul>
<h3>Added</h3>
<ul>
<li>Added <code>.mjs</code> (es modules) support.</li>
<li>Added <code>quotingType</code> and <code>forceQuotes</code> options
for dumper to configure
string literal style, <a
href="https://redirect.github.com/nodeca/js-yaml/issues/290">#290</a>,
<a
href="https://redirect.github.com/nodeca/js-yaml/issues/529">#529</a>.</li>
<li>Added <code>styles: { '!!null': 'empty' }</code> option for dumper
(serializes <code>{ foo: null }</code> as &quot;<code>foo:
</code>&quot;), <a
href="https://redirect.github.com/nodeca/js-yaml/issues/570">#570</a>.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/nodeca/js-yaml/commit/9963d366dfbde0c69722452bcd40b41e7e4160a0"><code>9963d36</code></a>
3.14.2 released</li>
<li><a
href="https://github.com/nodeca/js-yaml/commit/10d3c8e70a6888543f5cdb656bb39f73e0ea77c1"><code>10d3c8e</code></a>
dist rebuild</li>
<li><a
href="https://github.com/nodeca/js-yaml/commit/5278870a17454fe8621dbd8c445c412529525266"><code>5278870</code></a>
fix prototype pollution in merge (&lt;&lt;) (<a
href="https://redirect.github.com/nodeca/js-yaml/issues/731">#731</a>)</li>
<li>See full diff in <a
href="https://github.com/nodeca/js-yaml/compare/3.14.1...3.14.2">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/AcademySoftwareFoundation/OpenCue/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ramon Figueiredo <rfigueiredo@imageworks.com>
**Summary.**
Surface cleanup and typing annotation of the layer module.

**Changes**
- remove spotted python-2 artifacts (objects, with_metaclass, super with args)
- use super() when possible
- use f-string when meaningful
- add typing annotations when non ambiguous
- explicit a bit more what parameters are actually hidden behind Layer object kwargs
- Correct typo and grammar in docstrings and comments
- Use Literal to annotate Layer types (Render, Util, Post)
- Add Layer string and repr representation

**Rational**
- Type annotations: The main goal is to enable better auto-completion when outlining layers. Prior to that PR, it is very difficult to know in advance the name and type of the parameters accepted by a Layer object.
- Literal for LAYER_TYPES constant values: We can now benefit of the auto-completion to know which types exist as static type checkers now know about them
- The rest is mostly house-cleaning to keep up, especially since we dropped python2.
ddlite92 and others added 6 commits November 27, 2025 00:34
…entation for linux machine

create build script
- Import grpc module for connection error handling
- Wrap getLayers() calls with try-except blocks
- Gracefully handle gRPC CANCELLED and UNAVAILABLE errors
- Prevents CueGUI freeze on network interruptions
- Based on upstream OpenCue PR AcademySoftwareFoundation#2079 and AcademySoftwareFoundation#2042
- Comment out dynamic version from git for proto, pycue, pyoutline
- Use static version 1.13.8 to support deployment without git
- Add monsta_venv portable deployment package metadata
- Add root requirements.txt for deployment dependencies

Enables deployment on machines without git installed
Add docs/Windows.md with step-by-step instructions for deploying OpenCue
client components on Windows using the monsta_venv portable Python bundle.

Documentation covers:
- Two-step deployment flow (deploy_opencue_windows.ps1 then start_opencue_env.ps1)
- Prerequisites and configuration
- Troubleshooting common issues
- Verification steps

Addresses issue #5 (Windows client components require Python 3.9 environment)
Copilot AI changed the title [WIP] Update Windows client components for Python 3.9 environment Add monsta_venv bundle and Windows client documentation; apply cuegui fixes (closes #5) Nov 27, 2025
Copilot AI requested a review from ddlite92 November 27, 2025 00:40
@ddlite92
Copy link
Owner

@copilot merge into pipeline-main not master

@ddlite92
Copy link
Owner

@copilot merge into pipeline-main not master

Copy link
Author

Copilot AI commented Nov 27, 2025

@copilot merge into pipeline-main not master

I'm unable to change the base branch of an existing PR through my available tools. You can manually change the base branch by clicking "Edit" next to the PR title on GitHub, then selecting pipeline-main from the base branch dropdown. Alternatively, you could close this PR and I can create a new one targeting pipeline-main.

@ddlite92 ddlite92 changed the base branch from master to pipeline-main November 27, 2025 01:51
Copy link
Owner

@ddlite92 ddlite92 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To deploy with the same fixes to another 2 computers.

@ddlite92 ddlite92 marked this pull request as ready for review November 27, 2025 01:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Windows client components require Python 3.9 environment

7 participants