rerun icon indicating copy to clipboard operation
rerun copied to clipboard

"Which is the active blueprint?" tracking issues

Open emilk opened this issue 1 year ago • 2 comments

Common issues:

  • #5583
  • #5640
  • #5298
  • #5629
  • #5672
  • https://github.com/rerun-io/rerun/issues/5295
  • https://github.com/rerun-io/rerun/issues/5712
  • Sometime when you run your python code you want to apply the blueprint in it, sometimes you want to keep the one in your viewer

default/shared: does modifying the blueprint for one recording, change it when I open another?

For this cycle: let's find a SIMPLE solution that works okish, with okish workarounds. Suggestions:

Solution idea

One blueprint per App ID

We have one shared blueprint per app ID. Simple to explain, but very limited.

Two blueprints per app ID

We store one shared blueprint per app ID, PLUS one "recording" blueprint per app ID, which is just the latest one received. The user can select between them in the UI as a radio button ("Use latest for recording" vs "use shared"). But what happens when the user edits the "recording blueprint"? 🤷

One shared blueprint per app ID, plus two blueprints per recording ID

For Shared each app ID we store a shared blueprint.

For each recording ID, we also store TWO blueprints:

  • A) The latest received blueprint for that recording
  • B) The modified version of the above

With buttons for:

  • Reset modifications (assign B = A)
  • Make this the shared blueprint (assign Shared = B)

emilk avatar Mar 25 '24 13:03 emilk

Proposal for 0.15 as simplest thing that works:

  • Two blueprints per app-id: one "active", one "stored"
  • Incoming blueprint always updates "stored" and only makes the stored blueprint active if there is no existing blueprint
  • https://github.com/rerun-io/rerun/issues/5583 always resets to the stored blueprint

Reasoning:

  • User edits are never lost unless they explicitly click the reset button
  • Clicking reset is a single click in a blueprint editing workflow. The added complexity of determining behavior based on flags, id-matching, or content-hashing just to avoid a click isn't worthwhile.
  • Other use-cases can be supported (though hackily) by using modified app-ids

jleibs avatar Mar 25 '24 15:03 jleibs

Optional improvement:

  • Advanced UI menu on recording selection to activate a specific blueprint instead of only ever allowing user to activate he last one.

jleibs avatar Mar 25 '24 16:03 jleibs