►
From YouTube: Argo Workflows Contributor Workshop
Description
Learn about contributing to Argo Workflows.
https://bit.ly/argo-contributor-workshop
A
Okay
well,
good
morning,
everybody
welcome
to
our
our
go
workflows,
contributor
workshop
and
thank
you
all
for
completing
the
survey
and
thank
you
for
all
coming
on
today.
I'm
just
going
to
start
with
an
introduction
at
the
moment
what
I'm
going
to
talk
a
little
bit
about
what
we're
gonna
do
and
then
I'm
going
over
briefly
to
Simon
to
give
some
kind
of
overview
information,
and
then
it's
going
to
get
hands
on
at
that
point
and
I'm
just
gonna
touch
on
what
you
might
want
to
do
to
get
ready
for
that.
A
Now,
you'll
get
the
most
out
of
this
workshop.
If
you
can
do
the
hands-on
stuff
and
the
format,
all
that
will
be
kind
of
typing
code
into
your
IDE
and
running
tests
from
the
command
lines.
I
hope
you
guys
are
all
comfortable
with
that.
You'll
get
the
most
out
of
that,
but
we
will
also
talk
about
another
thing.
You
can
do
to
contribute
as
well,
which
you're
very
useful,
just
just
a
walk
through
what
the
hands-on
change
will
will
be.
A
How
much
I
think
you
guys
will
be
very
excited
that
we're
gonna
start
up
and
our
go
workflows
running
locally,
as
you
would
for
development?
We're
gonna
make
a
change
to
a
thing
called
a
proto
file,
which
is
the
files
used
to
generate
the
api's
and
to
add
some
new
information
to
your
workflow.
We're
going
to
write
a
unit
test
for
that.
A
We're
gonna
run
that
in
a
debug
mode,
we're
going
to
write,
need
to
eat
X
I'm,
going
to
show
that
in
the
user
interface
as
well,
we'll
look
at
how
to
commit
that
code,
trait
PR,
and
to
document
your
change
as
well,
so
the
whole
whole
kitten
computer.
Everything
you
need
to
do
to
to
make
a
feature,
change,
there's
a
couple
things
we
won't
be
covering.
A
Obviously
we
won't
be
merging
your
PR
I'm
sure
you
guys
all
want
emoji
after
you've
done
it,
but
won't
be
doing
that
and
we
don't
have
enough
time
to
go
over
my
SQL
and
how
to
debug
failing
and
CI
builds,
so
we're
probably
skip
over
those.
We
may
or
may
not
do
some
user
interface
stuff
and
that
would
kind
of
depend
on
the
time
most.
B
A
A
Well,
we're
dropping
out
to
the
console
a
number
of
points
in
this
as
well.
To
show
you
these
a
console
table
vcl
work
in
regardless
of
ID.
You
do
if
you've
not
written,
go
before
I
can
recommend
you
and
that
time
now
there's
a
tour
of
golang.
It
takes
weeks
two
to
three
hours
and
you'll
go
from.
Never
writing
it
like
go
to
being
a
competent
go
programmer.
Go
is
incredibly
easy
language,
one
of
the
easiest
languages
that
have
had
to
write
it
and
you
can.
You
can
learn
it
pretty
quickly.
A
There
is
an
asset
asset
tests,
acid
tests,
litmus
tests,
acid
tests,
I
can't
remember
the
right
term.
You
can
do
to
make
sure
you're
putting
sermons
that
run,
run,
make
pre-commit
and
that
will
run
through
all
the
tools.
I
do
expect
to
people
to
have
some
issues
with
that,
because
we
have
will
use
proto,
C
and
some
swagger
related
stuff,
and
you
may
have
different
versions
installed
on
your
computer
and
may
cause
problems,
but
we'll
work
around
that
I
think
as
well
with
providing
a
patch
file
for
you.
A
Okay,
so
a
little
bit
about
myself
and
about
Simon
and
Bala
I'll.
Let
them
introduce
themselves
when
I
come
on
so
I'm
the
principal
engineer
and
I'll
go
workflows.
I've
been
working
for
into
it.
For
about
four
years
three
years,
it
doesn't
feel
that
long
and
primary
on
our
go
products
I
also
work
on
our
go
CD
as
well,
and
so
you
prove
predominately
Merkin
kind
of
action.
Walk
was
for
the
different
languages
before
this
I
came
from
myself
care
from
the
UK
working
on
QuickBooks
over
there.
A
C
C
Cool
so
I'm
gonna
start
with
this
little.
This
little
presentation,
I,
threw
together
did
this
morning.
I
think
the
main
concept
that
most
people
should
be
aware
of
when
trying
to
develop
an
Argo,
and
certainly
the
concept
that
I
thought
was
most
important.
I
learned
when
I
started
was
that
the
source
of
truth
of
your
work
flows
is
always
in
kinetics.
So
most
of
some
of
you
who
have
who
may
have
had
previous
expansion
companies
might
already
know
this,
but
I
didn't
in
the
past.
So
it
was
important
for
me
to
know
this.
C
C
What
where
your
data
is
stored,
most
of
the
time
is
on
that
same
custom,
research
definition,
which
is
a
workflow
CRD
and
that
lives
on
your
career,
Nettie's
cluster,
so
Arco,
essentially
all
it
does
is
whenever
it
needs
to
it,
grabs
it
loads
that
workflow
from
the
cluster.
It
applies
all
its
logic
which
we
now,
which
we
now
treat
up
as
a
black
box.
For
this
example,
and
then
it
outputs
a
new,
updated
workflow,
and
then
it
stores
that
a
bit
of
workflow
back
in
the
cluster.
C
C
Are
you
add,
a
new
workflow
or
delete
a
new
workflow
object
to
the
cluster
so
anytime,
there's
a
change
with
a
workflow
object
anywhere
in
the
cluster
Argo
will
get
notified
and
will
they
an
I/o
will
pick
up
the
network
flips
and
the
other
relevant
event
that
could
happen
is
any
sort
of
any
sort
of
change
or
update
to
a
pod.
That
was
started
by
Argo
will
also
trigger
an
event.
C
So,
for
example,
let's
say
your
workloads
running
and
then
your
pods
are
running
and
then
they're
doing
their
thing
and
then
once
they
stop
running
once
they've
finished
arguing
needs
to
know
that
so
that,
if
you
can
so
that
Argo
can
continue
its
operation
so
that
that
could
also
be
an
event.
So
here
we
have
an
event
company's
turns
an
event.
Alright
goes
like
ok,
this
is
an
event
one
of
my
work-
clothes,
I'm,
gonna,
pick
it
up,
so
he
loads
he
loads.
C
C
I
Argo
will
also
look
at
respect
to
see
what
else
to
do
and
essentially
it'll
run
all
its
logic
and
then
once
it's
done,
it'll
output,
a
new
workflow
that
is
now
updated
and,
as
part
of
that,
Argo
will
essentially
load
or
store
the
updated
workflow
back
to
karenins
and
then
that'll
be
it
so
something
something's
important
to
note
with
this
sort
of
architecture
that
we
have
is
that
the
workflow
object
is
two
things
at
once.
It
is
your
definition,
which
is
the
spec
field.
C
So
anything
you
define
it's
stored
in
the
workflow,
but
it's
also
the
state.
So
the
state
of
the
current
workflow
is
always
in
the
same.
Workflow
object
we've.
So
this
is,
for
example,
why
are
you
go?
The
controller
can
crash
or
the
controller
can
be
updated
in
the
middle
of
an
operation
and
really
won't
matter,
because
this
state
is
always
stored
in
the
workflow
I?
C
So
I
guess
I'll
ask
either
Bala
or
Alex
to
read
questions
another,
and
one
last
important
thing
to
note,
which
is
very
important
to
the
design
of
how
our
NGO
works
is
that
since
our
NGO
doesn't
keep
any
state
itself,
the
only
state
that
ever
restored
is
in
the
workflow
itself.
An
operation
has
to
be
idempotent.
Idempotent
means
that
if,
for
example,
our
goal
were
to
accidentally
pick
up
the
same
work
three
times
in
a
row,
the
result
has
to
be
a
what
you
won't
actually
change
anything.
C
C
So
the
idea
is
that
if,
for
example,
for
whatever
reason
our
NGO
were
to
pick
up
state
1
again,
it
would
compute
state
2
and
if
I
go
where
to
pick
up
state
2
again
and
nothing
had
changed
to
make
it
state
3.
Our
goal
would
also
compute
state
2,
so
you
can
run
the
same
workflow
50
thousand
times,
and
it
really
won't
matter
because
as
long
as
nothing,
nothing
external
has
changed
such
as
a
new
part
has
finished,
our
NGO
will
compute
the
same
result.
C
So
that's
another
big
thing
that
I
learned
when
starting
to
develop
in
our
NGO
is
that
your
ideas
have
always
have
always
have
to
sort
of
take
account
into
it.
Take
into
account
this
sort
of
idempotency,
that's
the
control
it
must
have
so
that
it
works
this
way
and
Iulia
used
it'll
get
easier
as
you
get
your
hands
dirty
with
it.
So
having
covered
this,
this
is
sort
of.
This
is
a
sort
of
more
concrete
slide
of
what
I
just
talked
about.
So
here
we
have
the
quraan
any
server.
C
C
There's
two
main
types
of
events
that
are
go
cares
about
a
pod
event
and
the
workflow
event
taking
the
easier
case,
understand
the
workload,
and
so
if
a
new
workflow
gets
updated,
a
new
workflow
gets
added
or
updated,
or
whatever
it'll
come
in
through
this
Informer,
we'll
add
it
to
a
workload.
Queue
so
are
going,
maintains
a
queue
of
all
the
workloads
it
has
to
process.
C
This
queue
is
usually
empty
if
you
don't
have
them
in
work
plus,
but
if
you're
running,
let's
say
50
work
clothes
at
a
time
it
might
make,
might
get
a
bit
more
full
and
then
you
have
a
bunch
of
workers
that
actually
do
the
operations
on
these
were
closed.
So
you
process
the
item.
You
reconcile
all
the
pods
odd.
C
Reconciling
means
that
Argo
will
query
kubernetes
to
see
what
odds
are
running
and
what
bugs
are
not,
and
it
will
make
sure
that
all
the
parts
that
need
to
be
running
for
the
specific
workflow
are
running
and
pubs
that
are
not
running
and
shouldn't
be
running
and
it'll
do
all
the
things
that
needs
to
you
and
then
on
the
other
side
of
a
part.
If
a
pod
update
happens,
we
also
have
some
logic
to
sort
of
pick
which
workflow
this
pod
belongs
to
and
then
once
we
know
which
workflow
the
plug
belongs
to.
C
We
add
that
workload
to
our
workflow
keep
so
that
it
gets
processed
another
sanity
check.
If,
if
you,
if,
for
example,
you
were
to
add
at
the
same
workload
five
times
in
this
to
you-
let's
say
five
pods
finish
at
once,
it
won't
matter
again
because
again,
the
operation
of
a
workflow
is
idempotent.
So
for
each
of
those
five
times
the
result
will
be
the
same
as
if
it
was
only
run
one
time
and
then
I
will
also
like
to
cover
this
server.
C
The
Argo
server,
because
it's
a
very
important
feature
that
a
lot
of
you
guys
use
so
the
Arco
server
and
the
controller
are
two
completely
separate
entities
and
they
never
communicate
with
each
other
directly.
So
the
controller
as
I
just
spent
like
10
minutes
explaining
the
controller
is
responsible
for
picking
up
workflow
objects
from
the
server
operating
on
them
and
then
storing
them
back
in
so
again,
the
source
of
truth
for
all
of
your
state
and
logic
is
always
occurring
at
each
cluster.
C
So
the
server
the
server
sort
of
works
with
the
same
idea
in
mind,
but
the
source
of
truth
is
kubernetes,
so
when
you
communicate
with
the
server
either
in
a
hosted
mode
or
in
a
local
mode,
this
server
only
talks
to
those
kubernetes
resources
on
the
cluster.
It
never
talks
to
that
controller.
So
let's
say
you
want
to
create
workflow
on
with
the
server.
C
Then
the
CLI
will
talk
to
the
server
and
the
server
will
create
a
workload
object
in
the
communities
cluster
and
as
soon
as
that
object
is
created,
the
pot
Informer
will
inform
the
controller.
Let
me
know
sorry:
the
work
loan
former
will
inform
the
controller
that
a
new
workflow
is
created
and
then
controller
will
start
operating
on.
So
those
are
the
two
main
principles.
C
To
recap
to
some
rice
there's
two
main
principles:
our
state
is
stored
in
the
in
the
cluster
and
the
controller
is
idempotent,
having
covered
all
of
that
I,
just
sort
of
want
to
give
you
guys
a
quick
little
tour
of
repo
just
to
sort
of
get
you
guys
acquainted
to
where
and
you
can
find
in
the
code
everything
I
just
talked
about
so
starting
from
the
top.
The
command
folder
is
all
our
CLI.
So
this
is
all
our
CLI
code.
C
You
can
see
here
that
we
have
all
our
all
of
the
commands
that
you
guys
are
probably
used
to
the
lead,
get
zoom
retry
submit
so
on.
We
also
have
our
corn
and
template
and
cluster
template
commands
in
here
dogs.
You
guys
I'm
sure
you
guys
are
all
so
well
acquainted
with
that.
I
wanted
to
highlight
that
I
we
just
added
a
new
field
stalk.
Where
is
it
so?
This
is
an
auto-generated
doc
that
essentially,
this
is
more
of
a
tangent.
This
is
an
auto-generated
doc.
C
That
shows
you
all
the
fields
that
you
can
use
in
our
go.
It
makes
it
pretty
accessible.
So,
for
example,
let's
say
you
want
to
know
what
this
specific
field
in
like
what
metrics
are
right?
How
can
you
define
metrics?
So
here
you,
you
have
the
metrics
field,
and
the
nice
part
is
that
there's
these
little
drop-down
menus,
but
once
you
open
them,
they
actually
link
you
to
all
of
the
examples
that
contain
this
field.
So
this
is
for
Audrey
C.
This
is
for
metrics,
and
then
you
can
click
through
this.
C
So
I
wanted
to
highlight
this
because
it's
new
and
I'm
sure
it
is
could
be
useful.
So
going
back
examples,
I'm
sure
you
guys
already
know
about,
and
then
let's
dive
in
here
first.
So
this
is
probably
the
most
important
sort
of
package
that
we
have.
It's
called
work
flow
and
this
is
essentially
all
the
code
for
the
work
flow
controller.
So
all
of
the
work
flow
controller
lives
here,
I
guess
it
would
be
nice
to
just
show
you
guys
sort
of
look
at
an
example
of
something
we
talked
about.
So
this
is
the
operator.
C
So
this
is
where
all
the
complex
logic
of
the
workload
lives,
and
then
this
is
this
is
the
main
function.
The
main
item
point
function,
that
sort
of
runs
all
your
workers.
If
you
guys
want
to
take
a
look
at
it,
it'll
it'll
definitely
take
more
to
understand
at
the
time.
I
have
to
explain
it,
and
then
we
here
we
have
all
our
server
code
again
servers
completely
separate
from
the
controller,
and
then
you
guys
can
find
this
stuff
here
and
then
something
something
that
you
guys
will
most
certainly
have
to
deal
with.
C
C
Yes,
the
word
is
idempotent
and
I'll
just
leave
it
open,
I.
Think
for
a
minute
or
so.
If
anyone
wants
to
ask
any
questions
about
everything,
I've
just
explained.
C
A
C
You
can
use
cube
CTL,
they
can
use
process,
namespace,
sharing
and
so
on.
So
those
are
the
different
executives
that
we
have
and
those
executors,
depending
depending
on
your
use
case,
one
might
be
better
than
the
other
and
also
as
a
quick
overview,
there's
an
overview
of
the
different
executor
z--
under
the
docks
and
then
I
think
it's
called
workflow
executor
sphere.
E
And
mainly
that
executed
job
is
like
maintaining
your
input.
Artifact
and
output.
Artifact
like
any
container,
would
be
responsible
to
download
or
a
input
artifact
to
store
it
store
it
for
your
main
container,
then
the
way
weight
container
is
mainly
like
it.
No
monitoring
the
main
container
to
get
complete
then
again
that
all
the
logs
and
the
output
of
the
container
and
push
it
to
the
dock,
diffract
or
parameters.
C
All
right
so
I
think
thanks
Bella
for
that
and
I
think
now.
I
will
hand
it
back
to
Alex.
If
you
guys
have
any
questions
during
this
workshop
feel
free
to
send
a
message
to
the
slack
Channel,
the
Argo,
workflow
I
think
it's
called
Argo
workflow.
Yes,
workshops
like
channel
and
I'll
be
happy
to
answer
them,
and
you
can
also
send
me
a
message
once
like
at
Simon
any
time
cool.
Thank
you
very
much.
A
A
A
When
you
write,
golang
code
goes
into
a
specific
path,
we're
inside
your
home
directory,
so
it
goes
in,
go
slash
source.
Lastly,
and
then
the
name
of
the
repository
and
it
can't
it
can't
go
anywhere
else,
that's
the
that's
the
go
rules
and
because
go
then
downloads
and
impulse
things
against
that.
So
the
first
thing
to
do
is
just
or
just
look
at
there's
two
kind
of
key
files
in
this
repository:
one
is
the
make
file
or
where,
if
they
make
far-gone,
it's.
D
A
I
can't
see
other
words
like
highlighted
there
is
that
is
used
to
build
the
code
and
then
there's
a
docker
file.
That's
used
to
build
the
docker
containers
and
we
have
a
special
docker
file
baldev
to
run
so
the
first
command
to
run
is
just
make
make
starts
and
that
will
attempt
to
build
yourself
a
kombucha
kubernetes
cluster.
So
at
this
point
you
should
have
already
had
a
kubernetes
cluster
available
and
just
run
make
run.
I'm
gonna
ask
people
to
give
me
a
thumbs
up
in
the
chat
room,
so
in
the
slack
room.
A
A
It's
going
to
print
out
some
information
about
your
checkout
code,
and
so
you
can
just
check
what
status
you're
in
and
then
it's
going
to
create
a
namespace
for
your
are
go
to
living
and
that's
called
Val
create
a
namespace
for
your
I'll
go
to
live
in,
it's
called
I'll
go
by
default
and
then
we'll
install
various
bits
of
useful
software
in
there
as
well
so
create
some
service
counts
and
some
roles,
and
one
thing
we'll
do:
is
it
installs
and
Postgres
by
default?
So
you've
got
a
database,
so
you
can
test
archiving
and
installs.
A
A
A
So
there
are
three
three
images
involved
in
our
go
workflows
one
is
called
Argo
exit,
which
is
the
executor
and
it's
the
job
of
the
executor
to
get
your
artifacts
in
and
out
and
monitor
your
individual
workflows
and
there's
the
workflow
controller,
whose
job
it
is
to
actually
run
the
workflow
controller
and
as
of
version
2.5,
there
is
a
piece
of
software
called
the
Argos
server
and
to
the
Argos
servers
job,
to
provide
an
API
server
to
serve
the
user
interface
and
to
provide
big.
That's
it
I,
can't
think
of
anything
else.
A
It
does
part
of
the
Argos
server
is
the
user
interface
and
the
user
interface
is
built
using
yarn
and
we
use
yarn
build
and
a
piece
of
software
called
web
pack
of
web
pack
takes
a
react.
Application
written
JavaScript
will
type
scripts
and
converts
it
into
a
single
webpage
application
with
the
single
javascript
file,
so
kind
of
compiles
the
whole
thing
together
in
static
file,
and
then
we
just
go
through.
It
builds
various
containers.
A
So
you
can
see
that
it's
going
to
ring
and
doing
that
now.
You
can
also
see
a
couple
of
kind
of
light
blue
info
lines
there.
These
are
special
lines
around
k3d,
where
it
imports
the
images
into
k3g
suffuse.
In
case
we
can
say
that
if
you
are
using
dock
at
the
desktop
or
mini
cube
you'll,
you
won't
see
that
I,
don't
know
about
mini
tube
I.
Think
dr.
Podesta.
We
should
be
finally
going
to
import
the
images.
A
A
Cool
great,
thank
you
for
thumbs
up
make
port
forward
just
runs
a
series
of
Cuba
native
port
forward
commands,
and
we
can
now
open
up
local
port
to
seven
four
six
and
our
go
workflows.
Now.
The
the
version
you
get
for
development
is
based
on
a
quick
start
guide
and
the
quick
start
guides
are
intended
to
demonstrate
a
number
of
different
features
of
our
go
workflows,
including
things
like
authentication
and
authorization.
A
The
way
to
get
a
coconut
is
to
just
run
our
go.
Make
the
CLI
that'll
make
you
a
new
CLI,
so
we
in
the
district
tree.
If
you
go
slash
this
slash
agro
ortho,
then
that
will
give
you
an
auth
token.
Now
you
should
be
able
to
run
just
two
agro
auth
token,
if
you
install
that
from
brew,
for
example,
and
you
can
copy
and
paste
that
into
Vox
logging,
and
you
should
be
able
to
see
the
standard
interface
here
with
the
various
different
sections
on
it.
A
Okay,
okay,
so
that's
very
simply
straight
forward.
That'll
give
you
a
running
and
system
trying
plan
locally,
but
what
what
we
haven't
actually
done
is
make
any
kind
of
code
changes
today,
and
so
we're
gonna
make
look
to
make
and
a
relatively
small
code
change.
That
covers
a
number
of
areas
of
the
bit
the
code
and
what
we're
going
to
do
is
we're
going
to
make
a
project
called
emoticon.
A
An
emoticon
is
gonna,
add
an
emoticon
to
the
workflow
based
on
what
happens
on
completion
of
the
workflow,
and
you
can
decide
what
the
rules
are
for,
what
kind
of
emoticon
it
wants
I'm
going
to
decide
if
if
the
workflow
has
the
word
agro
in
the
name,
but
you
can
choose
whatever
rules
you
want
to
do.
First
thing
to
do
is
obviously
check
out
a
branch.
A
It's
at
the
right,
spelling,
I'm
going
to
call
I'll
use
that
one
and
then
it's
just
worthwhile
just
running
make
start
port
forward
and
it'll
build
up
some
new
containers
for
you
and
those
containers
will
get
a
new
tag.
The
tag
will
be
emoticon
rather
than
latest
so
just
kind
of
useful
to
do
that.
Everything
that
forms
part
of
the
workflow
specification
is
in
the
package
directory
and
if
you
go
into
package
it
guys
workflows,
v1,
alpha,
1
and
I'm
going
to
ask
Simon
Simon.
Do
you
think
you
could
post
a
link
to
this?
A
A
I'll
copy
some
of
these
cos
if
it's
in
there
as
well
kind
of
things
you
want
to
ask.
So
what
we're
going
to
do
is
you
want
to
add
something
similar
to
the
node
phase
called
emoticon
and
we're
going
to
choose
a
couple
of
nicknames
of
emoticons
and
what
we're
going
to
do
is
is
create
a
new,
a
new
type
called
emoticon.
A
The
slack
chattering
for
you
there,
okay,
so
it's
a
most
common
happy
in
a
motor
concept.
Now
what
I
want
to
do
is
make
those
guys
available
as
part
of
the
status
on
the
work
phone.
It's
the
way
that
I
would
do
that
is
I
would
add
to
workflow
status
and
workflow
status
is
represented
by
this
type
workflow
status.
I
click
on
that
I
can
see
all
the
various
different
fields
that
that
has
I'm
just
gonna.
Add
a
new
field
called
emoticon
with
the
type
of
emoticon.
So
I've
got
my
new
field
there.
A
Now
this
workflow
types
and
cron
workflow
types
and
work
that
work,
the
types
are
used
to
generate
and
proto
files
to
use
to
generate
the
api's
and
the
way
that
we
update
those
is
by
going
to
the
console
and
running
commands
will
make
code
again:
mitko
Jennings
the
various
code
generation
files,
and
this
is
probably
going
to
be
one
of
the
hardest
parts
of
the
workshop.
Specifically
because
the
make
code
game
task
uses
a
number
of
different
dependencies
on
it
of
it.
A
A
Generated
proto
phone,
you
can
see
that
it's
going
to
get
a
bunch
of
go
dependencies
to
achieve
that.
This
can
take
a
couple
of
minutes,
so
I'm
gonna
have
to
you
know
the
the
enemy
of
every
radio.
Dj
is
dead
air
time.
You
know
it's
very
important
not
to
have
any
kind
of
like
pauses,
because
it
it
really
interrupt
the
flow
of
any
session
I'll
demonstrate
now
what
a
pause
is
like.
A
A
I
am
good
good,
chunk
era,
image,
never
call
that
is
unintentional.
The
the
one
of
the
one
of
the
aspects
of
the
make
start
is
it
sets
image
Airport.
What
I
would
suggest
to
you
is
check
out
a
branch
of
the
code
and
run
mate
start
again
makes
that
will
force
it
to
create
new
images
that
run
make
clean
start.
A
Unit
test,
I
would
just
play
to
get
a
new
function,
doesn't
really
matter
where
this
file
is
func
tests.
Won't
it
can't
see,
and
then
we
just
copy
the
method,
signature
from
a
previous
function
here
and
then
I'm
just
going
to
write
a
test
for
this
I'm
just
going
to
test
I
want
to
create
a
new
emoticon
based
on
some
kind
of
conditions
around
their
workflow.
So
to
do
that,
I'm
going
to
create
a
new
emoticon
command.
A
A
Other
then
it's
going
to
be
an
emoticon,
sad
okay.
So
this
is
my
test
and
I
pop
that
there
and
then
I'll
show
you
how
to
run
the
test.
I'm
hoping
the
coat
Jen's
completed
well
I'm,
going
to
come
back
to
coach
and
show
you
what
it's
created
shortly.
The
rates
on
a
testing
go
is
to
run,
go
test
and
then
give
it
the
name
of
the
package
in
cases
PKG
PKG.
A
G
A
F
G
F
G
A
That's
now
making
me
think:
I've
misspelled
emoticon
all
over
the
place.
There
we
go
so
who
my
my
test
is.
My
test
is
completely
failed
there.
That's
what
I
want
that's
what
I
expected,
because
I
wanted
to
write
the
test
before
I
write
the
code.
So
there
are
two
things
have
gone
wrong
there.
New
emoticon
has
returns
the
wrong
the
wrong
values
there.
So
I
know
a
couple
of
bugs
in
here.
The
first
one
is
I've.
Just
I
can
created.
A
F
A
We
should
see
that
the
first
test
that
passes
and
the
second
test
fails
so
I
can
see
that
the
the
second
test,
I
expected
an
unhappy
face
and
I
actually
got
a
happy
face.
That's
because
my
implementation
doesn't
take
any
interest
in
this
one
flow
here.
So
what
I'm
going
to
do
is
that
a
little
condition.
A
B
G
A
F
A
We
come
back
to
the
code
generation,
we
talked
a
bit
about
what
code
was
generated,
and
so,
let's,
let's
have
a
little
look
at
that
and
you'll
see
that
most
of
the
code
changes
are
made
here
in
the
pkg
directory
here.
So
that's
a
little
look
at
what's
changed
in
here
and,
let's
see
what's
expected
and
what's
unexpected
and
so
couple
of
swagger
files
have
changed
a
jint
until
a
generative
files
have
changed
these.
A
These
four
files
are
all
generated
from
the
work
flow
time,
so
we
can
see
if
I
open
up
this
split,
vocal,
swagger
I've
got
a
new
field.
Court
emoticon
here,
which
is
a
string
I,
can
also
look
at
the
other
generated
swagger
Spencer.
This
is
the
finally
generator
one.
I
can
see
that
change
has
appeared
there
as
well.
So
that's
all
good
I
can
also
see
their
docks
and
changed
appeared
here
and
there's
a
new
field
in
the
fields.
A
F
A
A
Okay,
so,
as
Simon
discussed
earlier
on
most
of
the
logic
around
an
execution,
the
workflows
can
be
found
in
the
workflow
stroke
controller
directory
of
the
repository
and
the
particular
files
here
of
interest
to
control
and
go,
which
is
the
main
controller
loop
and
operator
go
an
operator
go
and
basically
it
will
receive
any
information
of
changes
in
States
that
work
for
them
and
try
and
understand.
What's
going
on
there
so
that'll
be
the
file
I
need
to
make
my
change
in
it.
F
A
Of
places
it
could
be
in
the
code
base,
this
looks
very
promising.
What
have
we
got
here?
Okay,
so
I
happen
to
know
that
when
we
finish
a
workflow,
we
add
this
label
called
completed
to
it,
and
that
is
the
work.
It's
the
word,
workflow
full
name,
slash
completed,
see
you
may
have
seen
the
code
base
so
I
know.
I
can
see
a
number
of
things
here,
having
our
workflow
completion,
so
I'm
going
to
interject.
My
new
bit
of
code
here
walked
up.
Work
flowed
on
status,
emoticon,
it
crawls
new,
emoticon,
walk,
okay,
I!
Think!
A
A
Now
this
is
a
bit
of
a
difficult
bit
of
code
to
test.
So
what
we're
going
to
do
is
you
know
as
a
number
of
dependents
and
there's
some
different
bits
of
other
stuff.
It's
quite
hard
to
test,
so
I
think
I'm.
Actually,
gonna
do
is
I'm
still
going
to
run,
make
start
pork
foot
and
get
a
new
version
of
my
code
running.
B
C
C
A
So
this
is
quite
a
while
to
compile
I'll
tell
you
why
it
took
a
bit
of
time
to
compile
that
this
directory
v1
alpha
1
is
the
the
deepest
directory
in
the
codebase
and
any
change
that
directory
typically
ends
up
propagating
out
across
all
the
files,
and
so
I
can
see
this
now.
I've
run
successfully
and
I
should
be
able.
F
A
A
You'll
notice,
there
is
there's
an
issue
there.
It's
a
capital
in
media
modes,
combat
it's
added
and
the
emoticon
and
he's
got
a
little
unhappy
face
there
because
he
didn't
like
that.
I
named,
it's
awesome,
bear
doesn't
like
bears,
and
so
let's
submit
a
new
one
and
I'm
gonna,
give
it
awesome.
Argon's,
that's
and
hopefully
we'll
see
that,
because
the
logic
I've
chosen
my
workflow
to
to
make
to
add
the
emoticon
to
it,
Vince
correctly,
look
we
can
absolutely
yeah
Mel
down
there.
Oh
he's
the
sad
face.
A
A
A
A
The
operator
we
can
tell
the
operators
are
complicated
far
because
it
contains
two
thousand
six
hundred
lines
of
code,
and
we
can
also
write
a
test
here
for
the
operator.
This
is,
there
are
loads
of
existing
tests
in
here
as
well.
I
could
probably
piggyback
on
I
think
I'm
going
to
look
for
one
that
looks
for
the
phase
of
the
workflow
in
here
I'm
just
going
to
try
and
piggyback
on
that
to
create
a
test.
That's.
A
A
A
A
A
A
A
It's
a
little
a
little
tip
around
and
testing
here,
it's
quite
hard
to
write
and
these
component
level
tests.
If
you're
familiar
with
the
test
pyramid,
the
easiest
tests
to
write
a
unit
tests
and
hardest
test
to
write
their
end-to-end
tests
and
for
Argo
workflows,
you
can
typically
write
one
of
those.
You
can
simply
write
those
three,
but
if
you.
F
A
G
F
A
A
A
E
Hey
my
name
is
mala
most
of
people
snore
though
otherwise
hi
I'm,
a
staff
engineering
into
it
and
I'm
working
on
Drago
work
flow
past,
one
and
half
years,
and
since
last
year,
I
am
the
only
man
that
includes
site,
but
now
we
have
like
an
Alex
Simon
and
Eric.
Almost
four
people.
We
are
contributing
in
their.what
plus
site.
So
let
me
share
my
screen.
E
E
My
already
the
I
did
a
make
start,
so
my
latest,
the
images
are
already
deployed
on
my
K
3d,
which
is
running
now.
I
want
to
debug
my
changes.
So
for
that
one
we
need
to
tear
like
a
stop
the
content
of
running
and
the
k.
3D
are
your
kubernetes
so
that
now
I'm
doing
a
make
down
which
will
do
the
techno.
It
will
update
the
replica
set
to
zero,
so
the
techno,
the
parts
will
be
terminate,
so
the
parts
are
terminating.
E
27:46,
so
you
can
see
that
Tecna,
the
it
has
hit
the
breakpoint.
Now
you
can
do
that.
All
the
debugging
things
like
that
now
you
can
go
to
steps
on
step
in
and
everything
you
can
do
that
and
you
can
monetary
where
values
like
know.
What
is
your
request?
You
God?
What
are
the
parameters?
It's
there
and
everything
you
can
start
debugging
that
further
our
goes
server-side
so
once
we,
then
we
can
get
back
to
the
result.
E
E
So
I
have
a
con.
The
controller
main
clower
main
function
is
in
the
command.
For
pro
controller.
This
is
the
main
one.
When
you
configure
it,
you
need
to
pass
few
element,
which
is
like
executors
image,
which
you
need
to
say
what
image
of
executors
unit
at
st,
because
currently
I'm
in
the
main
master
branch,
so
that
I
have
a
let
us
suppose.
If
you
have
one
branch,
then
our
make
start
will
create
you,
the
the
branch
specific
part
for
you,
then,
which
namespace
you
want
to
run.
E
A
E
Yeah,
definitely
I
will
do
that
in
a
second,
so
I
submitted
a
what
role
immediately.
The
informer
is
informed.
It
to
the
controller
controller
is
already
picked
that
workflow
and
trigger
the
top
rate
function.
So
now
you
can
debug
everything
so
from
here
I.
Can
you
can
see
that
this
is
the
context
here
you
can
see
what
is
the
workflow
you
submitted,
which
is
a
fellow
world,
and
so
basically
it
has
a
generator
mean
and
all
the
things
then
you
can
keep
debugging
like
what
are
the
different
states
are
changing.
E
E
E
E
And
basically,
what
are
the
us
change?
You
are
doing
that
it
will
immediately
get
get
into
here.
I!
Think
no
I
don't
have
this
two
things.
That's
why
it's
failing
yeah!
That's
all
from
me
and
most
of
the
you
a
debug
Aetna.
We
used
to
do
it
with
like
the
Chrome
plugging,
mostly
because
it
meant
the
code
is
the
react
code,
so
we
used
to
do
the
chrome
plug-in
to
debug
that
all
that
chain,
all
the
debugging
stuff
like
that.
So
let
me
put
my
configurations
in
the
chat
room.
Thank.
A
Okay,
so
that's
given
me
an
opportunity
to
tidy
a
few
things
up
in
my
code
base
here.
What
I've
done
is
I've
committed
that
code?
If
you
do
a
git
fetch
and
a
get
check
out
emoticon,
you
can
get
the
cart
but
the
codes.
If
you
have
any
kind
of
issues
that
that
should
get
you
up
to
speed
and
there's
a
bit
of.
A
A
A
A
Just
always
just
here
is
a
service
there
we
go
here's
the
deployment
and
you
can
see
that
these
are
the
arguments
that
it's
used
to
run
and
locally,
and
so
your
own
namespace
mode,
so
the
each
week
is
named
straightaway.
Client
mode
is
all
those
clients
that
we
can
just
climb
out
and
then
we
enable
log
level
as
a
debug
there's
a
couple
other
ones
we
get.
We
do
here
as
well,
so
this
upper
I
ODB
underscore
debug
causes
our
DV
library
to
print
out
the
SQL
statements
and
execute.
A
So
that's
really
useful
for
looking
at
sqi
issues,
this
log
level
debug
where
she
works
for
any
CLI
commands.
So
if
I
do
our
go
long
level
bug
list,
then
it
potentially
shows
some
additional
and
logging
I
think
Priya.
My
good
one
is
probably
I.
G
B
A
A
Of
additional
to
bug
information
printed
to
the
console
there,
so
that's
another
option
to
get
more
debugging
information,
unfortunate,
there's,
no
log
statement
to
build
a
debug
information.
You
me
then
you'll
need
to
use
the
okay,
so
I
wanted
to
talk
a
bit
about
e
to
e
testing.
So
this
point
make
sure
you've
got
the
latest
version
of
the
code
and
you
run
make
start
port
forward
and
I'll
show
you
how
to
write
an
e
2
e
2
s.
A
So
the
way
they
need
to
be
tested
that
work
because
it
tests
by
connecting
to
the
actual
API
itself,
and
so
what
I
want
to
do
is
run
an
e
2
e
test
and
all
the
each-way
tests
can
be
found
at
a
test
/e
to
eat.
There
are
a
number
of
different
ones
here:
I'll
quickly
go
over
the
purposes
of
them,
and
so
the
Argos
server
test
its
job
is
to
check
the
API
is
responding.
A
The
original
appropriate
response
and
CLI
tests
and
CI
with
service
esta
their
tests,
whether
on
the
CI
works
correctly
and
then
there's
a
functional
test,
a
smoke
test
to
make
sure
that
those
things
smoke.
No
I
don't
think
we
would
normally
recommend
you
actually
rice
I
need
to
be
test
this.
What
we
can
do
is
actually
and
demonstrate
how
you
might
write
and
run
one
if
you
wanted
to
do
this
I'm
going
to
pick
the
most
basic
test
here.
This
is
test
basic
workflow
like
and
I
can
run
that
from
the
command
line.
A
A
A
D
A
Actually,
because
there's
a
low,
more
additional
debugging
information
here
around
the
e
e
tests
as
well.
So
if
you're
trying
to
debug
in
e
to
e
test
this'll
shows
you
here,
I
can
even
see
my
emoticons
appeared
in
this
and
the
information
here
as
well.
So
you
to
be
tests.
Typically,
the
really
standard
format
have
any
to
eat
X.
Does
you
give
it
a
file
this
place
basic,
yellow?
If
I
have
a
look
at
test
data,
such
basic
done
yeah,
my
license
is
just
a
very
simple
open
up,
say:
test.
A
I,
sorry,
it's
confused
because
there
are
two
phones
with
the
same
name:
give
it
a
file.
That's
a
bit
of
yellow
I,
see
I'm
running
cows
a
and
it
says
hello
agro,
and
it
says,
if
not
present
its
a
requirement
for
all
tests
to
have
his
agro
eatery
label
to
be
true
that
allows
us
to
clean
up
those
tests
and
till
the
only
workflows
related
to
the
test,
rather
than
other
workloads.
You
might
be
doing
so.
Then
we
have
a
whene
section
which
says
when
you
submit
this
workflow
and
you
wait
for
20
seconds.
A
A
A
A
A
A
Docs,
and
so
what
we
can
do
is
create
a
new
phone
here,
I
simply
just
take
an
existing
file
and
I
make
a
copy
of
it
and
I
just
delete
the
bits.
I
don't
want
from
this
file,
so
this
one's
the
archive
server
file,
so
I'm
just
going
to
delete
all
this
stuff.
I'm
just
gonna
keep
this
and
I'm
gonna
stay
through
this
features
an
alpha
feature
the
file
he
gets
now
for
I
can't
just
indicate
it's
a
very
new
feature.
A
A
D
A
Now
you
guys
can
find
that
it's
a
bit
of
documentation,
it's
up
to
you,
what
you
want
to
write
for
your
books
for
that's
now
on
that
branch.
Now,
before
you
create
a
pull
request,
it's
usually
a
really
good
idea
to
check
a
couple
of
things.
The
first
one
is
to
make
sure
that
the
code
doesn't
have
any
kind
of
syntax
errors,
and
you
can
do
that
by
running
make
lifts
and
that
will
run
a
series
of
kind
of
linting
tasks
on
your
code.
It
will
tell
you
up
the
go
modules.
A
It
will
run
a
piece
of
Sapa
called
go
metal
into,
which
does
things
like
go
format,
go
imports
and
various
other
kind
of
checks
for
for
cut
for
code
issues
and
code,
bugs
that's
the
first
thing
to
do.
I'm,
hoping
we're
not
going
to
find
it
now.
What
this
will
do
is
it'll
automatically
fix
any
errors
in
that
it
finds
in
our
code.
A
The
other
thing
is
to
run
all
the
tests.
Suites
are
quite
good
at
this
run,
make
test
before
you
and
push
your
changes
answer
to
the
CI
server.
If
you
run
make
tests
that
will
run
all
the
tests,
apart
from
those
it
finds
in
the
e
to
e
directory
and
it'll
print
out
the
results
for
you
as
it
as
it
goes
along.
So
we
just
share
those
and
you
can
run
them
yourselves.
A
A
So,
as
I
mentioned,
it's
kind
of
three
levels
of
tests
and
then
and
then
it
generally
suited
to
different
things.
There
are
definitely
some
cases
that
way.
I
mean
the
goal
of
the
e2
air
test,
isn't
isn't
really
to
test.
Everything
is
to
test
things
that
cannot
be
tested
need
to
each
each
we
test,
and
that
is
things
like
api's,
so
we
typically
just
the
API,
returns
the
values,
but
not
necessarily
the
behavior
of
it.
So
there
about.
A
Does
the
COI
prints
them
out,
but
not
does
it
actually
run
a
work,
for
that
would
be
the
wrong
kind
of
thing
to
do.
That's
kind
of
better
at
component
level
tests
and
you
and
you'll
see
that
operational
test
is
quite
a
long
file,
with
many
tests
of
the
different
circumstances
using
PVCs
as
well.
That's
typically
a
better
way
to
do
it
and
the
reason
I
mention
that
the
unit
test
is
if
you've
got
some
kind
of
logic
in
there.
First
it'll
be
better
tested
as
a
unit
test.
A
If
you
can
kind
of
figure
out
how
that
means,
it's
definitely
a
quite,
and
there
is
some
science
and
there
is
some
art
to
writing
good
tests
and
is
typically,
you
can
write
unit
tests.
If
you
write
your
code
in
a
way
to
be
unit
testable,
if
you
do
TDD
well,
that's
quite
a
long
winded
answer
to
it.
The
short
answer
is
yes,
there
are
things
that
couldn't
be
tested.
A
F
A
A
A
Now
one
thing
that's
quite
nice
about
go
testing
is
if
it
doesn't
think
your
tests
need
running,
it
won't
run
them
again
and
you'll
see
this
word
cached
in
the
output
to
indicate
that
is
action
not
running
again.
Go
is
quite
specific
about
where
it
thinks
tests
should
be
she's,
quite
opinionated,
and
what
it
says
is
your
test
should
live
in
the
center.
A
But
goat,
says
that's
not
the
case
and
therefore
it
doesn't
include
that
in
it
won't
rerun
that
test
for
you
because
changed
and
also
thinks
of
that
that
file
shouldn't
count
to
test
coverage,
so
you
may
think
just
I've
written
some
great
tests
it,
but
my
test
coverage
is
hasn't
changed
it's
because
you
need
to
write
those
tests
in
the
same
directory
as
the
funnel
has
changed.
You
can
see
they're
draining
him
out.
I
would
say:
I
am
about
thirty
percent,
confident
in
these
tests
for
parts.
That's
why
that's
my
confidence
level.
D
A
A
Breasts
from
the
emoticon
branch,
and
then
what
I
will
do
is
now
it's
important
to
kind
of
think
about
how
this
pull
request
is
set
up
a
bit.
Well,
firstly,
did
it
get
title?
This
is
a
new
feature,
so
I
know
the
word
feeds
to
the
beginning
of
title
or
if
it's
a
fix,
I'm
gonna
say
add
the
workflow
emoticon
and
that's
helps
me
tick.
This
second
box,
the
PR,
is
conventional
and
helps
me
look
at
the
first
box
as
well,
just
because
this
is
I.
A
Consider
this
chore
I
sign
the
class
again
for
the
X
in
that
box
and
I've
written
some
unit
tests.
For
my
thing,
so
I'm
gonna
put
a
tick
on
that
box
and
finally,
I
looked
into
it
and
into
isn't
there
things
and
what
I'm
going
to
do
is
rather
than
create
an
app
or
request
that
kind
of
tells
people
I
want
to
review
I'm
going
to
create
draft
pull
request.
B
A
Few
people
here
so
I'm
gonna
ask
Simon
to
review
this
so
I'm
just
going
to
provide
some
changes
to
this
I
suspect.
Well,
what
come
and
have
a
look
at
those
later
on,
and
then
it's
gonna
run
a
series
of
jobs
here
in
the
in
the
CI
and
we're
gonna
go
over
what
they
are,
and
this
code
gen
job
and
make
sure
that
your
generated
code
is
appropriate.
A
It
runs
make
code,
gen
and
then
write
make
manifests
these
three
e
to
e
jobs
run
of
ii
ii
ii
ii
tests
and
different
configurations
include
the
mysql
configuration
this
test.
One
runs
testing
and
linting,
and
then
the
docker
bill
makes
sure
you
can
build
docker
built
for
the
a
build
file
to
make
sure
than
the
problems
with
that.
Then.
Finally,
the
UI
one
runs
the
UI
make
sure
that
can
be
built
and
blintz.
It.
A
A
React
is
a
quite
neat
program,
fragment
framework
from
Facebook
I'm
sure
they
would
love
that
I
describe
it
as
neat.
After
all,
the
hard
work
they
put
into
it
and
typescript
is
essentially
a
heavily
tied
version
of
react
and
we
use
in
the
build
tool
users
to
think
what
yarn
she
can.
I
just
run
yarn
start
to
get
the
user
interface
to
start
up
the
user
interface.
Then.
A
The
reason
you
want
to
do
this
is
because
running
in
this
method
has
a
hot
reload
feature:
we're
going
to
use
the
hot
Rolo
feature
to
make
it
easy
to
make
our
changes,
so
he
will
firstly,
he'll
start
up
and,
as
he
starts
up,
he
will
do
a
bit
of
compilation.
He
doesn't
compile
until
the
first
time
we
run
it,
and
now
you
can
see
the
very
normal
user
interface
here.
As
well,
okay
I
can
then
go
in
this
user
interface
and
I
can
click
around
and
see
different
things.
A
F
A
Page
here,
I
think,
okay.
So
how
do
I
know
where
to
add
this
to
well?
I'm
already
sure
I'm,
just
gonna
look
for
a
cup
of
keywords:
there's
a
with
name
spacing
and
capital
letters,
so
I'm,
just
gonna
go
in
the
code
base,
I'm,
just
gonna
search
for
a
name
space
in
capital,
letters
I,
don't
genuinely
don't
know
now
I
happen
to
know
that
all
the
typescript
files
have
an
extensive,
TS
or
TSX,
and
I
can
see
that
that's
there.
What
I
want
to
do
is
case-sensitive,
and
this
has
brought
me
to
this
file
here.
A
There
might
not
be
case
sensitive.
There
might
have
been
some
CSS
I'm
lucky
enough.
I
think
I
found
where
we
put
this
information
here
in
this
farm
here.
Workflow
list
item
but
kmx
sense
to
me:
I've
got
a
line
that
contains
the
content
and
a
line
that
contains
the
face.
So
what
I
might
do
is
I
feel
like
this
is
probably
the
place
to
put
it.
A
I
can
add,
props
top
workflow
knots,
phallus
emoticon
and
that's
not
going
to
compile
in
my
IDE
I
can
see
a
red
line
there,
because
that's
my
IDs
clever
enough
and
it's
gonna
try
and
compile
in
the
console
here
as
well.
So
if
you
don't
have
a
smart
IDE,
then
the
console
will
recoup
all
that
and
I
can
ask
you
this
sort
of
red
printed.
The
console
emoticon.
A
Workflow
status:
okay,
that's
going
to
work
for
us,
which
is
again
and
there's
a
number
of
files
here
that
look
very
similar
to
the
workflows
types
they're,
just
an
emoticon
I'm,
just
gonna
say
it's
a
string.
I
could
I
could
create
an
enumeration
here,
but
I've
been
a
bit
lazy
at
this
points.
I'm
gonna,
see
if
Simon
mind,
review,
will
pick
up
and
ask
me
to
pray
human
there.
We
go
now
sit
upon
successful
and
now,
if
I
go
to
the
user
interface,
there
is
quite
a
badly
rendered
emoticon
in
the
background.
A
Okay,
so
that
just
shows
you
and
if
I
wanna
make
it
user
interface
and
rather
than
kind
of
running,
make
clean
make
build
to
rebuild
the
our
code.
So
the
easiest
way
to
do
it
is
to
run
yarn
start
I,
get
that
motor
con
in
my
code
there
as
well
museum
interface
change,
so
what
I'm
just
gonna
do
is
I've
got
to
check
that
in
I.
A
G
A
D
A
A
Spring
ship
on
that
preview
that
there
we
go,
we
could
see
my
kind
of
badly
formed
emoticon
there
appearing
in
user
interface.
Okay,
so
this
is
my
bill.
Is
that
a
few
moments
to
run
I've
got
a
few
green
tick.
So
it's
looking
pretty
good
I
pretty
come
back
in
about
10,
to
15
minutes,
to
review
that
and
see
how
it's
doing.
A
Okay,
next
I
want
to
just
talk
about
some
of
the
other
things
you
some
of
the
areas
that
might
be
interest
to
you.
If
you
want
to
get
involved,
get
your
hands
dirty
how
to
find
appropriate
issues
or
where
you
might
want
to
have
a
look
at
things
that
could
be
improved,
but
before
I
wouldn't
do
that.
I
just
want
to
see.
If
anybody
had
any
questions,
they
want
to
ask
I'm
just
going
to
add
that
yawn
command.
A
You
want
to
run
the
user
interface,
okay,
any
questions.
Okay,
I'm,
going
to
move
on
now
and
so
I'll
go
over.
Some
of
the
open
source
software
and
open
source
software
really
thrives
on
community
contribution.
I
think
we've
been
incredibly
lucky
recently
to
have
typically
around
20,
to
30
people
contributing
to
every
release
and
there's
several
different
things.
You
can
contribute
if
you
want
to
get
involved-
and
first
is
the
most
easy
thing
is
of
course
just
make
some
kind
of
documentation
change.
A
We
get
quite
a
few
fixes
to
grammar
or
errors,
or
if
you
kind
of
work
on
a
bit
of
area,
you
family
difficult,
and
you
think
you
could
share
your
learnings
and
that's
a
really
good
area
to
submit
PR
that
doesn't
really
require
any
kind
of
code
changes
at
all.
As
I
mentioned,
new
UI
changes,
if
you,
if
you've,
got
some
JavaScript
skills,
they're,
often
a
little
bit
easier
to
do
than
back-end
changes,
but
as
I
meant
people
very
interested
in
doing
interchanges.
A
A
You
know
other
ways
to
do
that
that
we
can
provide,
or
it
may
be,
we
don't
want
only
an
example
would
be,
for
example,
example,
for
example,
would
be.
We
would
like
our
go
to
checkout
code
from
github.
Well,
we're
agnostic
to
what
get
provided
you
provide.
We
wouldn't
want
to
add
code
to
specifically
could
github
because
then
we'd
have
to
add
it
specifically
get
lab
as
well.
A
So
you
probably
wouldn't
want
to
do
that
piece
of
change
if
you
want
to
just
like
pick
up
a
random
issue,
we're
very
similar
to
other
repositories
that
we
use
a
couple
of
labels
to
indicate
areas
that
we
want
help
on.
So
what
is
Help
Wanted?
So
you
can
have
a
look
and
see
any
kind
of
issues
we
want
some
help
on
that
or
diagnose
it.
Diagnostics
helps
and
the
other
one
is.
A
Dokie
now
we're
a
bit
ahead
of
time,
which
is
really
good
news.
Every
guy
they
were
ahead
of
time.
I
would
like
to
now
just
open
this
up.
Does
anybody
have
any
questions
or
any
area?
If
they
want
to
ask
any
kind
of
details,
they
were
interested
or
anything
you
found
confusing.
You
want
us
to
go
over
again.
G
I
am
thanks
so
much.
This
was
a
really
good
walk.
I
did
have
a
quick
question.
You
showed
us
how
to
your
debug
server,
the
controller
and
the
UI.
We've
been
kind
of
experimenting
with
the
sidecar
container.
More
than
anything
which
is
tricky
to
debug
is.
Is
there
do
you
guys
have
a
way
of
debugging
that
in
an
IDE
or
something
similar.
A
The
containers
typically
have
the
ability
to
start
with
a
debug
mode
and
in
the
configuration
I
believe,
there's
a
field
in
conflict
called
executor
and
that
will
allow
you
to
run
and
choose
what
executor
you
run.
You
can
choose
to
run
a
different
version.
You
could
build
a
new
version
that
contains
an
edition
of
debugging
object.
I,
don't
know
if
there's
a
debug
flag.
We
can
add
that
Simon.
C
It's
usually
for
me,
the
best
way
to
debug
in
the
exec
container
is
just
with
print
statements.
Unfortunately,
it's
just
what
I'm
used
to
so
I
will
essentially
just
litter.
The
area
I'm
interested
in
with
statements
run
it
you
can
use,
cube,
CTL,
the
container
name,
batchi
e
/
weight
and
then
you'll
get
the
weight
container
pods
and
then
that's
what
I
usually
do.
A
That
would
be
a
great
way
to
demonstrate
what
you've
done
today.
If
you've
got
any
more
questions,
please
feel
free
to
drop
a
message
in
to
the
contributor
workshop
Channel
there's
also
an
Argo
dev
Channel
and
the
slack,
and
that's
really
aimed
at
people
doing
doing
contributors
so
rather
than
contributor.
Eight
questions
in
that
kind
of
Argo
workflow
slack
I'll
go.
F
A
Is
gonna
give
you
a
bit
of
a
more
of
a
more
especially
refined
audience.
You
know
we
are
more
fine,
definitely
and
more
more
expert
audience
two
for
your
questions,
I'm
Matthew
of
question
I'm,
not
showing
any
videos
the
answer,
your
question
we
will
create
a
recording
and
I
will
put
that
onto
youtube.
So
you
can
share
that
with
people
later
on.