►
From YouTube: Octant Community Meeting - April 7th, 2021
Description
Octant community meeting is held weekly. We discuss and talk about the current state and future of Octant, demo upcoming features and releases, and preview new ideas we are considering for Octant.
Meeting agenda: https://hackmd.io/CzaPxtmXT_SW8nEpdwvGzw?view
A
And
we've
got
a
release
coming
up
this
week
and
some
exciting
news
on
what
the
team's
been
working
on
so
far.
So
without
further
ado,
let's
jump
right
into
it
all
right,
so
I'm
gonna
share
screen.
Let's
go
to
desktop
one
here.
We
are
all
right.
A
B
A
B
A
Well,
let's
see,
I
could
also
do
the
stop
and
start
again.
B
A
A
A
Yeah,
that's
fine
that
wait.
We
can
figure
that
stuff
out
later,
okay,
so
april,
7th
2021,
so
we
are
going
back
to
our
bi-weekly
release
cadence
and
it's
even
though
0.18
almost
came
out.
We
have
to
cut
a
0.19
because
we
do
have
some
breaking
changes
coming
out,
big
ones
being
the
first
one.
Is
that
we're
changing
how
buttons
work-
and
this
is
work
done
primarily
by
felipe
he's-
been
working
very
hard
at
a
fairly
big
pr
where
previous?
Well,
I
actually
felipe.
A
Do
you
want
to
speak
about
what
you've
been
working
on.
B
A
C
B
So
yeah
see
so
when,
when
felipe
shares
the
screen,
it
doesn't
it's
not
going
to
show
up
on
the
stream
because
comparing
the
zoom
window,
what's
this.
C
So
the
changes
in
the
bottom
so
before
we
only
had
like
a
button
group
that,
where
we
can
add
bottoms,
those
buttons
were
just
structures.
C
C
C
The
second
example
is
using
a
couple
of
bottoms
in
a
button
group.
This
is
like
this,
so
you
just
create
the
button
group
and
just
with
the
add
bottom
method,
you
just
pass
it
the
the
bottoms.
So,
for
example,
I
have
two
buttons
here.
The
first
one
has
a
confirmation
model.
The
second
one
doesn't
do
anything
and
for
the
third
example,
I
have
a
pattern
wrapped
by
a
link,
so
here,
for
example,
we
can
see
that
we
just
create
the
bottom
and
we
pass
it
to
the
to
the
new
link
method.
C
In
this
example,
I
am
passing
a
request
path
as
as
the
url.
C
So
if
I
do
click
here,
it's
gonna
behave
like
a
link,
but
it's
a
button
for
the
view
so
for
the
people
that
are
watching
the
plugin
devs
have
in
mind
that
this
is
a
breaking
change,
because
before,
as
I
said,
we
have
just
an
extract
for
the
bottoms
now
it's
a
component,
so
you
have
to
have
that
in
mind
when
you
are
updating
your
octam,
that's
it.
If
anyone
have
any
question
just
let
me
know.
B
Awesome,
thank
you
yeah.
One
question
I
had
is
on
the
button
with
when
you
wrap
the
button
with
a
link.
Does
the
if
there's
an
action
assigned
to
that
button?
When
you
click
it,
does
it
also
fire
the
action.
C
B
Yeah,
whichever
whatever
the
behavior
ends
up
being,
I
think
it
would
be
good
to
just
document
the
the
priority
of
when
using
things
inside
the
new
when
passing
a
component
into
a
linked
component,
so
that
it
gets
wrapped
in
an
anchor
tag
for
things
that
might
have
actions
on
them.
A
Cool
and
if
anyone
has
any
additional
comments
on
this
current
work,
it's
still
technically
in
flight,
so
feel
free
to
jump
on
in
on
this
current
issue,
number
2255.
A
Cool
all
right,
any
additional
questions
on
the
button,
work,
cool
and
quick
reminder
again.
A
It's
in
all
caps
and
we'll
have
it
in
the
change
logs,
but
these
are
breaking
api
changes,
so
just
be
aware
of
that,
if
plug
in
some
plugins
are
using
the
old
button
model
before
upgrading
all
right,
cool
next
thing
to
talk
about
here
is
going
to
be
some
of
the
changes
we're
doing
to
the
client,
id
and
client
state,
and
this
is
also
another
interesting
plug-in
interaction
with
octet,
where
we
assume
that
each
tab,
or
each
instance
or
each
electron
instance,
whatever
you're
opening
octane
on
opens
up
you'd
hack
you'd,
have
a
client
id
assigned
to
each
connection
that
octan
creates,
and
each
of
them
also
has
a
client
state,
and
I
believe
this
pr
comes
from,
I
believe,
did
we
merge
that
yet
no,
we
did
not
2244..
A
So
this
is
something
that's
been
worked
on
by
vikram
and,
namely
the
changes
being
made
here
or
that
we're
gonna
have
we're.
Gonna
have
a
way
to
well.
So
two
things
are
happening.
One
is
we
used
to
have
this
notion
of
a
client
id
that
comes
out
of
a
request
context,
and
this
was
created
specifically
for
the
alert.
That's
the
only
thing
we're
using
it
for
and
now
we're
creating
this
idea
of
a
client
state
which
would
now
contain
this
client
id.
A
So
instead
of
doing
request
dot,
I
think.context.clientid
you'd
have
this
client
state
object,
which
you
can
fetch
very
similar
to
how
you
can
get
the
dashboard
client
right
now
in
octane,
and
this
should
be
yeah,
and
this
client
state
has
additional
things
like
id
filters
and
namespace,
which
is
cool,
because
I
think
the
original
problem
that
this
pr
tries
to
solve
is
to
get
the
initial
state
of
the
yeah
to
get
the
initial
state
of
octane.
A
D
Nope
you
covered
most
of
it,
and
the
only
thing
I
would
add
is
that
it
also
captures
more
actions
than
just
setting
a
namespace.
So
if
people
set
filters
or
change
context,
then
they
would
also
have
option
to
catch
those
like
actions
by
action.
Handlers,
because
octant
will
throw
these
events
as
well.
A
Yeah
totally
right,
because
this,
essentially
anything
that
comes
yeah,
so
we
can
kind
of
see
here
like
pretty
much
anything.
That's
part
of
the
current
octet
state
that
we
eventually
feed
through
in
this
way,
we
can
pass
it
through
as
well.
So
this
is
pretty
it's
fairly
extendable
in
a
sense
where
we
can
everything
about
the
curt,
even
I
think,
to
some
degree,
even
about
the
websocket
connections
right.
We
can
pretty
much
bubble
up
here.
A
A
Any
questions
about
the
new
changes
in
client,
id
and
client
state.
A
Cool
all
right,
then,
okay,
so
the
next
thing
that's
coming
up
is
the
signpost.
So
this
one
has
been
requested.
I
believe
it.
This
one
is
more
driven
by
vmware
than
the
general
community,
but
nonetheless
it's
still
kind
of
a
nice
thing
to
have.
We
have
the
we
use
the
clarity
signpost
in
various
places.
So
I
think
I'm
gonna
merge
this
already
yeah
sign
post,
oh
wow!
This
is
an
old
one.
All
right
sign.
B
A
22
21
yeah
here
we
are
yeah,
so
the
signpost
itself
right
is
this
box
here
and
it's
something
that
typically
the
pattern
is
you
click
something
and
you've
got
this
panel
that
pops
up
and
it's
got
additional
information
about
whatever
thing
that
was
just
clicked,
and
I
think
that
pretty
much
here
we
can
have
examples
about
well,
do
we
have
yeah
like
this
should
be
in
the
storybook
now,
actually,
actually,
that
might
even
be
a
better
way
to.
A
A
All
right
screen
share
looks
good,
probably
not
a
full
screen.
Yeah
man
wait.
It
makes
it
look
easy
all
right
here
we
are
so
we
got
some.
Let's
go
to
our
docs
here
on
this
magical
signpost.
So
here
if
well,
let's
do
do
we
put
code
samples
in
here.
A
Maybe
not,
or
maybe
it's
just
not
yeah
or
maybe
there's
something
in
the
mark
down
here-
that's
just
not
showing
the
docs,
but
that's
fine.
We
can
always
fix
this
later
well,
general.
So
like
the
general
idea
here
is
that
you'd
have
some
signpost
component
and
inside
this
signpost
component.
It
has
this
idea
of
a
trigger,
which
is
any
arbitrary
component
that
can
be
clicked
and
it'll
wrap,
essentially
be
a
decorator
around
that
component
right.
A
So
this
case
we
have
this
icon,
which
seems
to
be
a
very
reasonable
pattern
and
if
you
click
this
icon,
it
shows
this
test
markup
message
and
at
the
moment
this
message
is
strings
only
right.
A
If
I
I
think
that
was
the
last
thing
on
the
review
here,
is
that
yeah
so
currently
right
now,
if
you
go
into
the
api,
I
think,
and
if
you
create
a
new
signpost,
it
will
accept
only
a
string
as
the
message
and
as
and
as
it
moves
on,
we
might
want
to
change
what
that
message
is,
but
it
could
be
could
be
something
else.
It
could
be
even
another
flex
layout.
A
So
we
can,
we
can
definitely
add
more
functionality
to
this
and
pretty
much
any
arbitrary
component
so
like
you
could
do
it
with
a
card,
a
text
component,
and
you
can
also
adjust
the
position
here.
I
believe
so.
This
is
bottom
middle.
I
don't
have
the
positions
memorized
right
off
the
bat,
but
maybe
this
will
update.
Let's
see,
maybe
it
doesn't
want
to
do
right,
or
maybe
it's
being
smart
like
it
doesn't?
Oh,
no.
A
This
is
bottom
right
already,
maybe
bottom
top
right
or
maybe
I
have
to
do
one
of
those
refresh
tricks
all
right.
That's
a
flop
on
the
position,
change,
cor,
well,
core
idea,
or
maybe
like
there's
some
storybook
interaction
here,
but
core
idea
here
is
still
simple
right.
I
think
generally
you'd
have
the
problem.
This
is
solving
specifically
is
at
the
well
when
we
were
first
implementing
this
right.
We
were
just
imagining
like
an
icon
or
a
message,
and
it
would
just
pop
up
text.
A
So
if
the
use
case
becomes
more
complex
over
time,
this
can
certainly
be
expanded
or
even
chime
in
before
we
cut
a
release,
and
I
think,
like
the
any
additional
edits
we
make,
should
be
fairly
minor
yeah.
So
that
is
the
signpost
luis
did
I
miss
anything.
A
Nope,
I
think
that's
it:
okay,
cool
yeah,
I
think
yeah,
and
this
is
a
pretty
good
addition.
We
could
also
add,
like
some
other
clarity-
five
stuff
to
icons.
This
also
builds
on
top
of
the
previous
icon
work.
So
looking
pretty
good
cool,
oh,
and
that
was
yes
and
then
next,
I
think
we
already
covered
over
this
right.
Buttons
are
components
now-
and
I
think
we've
said
this
before
earlier,
but
the
idea
here
is
that
buttons
used
to
be
something
that
was
only
added
to
a
button
group
like.
A
B
Yeah,
it
doesn't
look
anywhere
yet
I
couldn't
find.
I
couldn't
find
the
code
for
it,
but
I.
B
Yeah,
I
think
I
think
we
also
talked
about
that
one
previously,
but
the
the
idea
and
felipe
showed
it
in
the
demo
how
that
button?
That
final
button
was
also
a
link
or
was
just
just
a
yeah,
just
a
link
wrapped
around
that
button.
You
can
do
that
for
any
component.
A
Yeah
right
here,
so
a
link
component
previously
only
took
in,
I
believe,
a
text.
All
right
like
I
wanted
just
a
like
links
like
links,
were
just
specifically
used
to
generate
urls
and
now
yeah.
If
you,
if
you
click
the.
B
A
Okay,
cool
okay,
so
this
is
done
kind
of
so
this
is
not
breaking
right
like
this
is,
or
at
least
like
this
portion
of
the
code
is
not
breaking.
We
can
still
use
links
the
old
way.
People
don't
have
to
change
anything
about
the
ways
to
use
their
links
right
now,.
B
Yeah-
and
this
is
another
question
about
priority,
if
you
use
both
the
text
and
the
component,
does
the
component
take
priority.
C
Yeah,
the
component
has
a
higher
priority
and
to
to
answer
your
question
before
yeah.
If
you
use
something
like
a
button
with
a
model
and
you
pass
it
to
a
link,
it's
going
to
have
like
a
higher
priority,
the
the
the
url.
So
it's,
if
you
have
a
button
with
actions
you
and
you
wanted
to
pass
it
to
a
link
component,
it
only
work.
It's
going
to
work.
Only
for
the
link.
It's
not
going
to
do
the
actions
of
the.
B
Button
yeah,
I
mean,
I
think
I
think
that
behavior
is
fine
as
long
as
as
long
as
it's
explicit
and
we
call
it
out.
I
wouldn't
expect
the
I
wouldn't
expect
like
if
you're
doing
that,
then,
if,
like
someone,
has
a
bunch
of
actions
assigned
to
a
button
and
then
wraps
them
in
an
anchor
tag
like,
I
wouldn't
expect
that
to
do
anything
useful
other
than
just
follow
the
anchor
tag
so
yeah
that
works.
E
I
really
like
this
pattern
when
we
added
the
field
and
keep
the
existing
behavior,
I
think
that's
something
we
should
try
to
do
whenever
possible
in
future.
Instead
of
you
know,
introducing
breaking
changes
just
to
add
stuff
and
keep
the
original
functionality
if
possible,
still
available,
so
we
don't
break
all
the
plugins.
B
I
agree
with
you
after
we
hit
1.0.
I
don't
I
don't
want
to
take
that
stance
before
then,
though,
because
right
like
in
the
case
of
like
client
id
client
state,
I
think
breaking
that
was
important.
I
think,
leaving
the
the
duplicate
entry
in
there
and
and
and
having
two
places
to
access
the
same
information
and
then
like
authors,
would
continue
to
depend
on
that
behavior
and
then
so,
like
we
want
to
break
stuff.
Now
we
want
to
break
stuff
sooner
rather
than
later.
B
Is
I
guess
my
point
after
1.0?
Obviously
we
would
any
breaking
changes
would
come
with
a
proper
deprecation
period
of
of
a
release
or
two,
and
then
we
would,
you
know,
remove
that
only
in
a
major
version
bump,
so
we
would
follow
like
some
version
rules,
but
I
I
yeah
yeah.
D
E
Right
right
I
mean
it's
just
you
know
whenever
possible,
it's
good
not
to
break
even
even
now,
because
there's
a
bunch
of
plugins
there
right.
E
B
Yeah-
and
I
think,
there's
also
example
where
it
could
maybe
even
long-term,
simplify
the
the
link
component
right
like
now
that
it
just
takes
a
component
well,
that
component
can
be
a
text
component.
So
then,
what
is
the
purpose
of
having
a
text
value
on
there
right
so
like
it
gives
us
the
path
to
deprecation?
If
we
want
one
right.
A
Cool
all
right,
any
other
questions
about
making
anything
as
a
link,
essentially,
okay,
cool,
then
we'll,
let
that
be,
I'm
pretty
sure.
Like
we're,
gonna,
eventually
see
people
go
like
I'm
trying
to
link
my
data
grid.
Why
doesn't
it
do
what
I
want,
but
you
know
like
kind
of
like
this
has
got
like
it
wraps,
whatever
you
want
with
an
anchor
tag
right.
So
it's
like
nuance.
You
know
kind
of
kind
of
use,
good
judgment
with
it
cool
all
right.
Let's
move
on
to
the
next
one,
octan
link
ref,
generating.
A
A
If
I
have
an
object
key-
and
I
want
to
make
it
a
link
currently
right
now-
you
kind
of
have
to
grab
the
name
and
you
have
to
grab
yeah
kind
of
grab
the
name
namespace
and
you
kind
of
have
to
like
construct
the
url.
With
our
with
the
new
link
method,
which
is
okay,
you
know
it's
not
awful
and
like
we.
A
We
want
to
keep
parity
between
the
two
typescript
and
go
apis,
so
this
is
something
that's
just
a
little
bit
cleaner
way
to
do
that
essentially,
and
the
def
and
the
I
think
the
caveat
here
is
that,
like
the
default
behavior
is
that
if
you
create
a
link,
where
is
it
yeah
it'll
currently
just
return
a
link
component
back
with
the
name
of
the
object
right
so
like
the
it'll
just
appear,
the
link
text
will
be
the
name
of
the
object,
but
obviously
you
can
do
whatever
you
want
with
the
link
later
and
I
think
that's
a
reasonable
default,
but
yeah.
B
What's
nice
about
that,
is
we
kind
of
like
that's
a
that's
a
nice
little
helping
feature
for
people
who
want
to
just
want
to
quickly
generate
links
to
existing
modules
within
octant
right,
so,
whether
it's,
whether
it's
octant's
main
set
of
modules,
that
it
has
for
pods
or
whatever
or
some
other
other
thing
you
want
to
generate
links
for
you
don't
have
to
like
know
the
details
of
like?
Oh,
how
does
how
does
what's
the
path
for
deployment
in
octane?
You
can
just
kind
of
say
like
here.
B
It
is
give
me
give
me
the
the
link,
which
I
think
is,
is
what
most
people
want
to
do
anyway,
right
they
don't.
They
don't
have
to
think
about
where
this
stuff
actually
lives.
I
just
want
to
say
I
have
a
key
generate
a
link
to
the
details
of
that
key
for
me,
but
this
made
me
think
of
of
something
interesting.
Is
that
part
of
what
used
to
make
this
really
difficult
for
plugin
authors
was
that
they
didn't
have
the
current
state
of
the
world
to
generate
these
links
sometimes?
B
And
so,
when
you
combine
this
change,
exposing
what
we
already
have
on
the
javascript
side,
with
vikram's
change
of
being
able
to
fetch
the
current
client
state
off
of
every
request,
users
can
effectively
like
really
effectively
generate
links
for
like
everything
now,
which
is
which
is
kind
of
nice.
A
Yeah
I
mean
you
know
like
just
you
know:
it's
cool,
it's
not
a
game-changing
thing.
It's
like
cool
code
is
easier.
Now
I
think
you
know
I
I
think
where
it,
I
think,
is
it
daniel
who
wanted
this
one.
I
think.
B
There's
actually
a
few
people,
so
I
I
know
that
james
wanted
this
daniel
opened
the
original
issue,
but
james
wanted
this
because,
like
they
do
manual
link
generation
for
all
the
stuff
in
the
jx
plug-in
and
there's
like
manual
link
generation
for
all
the
stuff
in
the
starboard
plug-in
and.
B
Andrea,
I
think
also
does
like
a
bunch
of
manual
link
generation,
so
this
this
yeah,
I
think
multiple,
multiple
plugins
will
get
advantage
from
this
right
away
and
it's
useful.
B
In
the
and
the
k
native
plugin
to
generate
links
to
resources
so
because
it
was,
it's
been
in
the
javascript
side
for
a
while.
E
Yeah-
and
I
think
this
is
way
more
important
than
you
you're
trying
to
painted
sam,
because
links
are
really
I
mean
everything
that
could
be
linked
should
be
a
link
in
my
opinion,
because
you
know
that
just
improves
the
navigation
so
much
ease
of
access
to
different
things.
So
so
I
think
that's
great.
D
A
We'll
make
sure
to
ping
plug-in
authors
or
we'll
make
sure
to
make
sure
people
are
are
using
this
or
they're
aware
that
they
can
do
this
after
this
round,
because
I
don't
know
how
many
plugin
authors
follow
closely.
A
Cool
all
right
last
one
resource
viewer
bug,
so
this
one
is
more
specifically.
I
think
milan
worked
on
this
right.
It's
the
yeah
here.
E
To
show
the
other
right
yeah,
so
I
wanted
to
show
you
the
the
one
I
that
made
me
scratch
my
head
this
morning
and
I
I
think
I
figured
it
out
so
if
I
can
share
my
screen,
I
can
show
you
that.
A
E
Yeah,
so
the
one
you
you
showed
is
related
to
two
different
things
which
is
shared
here.
E
So
the
one
that
the
previous
one
was
related
to
the
the
dynamic
components.
So,
basically,
when
we
create
the
components,
so
this
one
should
show
the
status,
but
most
of
the
other
ones
are
text.
So
when
we
were
switching
those
components,
we
had
some
issues
and
that
that
one
has
just
been
merged.
But
you
can
see
here
that
there
is
a
big
issue
here
and
I
think
same
you
posted
this
on
this
on
the
slack
channel.
E
At
some
point
you
see
there
are
three
parts
here,
but
we
never
see
more
than
one
and
not
only
that,
but
the
screen
has
is
updated
all
the
time
and
I
was
trying
to
figure
out
what's
going
on
and
it
it
it's
actually
passing
down
a
single
part
from
the
backhand
side
and
not
only
that,
but
that
part
is
different
every
time.
That's
why
we
have
the
updates,
because
we
detect
there's
a
change
in
the
stream
and
update
the
the
screen
every
time.
E
E
You
can
see
it
yes,
so
this
is
a
detailed
describer.
Unfortunately,
it's
used
only
in
this
view,
not
in
the
like
part
view
for
other
views,
such
as
the
application
here.
So
what
we
are
doing
here
is
basically
just
populating
the
objects,
copying
the
parts
in
objects
and
passing
those
to
the
results.
We're
trying
to
create
the
resource,
viewer
definitions,
but
problem
here
is
that
we
are
actually
using.
E
Array
not
already
a
slice
of
a
pointers
and
this
pointer.
This
part
variable
is
declared
inside
the
for
loop,
so
it's
always
the
same.
So
what
ends
up
happening
is
we're
gonna,
add
three
identical
values
to
the
list
for
those
three
parts
and
the
value
inside
will
be
the
last
one.
So
what
happens
is-
and
this
is
also
done-
I
think,
before
we
do
sorting
so
that
the
last
one
is
different
every
time.
So
as
we
go
on,
we
just
keep.
E
E
E
So,
instead
of
using
this,
this
is
not
the
optimal
fix
that
this
for
loop
can
be
like
a
traditional
for
loop,
but
instead
of
accessing
this
variable
we're
gonna
access,
the
original
array,
and
so
now
all
the
all
the
parts-
and
you
can
see
up
here-
I
was
dumping
this
you
can
see
that
there
are
three
elements
in
this
array
and
they're
all
identical,
although
the
names
are
different.
A
E
So
yeah,
so
it's
a
it's
like
it
took
me
a
while
to
figure
it
out,
but
it's
a
it's
a
classical
go
language
yeah.
B
It's
pretty
common
yeah
yeah,
because
it
just
reuses
that
that
temporary
value,
and
so
all
you're
getting
is
the
same
pointer
over
and
over
right,
yeah
yeah.
So
you
can.
You
can
change
that
to
your
traditional
for
loop
or
you
can
make
a
copy
of
the
of
the
object
either
one.
I
think
right.
I
think
in
this
case
a
traditional
for
loop
is
probably
the
best
choice
because
we're
since
we
do
want
the
pointers
to
the
items
like
as
you
as
you
call
out
there.
So
yeah
nice
find.
E
B
E
A
A
Cool
all
right:
well,
we
will
jump,
I
think,
that's
it
really.
I
think
we're
back
to
open
q
a
unless
there
are
any
more
questions
about
resourceful
related
things.
A
Twice
all
right.
Well,
I
guess
that's
that's
pretty.
I
guess
that's
pretty
much
it
does
anyone
else
have
anything,
not
even
q.
A
any
general
questions
comments.
If
not,
we
can
call
it
and
I'll
see.
Y'all
next
week.