Two-way Variables #99434

Closed
opened 2022-07-04 16:06:48 +02:00 by Sybren A. Stüvel · 6 comments

To support mixed-platform render farms, Flamenco v2 has two-way variables. These need to be reintroduced to Flamenco v3.

These two-way variables effectively replace a path prefix with another one. Here is an example:

name Linux Windows macOS
RENDER /render/flamenco R:\flamenco /Volumes/render/flamenco

This is what a typical flow would look like:

  • Artist submits a job from a Windows machine, with render output set to R:\flamenco\Sprites\shot_010_0003\######.png
  • The path prefix is recognised, and the job is actually set to render to {RENDER}\Sprites\shot_010_0003\######.png
  • A Worker running Linux is assigned a render task. It is told to render to /render/Sprites/shot_010_0003/######.png

NOTE: The variable replacement (func (c *Conf) ExpandVariables(...) needs to go through multiple iterations, to make sure that, for example, the implicitly defined {jobs} variable gets the path replacements applied as well.


I'm not 100% sure whether this should be a Flamenco v3.0 target. On one hand it's an important feature for mixed-platform render farms. On the other hand, it's hard to explain this feature easily, and there are no sensible defaults (except an empty list of path replacement variables).

To support mixed-platform render farms, Flamenco v2 has *two-way* variables. These need to be reintroduced to Flamenco v3. These two-way variables effectively replace a path prefix with another one. Here is an example: | name | Linux | Windows | macOS | | ------ | ------ | ------ | ------ | | `RENDER` | `/render/flamenco` | `R:\flamenco` | `/Volumes/render/flamenco` | This is what a typical flow would look like: - Artist submits a job from a Windows machine, with render output set to `R:\flamenco\Sprites\shot_010_0003\######.png` - The path prefix is recognised, and the job is actually set to render to `{RENDER}\Sprites\shot_010_0003\######.png` - A Worker running Linux is assigned a render task. It is told to render to `/render/Sprites/shot_010_0003/######.png` **NOTE:** The variable replacement (`func (c *Conf) ExpandVariables(...)` needs to go through multiple iterations, to make sure that, for example, the implicitly defined `{jobs}` variable gets the path replacements applied as well. ---------------- I'm not 100% sure whether this should be a Flamenco v3.0 target. On one hand it's an important feature for mixed-platform render farms. On the other hand, it's hard to explain this feature easily, and there are no sensible defaults (except an empty list of path replacement variables).
Author
Owner

Changed status from 'Needs Triage' to: 'Confirmed'

Changed status from 'Needs Triage' to: 'Confirmed'
Author
Owner

Added subscriber: @dr.sybren

Added subscriber: @dr.sybren
Sybren A. Stüvel self-assigned this 2022-07-05 18:20:03 +02:00

Added subscriber: @underdoeg-4

Added subscriber: @underdoeg-4

Added subscriber: @Eliot-Mack

Added subscriber: @Eliot-Mack
Sybren A. Stüvel changed title from Path Replacement Variables to Two-way Variables 2022-07-21 16:37:29 +02:00

This issue was referenced by 11a352968a

This issue was referenced by 11a352968ad1909b6c1c7d8645e29f0a52d3002e
Author
Owner

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
Sign in to join this conversation.
No Milestone
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: studio/flamenco#99434
No description provided.