►
From YouTube: February 10, 2021 - Jenkins GSoC Office Hours
Description
Kristin Whetstone presented on Jenkins Pipeline Steps Docs Generator (https://github.com/jenkins-infra/pipeline-steps-doc-generator).
Could be a framework to use to do REST API Spec Generator (proposed GSoC project idea - https://www.jenkins.io/projects/gsoc/2021/project-ideas/automatic-spec-generator-for-jenkins-rest-api/)
A
B
Yeah,
so
so
there
is
a
there
is
a
tool
called
the
pipeline
step
stock
generator
that
kristen,
I
believe,
was
actually
the
original
author
of
and
what
this
tool
does.
Is
it
extract?
It
is
the
generator
that
presents
pages
to
www.jenkins.io
that
describe
all
the
pipeline
steps
from
right
now,
hundreds
of
jenkins
plugins.
B
C
Well,
thanks
mark
yes,
so
basically,
if
it
does
exactly
what
you
were
saying
and
I
like
to
think
of
this
generator
in
two
distinct
parts,
the
first
part
is
kind
of
this.
Entire
local
pipeline
called
the
hyperlocal
plug-in
manager,
which
basically
acts
as
a
plug-in
manager
that
exists
outside
of
jenkins.
C
That
allows
you
to
be
able
to
do
like
it
loads
plug-ins,
just
as
inside
of
jenkins,
but
it
doesn't
require
jenkins
to
run
and
the
second
half
of
this
is
the
actual
part
that
goes
through
and
like
generates
the
ascii
dock,
that's
required
by
the
website
to
actually
be
displayed,
so
you
can
see
it
beautifully
and
like
with
many
different
layers
and
stuff
and
drill
down
and
the
links
inside
of
the
documentation.
C
So
I
guess
I
will
kind
of
I
can
kind
of
go
over
it
in
two
in
those
two
parts.
Would
it
be
helpful
if
I
shared
my
screen.
B
C
All
right,
so
I
I'll
cut
there's
this
is
kind
of
the
entire
project
here
and
it's
only
a
few
classes
to
make
this
entire
thing
go
so
I'll
close
this
folder
here,
so
the
entrance
into
the
pipeline
steps
extractor
or
the
into
like
this
entire
thing
here
is
this
class
called
pipeline
steps
extractor
and
it
reports
a
lot
and
it
looks
scary,
but
it's
because
it
has
to
be
able
to
pretty
we're
pretty
much
like
faking
out
a
lot
of
what
jenkins
does
when
it
does
all
of
the
plug-in
loading
when
it
starts
up.
C
So
let's
get
down
here,
there's
a
bunch
of
parameters,
so
you
can
say
basically
what
so
part
of
this
is
because
we're
you're,
basically
picking
out
the
beginning,
we're
speaking
out
the
beginning
part
of
jenkins.
We
have
to
tell
it
to
point
to
a
plugins
directory
so
and
the
plugins
directory
should
be
pre-populated
with
all
the
plugins
that
you
would
like
to
import.
C
So
as
part
of
the
build
step
for
this
job,
we
actually
go
and
we
go
to
like
the
jenkins
plugin
site
and
we
download
all
of
the
plugins
ever
into
a
folder.
And
what
and
these
are
the
hpi
or
the
jpi
files
pretty
much
exactly
like.
If
you
took
up
gen,
you
took
your
jenkins
instance
and
wanted
to
install
every
single
plugin
that
we
make
and
the
reason
we
do.
This
is
because
in
this
generator
we
have
no
idea
what
the
pipeline
steps
are,
and
every
day
since
new
plugins
are
added
or
plugins
are
enhanced.
C
This
is
a
lot
of
things.
We're
trying
to
load
into
our
basically
are
like
our
plug-in
manager.
So
there
are
a
few
things
that
we
do
to
kind
of
like
prevent
too
many
open
file
handlers,
because
that's
you
two
things
loaded
at
once,
but
generally
at
this
point
it
works.
So
I
haven't
seen
any
issues
with
it,
dealing
with
the
massive
hundreds
of
plug-ins
that
we
have
inside
of
jet
kids.
So
far,.
B
So
so
are,
do
you
want
questions
during
or
do
you
want
questions
to
be
a
little
later?
What's
your
preference.
B
Okay,
so
so,
okay,
so
so
the
the
early
step
is
download
all
the
plug-in
binary
files,
all
the
plug-in
binaries
to
the
local
file
system,
so
that
you
can
then
process
them.
So
you
download
or
the
tool
downloads,
a
thousand
five
hundred
or
a
thousand
seven
hundred
plugins
from
the
jenkins
update
site
and
now
has
them.
C
Locally
you'll
have
to
download
or
point
it
to
whatever
plug-ins
you
want
the
tool.
Doesn't,
I
think,
the
jenkins,
the
jenkins
job
for
the
tool?
Does
the
tool
just
will
use
whatever
directory
it's
pointing
at
think
of
it
like
jenkins
right,
you
want
to
be
able
to
have
your
plug-in
prop
plug-ins
directory
pre-populated
same
thing,
with
the
tool.
B
C
That
takes
forever
and
then
sometimes
it's
actually
yeah.
So
if
you
have
a
fewer
subset
that
you
know
that
exactly
what
it
should
be,
it's
good
to
be
able
to
visually
test
what
you
want,
so
you
can
make
when
it
produces
the
documentation.
You
can
see
like
okay,
yes,
this
is
correct
also
so
it's
it
just
runs
a
lot
faster
when
it's
not
working
on
every
single
plugin.
B
C
Thank
you,
so
I
started
actually
updating
the
readme
because
after
I
saw
that
comment
in
the
channel
that
it
was
outdated,
I
was
like,
oh
okay,
so
I
started
trying
to
go
through
this
and
I
was
hoping
to
do
a
full
request
at
some
point
kind
of
explaining
a
lot
of
this
in,
like
the
architecture
section
and
then
maybe
helping
with
a
little
bit
more
of
a
readme,
so
I'll
make
a
pull
request
with
this
updated
information.
But
it's
still
good
that
we're
doing
this
today.
C
Thank
you,
yeah,
yes,
so
that's
where
that
part
comes
in,
and
so
now
we
go
into
this
method.
We
have
a
bunch
of
different
like
a
place
where
you
want
to
print
the
ascii
dock
and
that
there's
like
declarative
pipeline
syntax,
that's
just
generated
by
this
too,
and
right
like
this-
is
just
kind
of
like
where
the
file
at
the
end
of
all
this
gets
written
and
then,
if
you're
missing,
that
it
will
fill
in
spawn
about
except
all
right.
C
So
the
next
piece
we
want
to
do
is
it
comes
to
your
hand,
says,
find
steps,
and
this
is
the
part
where
we
we
start
by
basically
creating
what
we
call
what
I've
referred
to
here
as
the
hyper
plugin
manager,
and
this
here
is
the
plugin
manager
without
jenkins,
so
we'll
go
into
that
class.
Now
all
right.
So
during
jenkins
startup,
it
does
a
lot
of
things,
and
one
of
them
is
it
starts.
C
The
plugin
manager
reports
like
I'm
done,
you
can
actually
have
access
to
all
of
these
classes,
like
the
plugin
manager,
will
load
all
the
classes
into
an
extension
list
and
like
into
itself
into
a
class
loader
and
then
be
able
to
have
that
available
to
jenkins
outside
everything
else.
So
if
you
ever
look
inside
jenkins
and
like
how
it
uses
plugins,
it
basically
can
go
to
this
class
loader
and
pull
information
about
what
is
installed
and
like
what
it
can
do.
So
what
we're
trying
to
do
here
is
like
all
right.
C
We
don't
have,
and
the
plugin
manager
like
requires
of
running
jenkins,
because
it's
very
hard
at
this
point
to
have
things
that
are
separated.
So
what
we're
doing
here
is
to
say
all
right.
I
just
want
to
mock
jenkins
and
basically
use
say
like
yes,
it's
running,
but
I
just
want
the
plugin
manager
instance.
So
there's
a
lot
in
here.
That
is
like
very,
very
complicated,
because
it's
how
jenkins
itself
runs
and
a
lot
of
times
like
we
don't
necessarily
care
about
what
jenkins
is
doing.
C
C
C
The
way
that
we
can
get
away
with
having
a
jenkins,
basically
not
having
jenkins,
is
we're
using
maquito
to
basically
fake
out
jenkins,
just
like,
if
you're
writing
a
unit
text,
but
we're
using
it
here
inside
of
the
code
so
there's
base
whenever
there
are
certain
methods
that
it
calls
to
say
like
is
jenkins
there.
We
pretty
much
return
and
answer.
That's
like
yes,
jenkins
is
here
or
like
the
init
level,
is
something
that
it
will
check
as
well.
C
So
the
jenkins
init
level
will
tell
you
where
it
is
in
the
startup
process
and
is
required
to
be
completed
before
the
plugin
manager
complete.
So
we
just
say
yeah
yeah.
It
was
complete
same
thing
here,
like
this
install
state
is
another
piece
that's
needed
by
jenkins,
so
we
just
returned
that
it's
in
test.
C
So
whenever
we
instantiate
that,
when
you
say
git
mock
jenkins,
I
think
this
is
used
in
a
couple
different
places.
We
basically
pass
in
like
our
plugin
manager,
and
then
we
tell
it
to
return
our
plugin
manager
rather
than
yeah.
We
want
to
return
our
instances
of
plugin
manager,
not
like
anything
else
and
then
there's
a
couple
other
pieces
here
that-
and
these
are
just
kind
of
filled
in
like
as
I
was
building
the
plugin
manager.
I
just
like
it
as
soon
as
I
tried
to
query
jenkins.
C
I
would
just
basically
return
a
box
for
different
different
pieces.
Like
get
computers,
I
think
returns
the
plugins
directory,
and
this
is
based
on
like
what
system
that
you're
in
diffusing
yeah.
So
so
a
lot
of
these
are
just
explicit
methods
are
used,
while
the
plugin
manager
is
loading
itself
up.
The
other
class
that
is
mocked
out
here
is
this
mock
extensions
list,
and
this
is
it's
a
fuller
explanation
of
what's
going
on,
but
this
is
another
thing:
that's
internal,
the
jenkins
that
is
used
to
figure
out
the
types
of
pieces
inside
of.
C
How
best
to
describe
this?
It's
like
it's
a
it's!
This
is
helping
you
get
the
annotations
and
different
parts
of
the
extensions
from
jenkins,
so
we
wanted
a
reference.
Oh
sorry,
before.
B
So
so
we,
the
I
think
of
extensions
as
things
that
I
add
on
to
the
settings
for
get,
for
instance,
to
tell
it
to
do
something
different,
or
do
this
other
thing
or
do
that
thing
is
this?
One
of
those
kind
of
extensions
is
that
the
concept
here
is
anything
I
add
into
jenkins,
I'm
commonly
using
a
thing,
I
think,
of
as
an
extension.
C
So
this
will
help
you
get
what
you
get.
The
extensions
got
it
great,
so
you
can
see
here
that-
and
this
is
again
like
very
internal
to
this-
is
another
jenkins
internal
piece.
So
the
stuff
that
you're
talking
about
mark
where
you
like,
annotate
with
the
extension
and
then
you
list
it
out
like
what
inside
is
you
do
like
extension
and
then
it's
the
quotes
and
then
what
the
extension
is
inside
right.
So
now
you
can
use
this.
C
This
load,
we
want
to
be
able
to
tell
it
to
use
the
hyper
local
plug-in,
manager's,
plug-in
strategy,
and
the
plug-in
strategy
is
used
on.
It's
basically
used
by
the
by
a
plug-in
manager
to
say
how
you
want
to
be
able
to
load
plug-ins,
and
we
actually
have
a
copy
of
that
defined
here
inside
of
our
plugin
manager.
C
Again,
it's
all
so
we
can
be
able
to
access
the
plugins
locally
and
some
of
the
things
inside
of
jenkins
too,
like
the
plug-in
strategies,
it's
only
defined
at
the
jenkins
level
as
an
abstract
class
and
like
the
actual
jenkins,
plugin
manager.
This,
like
local
plugin
manager,
which
again,
I
think,
is
also
an
abstract
class,
like
the
one
that's
actually
used
by
jenkins,
defines
the
plugin
strategy
like
as
a
private
class
inside
of
itself.
C
So
I
couldn't
just
copy
like
I
couldn't
just
get
to
that
plugin
manager
that
was
provided
by
jenkins
because
it
was
private.
So
I
had
to
define
a
plug-in
manager
in
here
or
plug-in
strategy
in
here
part
of
the
plugin
manager.
You
can
also
see
there's
this
class
loader,
and
this
is
the
actual
instance
itself
that
they're
the
actual
object
that
has
the
references
to
all
the
different
classes
inside
of
jenkins.
C
If
this
is
getting
too
into
too
deep
into
other
pieces,
you
can.
Let
me
know,
I
don't
know
how
much
how
helpful
some
of
this
is
to
actually
being
able
to
see
like
extract
the
steps,
because,
after
like
all,
this
is
done.
The
basis
of
the
really
important
thing
that
we
want
to
do
here
is
we
can
use
after
we
have
a
references,
plugin
manager,
that's
been
loaded
up.
We
can
tell
it
to
say.
C
C
B
C
Because
this
this
is
kind
of
like
this
here
is
this
in
it
strategy
and
this
diagram
plug-ins,
because,
as
we
saw
before,
like
this
plugin
diagram,
plugins
method
here
ignore
the
jenkins
internal
stuff.
This
this
is
the.
This
is
the
important
method
so
yeah
this
this
right.
So
this
these
three
lines
pretty
much
tell
it
to
get
started
the
image
strategy.
C
I
think
it's
defined
it's
something
that
you
can
import
from
jenkins.
We
basically
pass
it
in
and
say
diagram.
The
plugins
is
basically
tell
it
to
go
and
because
it's
execute
reactor
comes
again
from
like
how
jenkins
tells
the
plugin
manager
run,
I'm
not
100
sure
right
now
like
why
it
does
it
this
way,
but
this
is.
I
just
know
that
this
is
how
it
has
like
a
reactor
is
how
jenkins
interacts
with
the
plugin
manager.
So
basically,
I
just
copied
the
execute
reactor
method
and
told
it
to
basic,
basically
told
it
to
run.
C
I
think
there
might
be
some
reason.
That's
why
it's
like
has
some
mock
jenkins
stuff,
but
you
have
to
tell
it
to
execute
as
a
reactor
and
then
yes
and
then
here
instead
of
looking
for
the
rest
api
annotations,
I
don't
know
what
they
are,
but
I
just
know
that
stuff
descriptor
one
works
for
the
plug-in
steps.
So
then,
after
that
you
have
a
lit,
it
will
return,
and
this
find
components
you
can
search
for
anything
based
on
class
and
it
will
return
a
list
of
that
class
and
then
from
there.
C
Everything
below
that
like
this
is
the
part
that
I
think
you're
going
to
care
about,
and
then
everything
below
this
is
basically
getting
it
to
the
point.
Where
excuse
me
like,
basically
getting
it
to
the
point
where
it
can
generate
the
ascii
dock,
which
was
its
own
fun
because
there
was
no
java
at
the
time.
When
I
was
writing
this.
There
was
like
no
good
java
library
to
be
able
to
generate
aspidoc.
C
So
that's
why,
like
this
document
exists
or
this
class
exists,
it
goes
and
actually
takes
a
whole
bunch
of
pieces
that
are
very
specific
to
like
what
a
step
is
and
then
appends
a
whole.
It's
it's
a
little
painful.
It
takes
string
of
pending
and
just
builds
this
dot.
Like
builds
this
massive
string
of
layers
for
that
is
ascii
doc.
I
kind
of
wish
there
was
like
a
better
way
other
than
string
string
offending.
C
I
think,
if
you're
doing
breast
documentation,
it's
a
lot
easier
to
be
able
to,
I
think,
there's
libraries
out
there
that
would
help
you
with
this,
but
for
ascii
doc.
There
wasn't
so
it
looks
this.
That's
why
this
class
and
this
quasi
descriptor
are
a
little
messy.
I
hope
there
would
be
a
better
way
than
being
able
to
build
it
like
that.
B
D
D
Yeah,
thank
you
christian
for
this
beautiful
presentation,
and
so
currently
I
don't
have
a
question
to
be
honest,
but
so
far
what
I
understand
what
she
said
is
cloning,
all
the
plugins
and
then
you
said
there
are
three
lines
which
is
quite
important.
D
What
they
are
doing
is
actually
extracting
the
classes
that
we
cares
about
and
then
from
that
actually
from
that
classes,
which
you
named,
I
believe,
step
descriptor.
You
are
just
extracting
your.
B
C
C
C
This
is
actually
your
when
the
stuff
for
the
rest,
api
generator,
you'll,
probably
write
something
similar,
but
very
focused
on
how
the
rest
calls
look
inside
it
like
how
the
rest
pieces
look.
I
don't
know
really.
I
don't
know
like
when
I
looked
at
this.
It
was
very
much
of
like
okay.
What
this
is
the
stuff
descriptor
class
like
what
are
the
different
pieces?
You'd
have
to
look
at
the
rest
api
once
it's
like
kind
of
maybe
build
something
similar
excuse
me
and
then
I
yeah
like
this
is
just
kind
of
figuring
out.
C
What's
the
plugin
name,
this
might
be
helpful
for
figuring
out
that
piece,
because
you
can
get
a
descriptor
and
then
there's
a
method
inside
of
plug-in
manager
where
it
like
acts
like
the
plug-in
manager,
can
actually
tell
you
this
stuff
and
that
those
pieces
are
found
inside
of
here
as
well.
C
So
that's
kind
of
the
whole
reason
again
like
we
use
the
plugin
manager.
It's
there's
it's
powerful.
It
can
do
things
for
us
and
it
means
that
we
don't
have
to
go
through
and
try
to
like
search
on.
I
mean
there's
hundreds
and
hundreds
of
plugins
and
all
of
them
could
have
pieces.
This
allows
the
plugin
manager
to
just
do
it
for
us,
so
that's
kind
of
why
we.
I
went
down
this
path
with
the
generator
like.
B
D
C
So
I
what
would
be
really
helpful
here-
and
I
think
at
one
point
actually
now,
I'm
thinking
about
this-
I
think
andrew
bear
tried
at
one
point
to
take
out
the
hyper
local
plugin
manager
and
all
the
locking
pieces
into
another
repository.
So
maybe
that
was
part
of
the
project.
That
would
be
useful
because
we
don't
really
want
to
repeat
code
right
so
like
if
it's
possible
to
like
take
those
pieces
out,
so
they
can
be
used
by
more
than
one
thing.
C
I
don't
know
what
other
documentation
would
need
to
be
generated,
but
it
could
be
helpful
in
the
future,
basically
like
these,
like
basically
being
able
to
take
out
the
plugin
manager
these
jenkins.
It
has
another
thing
I
should
point
out
because
of
the
way
maquito
works.
It
has
to
be
in
main
java,
hudson
folder,
because
that's
how
it's
stored,
like
thankfully
not
too
many
levels
deep
but
like
the
java
hudson,
is
where
the
package
is
located
inside
jenkins.
So
it
just
has
to
follow
that
same
folder
structure.
C
If
you
take
those
pieces
out,
it
can
be
used
by
anyone
anywhere
but
yeah
like
basically
again
like
in
two
halves.
I
always
take
like
this
mocking
half
and
then
as
soon
as
you
get
to
this
part,
where,
after
you
execute
the
reactor
and
basically
load
up,
all
the
plugins
feel
free
go
go
for
it.
You
can
figure
out.
You
can
do
anything
that
the
plugin
manager
allows
you
to
do
because
now
you
have
a
reference
to
it
and
you
don't
have
to
worry
about
spinning
up
jenkins.
E
C
So
the
plugin
installation
manager
is
another
really
cool
thing,
but
the
plug-in
installation
manager
it
helps.
You
basically
get
to
the
point
before
you
want
to
start
your
jenkins,
so
that
will
go
and
it
plug
installation
manager
will
take
a
list
or
you
can
go,
take
like
a
string,
separate,
comma
stuff
or
a
value
list,
or
I
think
you
can
use
a
yaml
file
mark.
You
can
back
me
up
on
this
that
one
okay,
good
gamble
file
and
you
can
actually
and
use
that
to
go
and
download
the
plugins
in
the
first
half.
C
So
almost
you
could
use
these
projects
together.
Right,
you
can
go
and
say:
hey
here
are
the
list
of
plugins
that
I
want
to
install
or
I
I
would
like
to
basically
run
with
my
to
get
the
plug-in
steps
or
pipeline
steps
for
download
them
to
a
folder,
and
then,
when
you
run
the
docs
generator,
you
point
it
at
that
folder
and
then
it
will
just
look
at
that
subsection
of
plugins
the.
I
really,
I
think,
the
project
that
that
was
a
google
summer
code
project
like
two
years
ago.
It
was,
it
was
really.
E
Yeah,
like
yeah,
it
was
two
years
ago
also-
and
this
year
oleg
has
like
mentioned
this
project
like
some
improvements
for
the
tool.
So
I
think
this
year
also,
this
is
in
the
ideas
list,
project.
C
I
actually
helped
with
that
project
two
years
ago
too.
So
if
you
have
any
questions
about
it,
I
can
answer
those
as
well.
So
maybe
it's
a
good
thing
I
joined
today,
but
do
you
have
any
specific
questions
about
that
project?.
E
Yeah,
actually
I
have
I
have
been
like
thinking.
I
read
the
details
about
the
project
idea
and
there
was
like
improvements
which
were
based
on
the
tickets,
which
are
posted
on
jira
or
the
issues
that
were
posted
in
github
so
like
there
was
one
feature
like
requested
by
some
user
regarding
the
locking
of
the
like
locking
the
dependencies
for
the
instance.
E
So
I
was
like
thinking.
I
didn't
do
much
of
a
research,
but
I
thought
maybe,
while
like,
if
you're,
given
a
file
to
print
out
the
like,
if
you're
given
the
file
to
download
the
plugins
like,
will
it
be
feasible
to
just
copy
those
things?
C
B
C
C
Here's
what
I
want
to
install
and
then
here's
kind
of
what
you
need
to
what
what
it
requires
is
that
kind
of
what
you're,
the
the
reason
that
this
is
a
little
bit
harder
than
it
originally
thought
is
that
when
you
have
a
whole
bunch
of
different
plugins
inside
of
like
basically
defined
each
of
them
could
require,
and
sometimes
they
do
require
different
base
versions
of
the
plugin
and
one
of
the
other
plugins
that
you
might
have
tried
to
install
but
will
require
a
higher
version
than
the
locked
or
like
a
yeah,
a
different
version,
the
one
that's
locked,
so
you
can
end
up
with
down
the
line.
C
Dependency
conflicts.
So
you
know
you
have
like
your
locked
version
might
be
able
like
it.
It
requires
certain
versions
of
the
plugins
to
be
installed
and,
like
you,
if
you
want
it
truly
at
that
version,
you
can't
really
have
features
that
are
being
issued
by
plug-in
or
by
plug-ins
that
are
at
a
higher
version
level.
So
I
think
that's
kind
of
like
where
the
problem
comes
in,
but
doing
a
preview
step,
or
you
can
say
these
are
exactly
the
versions
of
these
plug-ins
required
by
the
one
that
you
have
blocked.
C
C
I
think
like
halfway
through
that
project
there
we
ended
up
finding
some
other
class
like
other
projects
that
would
have
made
it
easier
to
do
version
dependency
calculations,
and
I
think
that
might
be
useful
to
look
into
for
this,
for
the
download
project
is
to
see
like
what
else.
There's
some
code
out
there
to
like
how
to
write
a
package
manager
and
like
that
might
be
able
to
be
helpful
for
doing
these
calculation
steps.
So
if
you
can
look
to
significant.
E
C
Sure,
yeah
I'll
I'll,
find
them
and
put
them
in
the
channel,
but
like
those
might
be
something
good
to
look
at
as
kind
of
like
a
an
overview
of
how
to
do
the
dependency
calculation
stuff
because
yeah
it
it
got
really
hard.
At
a
certain
point,
I
mean
it's
really
fun.
It's
a
really
fun
problem
right
like
and
it's
something
that
you'd
love
to.
C
Do
you
have
these
huge
maps
and
you
have
to
figure
out,
what's
the
most
optimal
thing
to
download
you
can't
have
duplicates,
you
only
have
one,
because
jenkins
will
not
be
happy
if
you
try
to
install
multiple
the
same
plugin
so
like
which
one
do
we
end
up
installing
and
so
I'll
see.
If
I
can
find
those
again
and
post
them
in
the
but
like
that
or
sorry
in
the
getter
channel,
but
that
would
help
with
how
to
help
do
the
dependency
calculations.
A
I
have
a
contextual
question.
This
discussion
has
has
turned
to
being
about
the
proposal
for
the
plug-in
installation,
yeah,
okay,.
A
No,
no,
no
please!
This
should
be
a
free-ranging
discussion.
I
love
it
when
people
just
take
ideas
and
run
with
them
and
connect
them
to
new
things.
That's
perfect!
It
was
really
for
me
and
then
that
question
of
dependency
management
and
managing
different
versions
of
dependencies
that
may
be
needed
doesn't.
A
Does
it
not
seem
that
there
should
be
some
some
open
source
tool
that
should
be
able
to
help
us
with
dependency
like
it
does
seem
like
a
very
package
manager,
type
problem,
which
seems
like
there's
been
so
much
work
done
in
that
space
already.
I
just
don't
know
what
tools
could
be
used
with
jenkins,
but.
C
That's
what
was
hard
like
right,
because
we
were
just
basically
like
all-
we
want
from
the
package
management
tool-
is
just
that
calculation
step,
because
we've
already
got
all
the
files.
I
think
we
already
do
our
management,
but
inside
of
jenkins,
is
just
kind
of
like
take
the
latest,
and
so
it
was
just
like
okay.
How
could
we
basically
get
that,
like
the
calculation
and
it's
like
if
we
can
just
take
the
calculation?
C
That's
what
we
would
want
to
take
from
the
tool,
because
right,
you're,
right
cara,
like
there's
a
ton
of
tools
out
there
to
be
able
to
do
this
already
for
almost
every
flavor?
But
it's
like
we
just.
I
think
that
that
installation
manager
tool
just
is
supposed
to
act
like
our
dependency
manager,
or
it's
just
supposed
to
be
like
our
package
management
tool,
yeah.
E
C
Need
a
better,
I,
we
just
wanted
to
kind
of
look
at
how
best
to
calculate
the
version
required.
So.
E
C
B
C
A
Just
just
to
ask
more
from
you,
kristen
actually
sure.
A
You
are
more
than
welcome
you.
We
would
be
very
grateful
and
excited
for
you
if
you
had
any
time
to
volunteer
to
mentor
for
gsoc
and
if,
if
you
had
that
space
in
your
schedule,
if
you
wanted
to
put
yourself
down
as
a
mentor
for
either
of
those
projects,
that
would
be
great.
A
I
I
should
just
say-
and
I
don't
know
if
this
is
being-
if
we're
messaging
this
clearly
enough,
but
and
I
I
should
be
working
harder
on
this-
the
g-suck
projects
this
year
are
half
the
size
essentially
in
terms
of
hours
being
demanded
of
the
students.
Okay,
so
the
overall
projects
will
themselves
be
smaller
as
well.
They'll
have
a
smaller
scope,
and
this
also
means.
A
A
You
know
it's
like
this
multi-phase
process,
the
coding.
B
A
Is
not
until
the
summer,
it's
basically
the
same
ten
weeks,
and
actually
I
can
oh
okay.
So
precisely
so,
this.
C
A
We
should
be
flexible
with
them
and
similarly
for
mentors
as
well,
which
is
why
it's
nice
to
have
multiple,
multiple
mentors,
but
yes
for
submitting
our
application
as
a
gsoc
project.
That
application
is
due
very
soon
that's
due
on
february
19th,
so
it's
nice
to
have
additional
mentor
names
down,
as
we
you
know,
have
that
as
part
of
our
application
and
then
in
march
the
organizations
that
are
chosen
are
announced
and
then
there's
the
student
application
period
and
then
the
student
bonding
period,
but
coding
proper,
doesn't
start
until
june.
A
B
Channel,
okay,
deeply
appreciated
kristen.
Thank
you.
Thank
you.
So
vibe
is
also
with
us.
Himanshu
or
sagar
did
either
of
you
have
questions
relative
to
any
of
the
cloud
native
topics.
The
cloud
events
plug-in
or
anything
like
that,
if
not
that's,
okay
but
vibe,
is
with
us
and
is
probably
willing
to
answer
questions
if
you
have
them
on
those
project
ideas,
if
you
don't
no
problem,
no,
no
guilt
there.
It's
just
we've
got
one
more
potential
mentor
here
as
well.
B
A
A
Or
or
I
will
I
had
a
question
on
your
design
doc
for
gsoc
cloud
events,
plugin
proposal,
I
gave
a
little
bit
of
feedback,
but
in
general
I
think
I
think
it
looks
great
have
have
you
been
able
to
connect
that
design
doc
to
the
the
proposal?
That's
on
on
the
jenkins
gsoc
page.
A
Yeah,
that
would
be
awesome
because
I
think
it's
helpful
for
students
considering
the
project
and
then
I
wanted
to
ask
I
didn't
see,
but
you
know
it
might
be
me.
I
didn't
see
the
techton
client
plugin.
Are
you
still
happy
to
propose
that
as
a
gsoc
project
idea.
F
Yes,
so
for
the
tech
online
plugin
I,
what
I'm
going
to
do
is
I'm
going
to
create
a
design
dock
which,
which
kind
of
explains
what
the
client
plugin
does.
So
anyone
who
wants
to
get
started
can
easily
get
started
for
what
already
exists,
and
then
I
create
the
proposal
and
create
a
pr
for
the
proposal
within
tomorrow.
Probably
I'll.
A
Did
you
have
any
questions
for
us
as
organizers,
any
anything
that
would
be
helpful
on
our
end
just
so.
I
know
that
I'm
not.
F
Okay,
I
I
I
need
to
gather
questions
I
so
this
is
the
first
meeting
I'm
attending
and
I
was
actually
in
a
sprint
review
just
some
five
minutes
ago,
so
I
need
to
so.
I
will
I'll
ask
questions.
Maybe
in
the
next
meeting
I
might
ask
some
questions,
but
for
now
I'm
I'm
here
just
to
attend.
A
Okay
sounds
good,
and
then
I
have
questions
essentially
for
mark.
A
As
as
my
mentor
in
this
process,
we
have
had
potential
gsoc
proposal,
ideas
that
have
been
submitted
on
the
jing
nci
dev
channel
mailing
list,
so
they
are
public
and
you
know
it's
it's
hard
for
me
to
understand
how
how
where
to
go
with
them,
so
they
they've
been
proposed
as
as
rough
sketches,
they
have
some
merit
as
projects
there's
been
a
little
bit
of
feedback,
but
it
hasn't
really
gone
beyond
that
stage.
So
what
do
you
suggest?
A
A
Like
evan's
proposal,
I
don't
know
I
mean
I
can
share
my
screen.
We
can
look
at
the
email,
but
that's
maybe
a
bit
excessive,
so
I'll,
let
you
decide
mark.
What
do
you
think?
Should
I
follow
up
with
you
later?
Do
you
want
to
discuss
it
now.
B
I
think
I
think,
a
good,
a
good
cat,
one
of
the
one
of
the
common
patterns
I've
seen
anyway
is
people
submit
a
proposal
and
receive
no
feedback,
and
one
way
to
bring
it
to
life
then,
is
to
ask
a
question
relative
to
it
or
two
of
us
ask
questions.
So
we
get
some
clarification
that
helps
the
the
person
making
the
proposal
relays.
B
A
Yes,
yes,
yeah
I'll,
follow
up
I'll,
follow
up
on
both
those,
especially
the
virtus
lab
ones.
They
they
were
at
the
cloud
native
sig
last
week
and
I'm
discussing
the
jenkins
operator
and
and
and
then
followed
up
saying
they
could
make
it
into
a
gsoc.
B
Friday,
so
all
right,
it
means
friday.
So
if
that's
another
good
place
to
have
discussions
and
help
them
get
closer
and
closer
to
an
actual
project
idea,
that
is,
that
meets
all
the
criteria
we
have
for
a
project
idea
that
has
a
quick
start,
that
it
has
mentors
that
it
has
enough
skeleton
on
the
you
know
enough
enough
general
outline
that
a
student
could
actually
take
it
and
and
have
have
it
as
a
good
idea
for
their
beginning.
B
A
Yeah,
okay,
good
good,
good,
good,
hopefully
yeah,
we'll
move
that
forward
rapidly
in
the
next
couple
days,
great
and
then
to
circle
back
to
the
hyper
local
plugin
manager.
That
kristen
discussed.
C
So
I
think
it
got
factored
out
and
it's
like
not
updated
that
might
have
been
this
has
been.
This
has
existed
for
like
this
project
has
been
around
for
like
four
or
five
years,
and
I
think
he
did
it
like,
maybe
like
four
years
ago,
so
I
think
it
might
be
worth
making
sure
that
they're
big-
and
I
know
that
updates-
have
been
made
to
this
class,
especially
I
think
mark.
C
C
So
it's
just
hard
to
make
sure
that
it
also
is
being
at
the
most
recent,
like
the
most
recent
version
of
jenkins
and
there's
a
couple
other
pieces
that
I
think
zeb
nick
who's
been
really
awesome,
has
also
been
looking,
especially
with
making
sure
the
display
looks
really
good,
because
there
were
some
display
issues
I
think,
early
on
with
generating
that
big
string.
C
I
think
he
might
have
made
some
improvements
too.
So
in
certain
on
certain
lines,
especially
with
the
upgrade.
So
it's
that
project,
I
think,
is
kind
of
just
sitting.
I
don't
think
it's
been
updated
at
all,
but
I
think
for
this
particular
project.
It
might
be
useful
to
maybe
revive
that
and
then
update
that
piece
just
because
it's
something
that
could
also
be
used
for
the
rest.
Api
basically
update
that
and
then
maybe
be
able
to
use
it
in
both
projects.
B
B
So
so
kristen
is
being
very
software
engineer
and
that's
really
great
that
is
so
impressive.
I'm
I'm
much
more.
I've
got
a
problem
I
need
to
solve.
I
want
to
I'll
just
dirty
copy
the
code
and,
if
someday
in
the
future,
I
want
to
refactor
it
to
read
to
be
dry.
You
know
to
not
repeat
myself:
oh,
that
would
be
great,
but
so
good
good.
F
By
the
way
mark,
I
had
a
question
for
you
if
this
is
not
going
another
direction,
so
I
want
to
ask
how
are
the?
How
would
the
goal
setting
be
done
for
this
year's
g-shock,
exactly
like,
haven't
been
in
a
g-stock
or
been
a
mentor
before?
F
So
I
remember
you
saying
on
on
the
getter
that
you
before
you
guys
did
two
meetings
a
week
to
see
where
the
student
has
reached
in
terms
of
coding
for
checks
and
stuff,
and
that
is
how
you
actually
get
stuff
done.
So
I
just
wanted
to
ask
how
this
will
change
for
a
one
and
a
half
month,
long
period
of
coding,
which
is
actually
quite
less.
B
And
I
I
think
that
I
assume
that
the
project
team
that
the
mentors
and
the
student
will
decide
how
they
want
to
do
that.
I
can
tell
you
what
worked
for
us
and
I
know
if,
if
I'm
chosen
to
mentor,
if,
if
somebody
will
finally
pick
up
one
of
the
get
projects
and
choose
that
so
that
I
can
mentor
if
one
of
the
git
projects
gets
selected
and
we
get
a
student
who
does
it,
we
will
negotiate
with
the
student.
B
But
I
would
personally
bias
towards
twice
a
week
still
even
with
the
student,
only
working
roughly
half
time,
because
the
frequent
check-in
was
so
valuable
for
the
student.
It
left
much
less
time
for
them
to
be
wandering
in
the
wrong
direction
before
the
mentors
could
point
them
in
the
correct
direction.
B
B
F
Okay,
that
that
that
makes
sense
to
me,
because
the
student
needs
to
be
connected
and
once
a
week
is
actually
very
less
of
a
time
for
any
team
to
like
get
together
and
work
together
once
a
week
is
very
short
amount
of
time.
F
Also,
another
question
I
had
was:
I
could
so
if,
if
the
time
period
was
three
months
the
cloud
so
we
could
have
started
the
cloud
events
plugin
from
scratch
almost
so
the
thing
is
with
the
technolon
plug-in
it's
already
in
poc,
and
we
can
kind
of
build
tasks
around
what
needs
to
get
done
and
then
those
tasks
will
be
what
what
would
happen
on
over
the
period
of
the
coding
phase,
but
with
something
like
cloud
plugin,
a
cloud
events
plug-in
I'm
just
I'm
just
not
sure
how
to
do
the
goal,
setting
exactly
it
probably
might
be
easier.
F
Even
for
cloud
events
plugin,
because
there's
one
goal:
it
should
be
kind
of
like
a
book
trigger
plugin,
where,
upon
listening
to
the
cloud
event,
probably
triggered
a
job
or
something
like
that.
But
for
for
this.
For
so,
how
do
you
do
goal
setting
in
in
something
that
is
a
lit
involves
a
bit
of
like
innovation
line?
I
guess.
B
Yeah,
so
so
the
we
were
doing
something
like
that
with
the
git
plug-in
last
year's
project
had
a
proposal
to
do
something
a
certain
way
and
as
we
went
through
the
project
we
discovered.
B
B
B
It
should
process
cloud
events
when
they
arrive,
it
should
be
able
to
publish
cloud
events
and
those
those
feel
like
really
good
goals
and
that's
sort
of
a
vision
statement
that
the
student
can
include
in
their
project
plan
was.
Was
that
what
you
were
asking
me
bob
or
did
I
misunderstand.
F
Yeah,
that
means
that
that
is
that
makes
sense.
That
does
make
sense,
yeah.
B
F
So
how
so
that
actually
brings
up
something
interesting
is
how
much
of
the
project
is.
Actually
student
led
obviously
like
there
are
mentors,
but
how
much
of
the
project,
like
the
plan
for
the
project
is
decided
by
the
student
itself.
B
It
should
be,
it
should
be
the
student's
project
plan.
So
what
the?
What
the,
what
the
jenkins
project
will
accept,
is
a
stu.
Ultimately,
is
a
student
project
plan,
a
project
plan
submitted
by
the
student
so
right
now
we're
in
this
project
ideas:
phase
where
ideas
are
proposed
by
anyone,
but
when,
when
it
comes
time
to
select
the
the
few
people,
who
will
actually
be
authorized
to
go
forward,
we'll
have
mentors
assigned
and
will
be
staffed
projects,
then
we're.
F
Yeah
yeah
actually
yeah
that
that
actually
tells
me
that
I
need
to
do
more
reading
on
gsoc
guidelines
and
stuff
yeah,
so
yeah.
But
thank
you
mark
thanks.
Thanks
for
the
detailed
explanation.
A
We're
definitely
going
to
have
fun.
The
only
thing
I
would
add
to
that
is
that
we
very
much
want
the
students
to
contribute
open
source.
We
want
them
to
to
produce
something
that
they
can
show,
and
that
is
that
is
the
goal,
but
an
even
broader
or
more
fundamental
goal
is,
is
actually
the
student's
learning
and
experience
with
open
source.
So
it's
actually
okay
for
the
student
to
have
parts
of
their
gsoc
experience
be
like.
A
Oh,
I
tried
this
and
it
didn't
work,
and
I
can
explain
you
know
why
it
didn't
work
and
what
what
I
learned
from
it
and
then
we
went
and
tried
this
and
that's
okay.
You
know
like
it
doesn't
need
to
be
not
every
step
of
this
as
a
work
project
needs
to
go
perfectly
for
the
student.
They
are
allowed
to
actually
explore
and
try
different
things
so
having
that
space
within
their
project,
idea
of
like
where
they're
going
to
figure
out
their
way
forward
is
actually
it's
it's
fine,
it's
okay!
A
It
gives
them
more
space
for
them
to
bring
their
own
creativity
and
their
own
trial
and
error,
and
the
experience
of
that.
So
it's
not
just
about
you,
know,
writing
production
code,
although
we
do
want
their
code
to
go
into
production.
So
does
that?
Does
that
does
that
seem
right,
mark,
yeah,
yeah,
okay,
but
yes,
having
fun
is,
is
the
most
important
part
and
really
enjoying
open
source
and
contributing
to
jenkins
great
okay?
So
it's
basically
top
of
the
hour.