►
Description
Part 2 of the GSoC project demos in the Jenkins organization. At this meeting GSoC students in the Jenkins will present their projects. Every student will do a quick project overview and a live demo of the current project status. Agenda:
* Martin d'Anjou - GSoC 2020 introduction
* Loghi Perinpanayagam - Machine Learning Plugins for Data Science
* Buddhika Chathuranga - Jenkins Windows Services: YAML Configuration Support
* Sumit Sarin - External Fingerprint Storage
Full presentation abstracts and links can be found here: https://docs.google.com/document/d/1F9JVUEQyTL_JI8-_WPV-vMbuX94ZENjffsVlPOptPKE/edit#heading=h.ibikyjoj0fur
A
Okay,
hello
and
welcome
everyone
to
the
jenkins
google
summer
of
code
year
2020.
This
is
the
coding
phase.
One
demo
part
two.
We
had
part
one
earlier
today
which
you
can
find
on
our
youtube
channel.
Once
we
publish
it
yes,
this
year
being
a
challenging
year,
we
have
come
together
and
we
participate
in
the
great
movement
called
open
source.
A
Jsoc
then
we'll
have
our
project
demos
by
students
followed
by
questions
and
answers,
which
jsoc
organization
are
we
we
are
the
one
on
the
left
pointed
to
by
the
arrow
we
are
operating
the
jenkins
and
the
jenkins
x
summer
of
code
project
under
this
banner
and
jenkins
is
part
of
the
greater
arc
of
a
greater
organization
called
the
continuous
delivery
foundation
and
that
organization
runs
other
summer
of
code
projects.
Please
visit
their
websites
for
more.
A
A
As
a
reminder,
our
capacity
to
accept
student
projects
depends
greatly
on
how
many
mentors
we
can
recruit,
and
this
year
we
are
very
fortunate
to
have
with
us
an
average
of
two
to
four
mentors
per
project,
as
mentioned
before,
we
have
projects
for
both
the
jenkins
open
source
project
and
the
jenkins
x,
open
source
project
jenkins
x
is
is
not
the
same
as
jenkins,
but
the
difference
is
for
a
late.
The
explanation
between
the
two
is
for
a
later
time
to
learn
more
about
our
how
we
operate
the
program.
A
You
can
reach
us
through
our
different
channels,
so
we
have
a
mailing
list.
Under
a
google
group,
we
have
a
gitter
chat
under
getter.im,
slash
jenkins,
ci,
slash,
jsoc
dash
sig
and
the
dash
sig
stands
for
special
interest
group.
We
hold
regular
office
hours
on
wednesdays,
on
wednesdays
online
or
as
video
chat
as
needed.
A
A
A
We
also
have
a
code
of
conduct
that
we're
updating
pretty
soon.
Essentially
we
are.
We
just
want
to
be
nice
to
one
another
and
that's
what
we
are
codifying
in
our
code
of
conduct.
If
you
want
to
see
these
slides
after
this
presentation-
here's
a
short
url
at
the
bottom
of
at
the
bottom
here,
where
you
can
find
these
slides.
A
So
before
we
get
started.
I
would
like
to
thank
our
formidable
students
for
the
work
that
they're
doing
on
their
respective
projects.
I
want
to
thank
our
dedicated
mentors
who
are
assisting
students
with
their
projects,
and
I
want
to
thank
our
org
admins,
who
are
making
things
possible
behind
the
scenes.
A
A
B
Hi
this
is
marky.
I
would
just
like
to
congratulate
all
of
the
students
all
of
the
mentors
and
the
org
admins
for
yet
another
great
google
summer
of
code
year
and
I'm
very
excited
to
see
what
these
crop
of
students
have
done.
C
C
Just
plus
one
yeah,
we
have
already
delivered
a
lot
of
stuff.
Many
projects
have
previews
for
jenkins
users
and
yeah.
I'm
really
looking
forward
to
all
these
features
to
be
delivered,
and
I
am
proud
to
see
all
the
json
projects
on
the
public
jenkins
robin
above
this
year,
which
is
a
kind
of
new
thing
been
compared
to
previous
years.
D
D
Quick
comment
just
to
thank
martin
oleg
for
coordinating
this
whole
program.
I
know
it's
huge
amount
of
work
and
just
sitting
on
the
sidelines
here
and
getting
the
emails
and
all
the
organizational
stuff
that
you
guys
are
doing
doing
a
great
job.
Thank
you.
So
much
looking
forward
to
the
presentations.
C
Thank
you.
We
invested
a
lot
in
automatic
automating
and
document
things
or
conjunctions.
So
maybe
in
a
couple
of
years
we
will
be
able
to
replace
ourselves
with
changing
consensus
in
a
few
pipelines
for
sending
emails.
A
E
E
Yes,
yeah.
Thank
you.
Welcome
to
my
presentation
on
machine
learning
plug-in
for
the
data
science.
So
a
quick
introduction
to
myself.
I
was
selected
for
gsoc
2020
with
jenkins,
I'm
doing
my
major
in
computer
science
and
engineering
from
sri
lanka.
So
next
we
move
on
to
the
presentation
of
coding
phase
one.
E
So
here
we
are,
we
are
addressing
a
problem
with
a
common
data
science
discipline
in
machine
learning
field,
so
this
can
be
related
to
a
real
world
story.
When
I
was
working
in
my
previous
internship,
I
had
a
chance
to
work
with
jupiter
notebook
with
a
postgres
sql
for
a
nlp
machine
learning
project.
E
So
in
that
project
the
jupiter
notebook
creates
a
postgres
sql
to
database
to
store
all
process
data
and
every
single
data
processing
will
be
reflected
in
the
database.
So
I
need
to
so
every
time
I
have
to
check
the
data
is
up
to
date
manually,
while
I
try
to
build
the
model
using
my
python
code
in
the
jupyter
notebook.
E
E
So
here
what
we
are
saying
is
alone:
interactive
notebooks
are
not
capable
for
building
a
production
level
machine
learning
model,
but
but
they
are
very,
but
they
are
very
excellent
in
both
data,
analyzing
and
coding.
At
the
same
time,
you
know
that
we
can
visualize
visualize
interactively
from
the
jupiter
network.
Jupiter
notebook
is,
is
giving
a
great
support
for
machine
learning
in
this
software
world,
so
we
cannot
simply
ignore
notebook
to
build
our
models,
so
our
goal
is
to
automate
these
challenges
in
machine
learning
in
machine
learning
workflows
from
end
to
end.
E
So
in
this
slide
here
it
is
a
simple
way
of
using
cdci
principle
applied
to
machine
learning
problem.
This
can
give
a
sort
of
insight
why
we
are
here
with
this,
our
plugin.
So,
first
of
all,
if
we
take
a
production
line,
first
data
engineers
are
the
responsible
persons
for
the
data
processing.
E
Then
the
data
scientists
will
build
high
accuracy
models
using
processing,
processing
the
data
and
the
code,
so
they
have
to
run
iteratively
to
build
high
accuracy
models.
So
using
this
model
ml
engineers
and
software
engineers
will
do
the
rest
of
deployment
works
as
usual
in
the
software
development
industry.
E
If
if
you
want
to
push
one
of
what
one
ml
model
to
a
s3,
aws
s3
storage,
there's
a
s3
publisher
for
that,
so
likewise
there's
a
lot
of
plugins
can
be
integrated
with
the
jenkins.
So
we
don't
need
to
do
a
scratch
work
from
bottom
to
up
to
to
satisfy
this.
E
This
work
loss
so
in
the
next
slide,
this
slide
after
I
have
selected
for
gsoc
during
the
community
bonding
period,
we
have
spent
a
little
time
to
name
our
plugin
and
designed
a
high
level
architecture
that
that
gave
good
insight
to
mentors
to
guide
me
later.
We
created
a
repository
and
we
prepared
for
the
coding
phase
funds
and
a
lot
of
interaction
happens
in
the
community
bonding.
E
Configuring,
the
connection
between
ipython
kernel
and
jenkins
instance
in
the
next
user
will
be
able
to
copy
their
notebooks
to
the
workspace
in
jenkins
if
they
want
to
convert
the
jupyter
notebook
into
python
files
and
json
files,
json
files,
which
can
be
used
to
run
the
notebook
by
cell
by
cell,
that
will.
That
will
be
very
useful
when
we
are
running
the
code,
we
can
understand
what's
happening
in
the
code
and
we
can
easily
get
get
the
knowledge
of
code.
E
So
the
next
feature
is
we
can
build
jupiter,
notebooks,
python
or
json.
So
these
are
the
features
we
have
done
with
the
according
phase
one
yep.
So
next
one
is
demo
before
going
demo.
I
will
give
us
a
short
description
about.
What's
what
I'm
gonna
do
in
the
demo,
so
first
I'm
gonna
configuring,
the
local
ipython
server
in
my
local
machine
and
then
I'm
adding
jupyter
notebooks.
E
Then
I'm
going
to
build
a
model
with
the
diabetics
data
sets
with
logistic
regression.
It's
a
it's
a
simple
linear
model.
We
can
use
it
very
simply.
There
are
maybe
20
lines
of
code.
We
can
build
a
model
so
for
the
demo
purpose.
I
have
created
that
then
we
can
use
another
notebook
prediction
score.
We
can
use
it
to
predict
how
the
model
predict
the
model
accuracy.
So
the
accuracy
means
how
many
patients
are
classifying.
Who
are
data
diabetes
or
not?
E
A
Here,
instead.
F
A
E
Okay,
here,
okay,
I
I
can
configure
a
new
server
here,
so
you
can
add
a
name
like
it
could
be,
it
should
be
alphanumeric
and
it
can
contains
only
underscore
like
I
can
set
a
local
server.
E
So
next
one
is,
you
have
to
add
the
ip
address.
You
cannot
give
any
more
from
the
ipad,
so
the
validation
will
save.
It
will
say
that
smartphone,
so
we
will
to
simple
localhost-
or
maybe
you
can
add
as
a
localhost
to
this
server.
So
the
launching
timeout
is
about
the
how
long
it
would
take
to
launch
the
ipython
kernel
in
the
server
and
the
next
one
is.
The
results
is.
E
How
many
lines
you
can
get
you
can
gen
you
can
get
from
the
results.
So
sometimes,
if
you,
if
you,
if
you
know
about
pandas
in
the
machine
learning
it
will,
if
you
print
the
you
can
print
your
whole
data
sets,
you
can
see.
So
if
you
add
three,
you
can
only
see
the
three
three
rows
of
data,
so
maybe
I
can
add
something
so
in
this
next.
I
will
test
this
connection.
E
E
So
yeah
we
done
with
the
global
configurations.
So
now
we
are
going
to
create
a
job,
a
free
style,
job,
freestyle,
job,
okay,
yep.
Here
we
go
so
in
this
case
you
can.
You
know
these
are
the
descriptions
panel
and
you
can
select
any
service
you
configured
in
this
global
configurations,
so
it
will
show
every
service.
You
can
get
the
global
configurations.
E
So
for
this
demo
I
would
like
to
add
a
database
data
sets
to
this
machine
learning
machine
learning
demo.
So
I'm
gonna
use
a
file
parameter,
so
I'm
gonna
use
the
name
as
diabetes,
diabetes,
dot,
csv
cfc
is
a
famous
format
for
the
data
sets.
So
in
the
next
build
environment.
I
would
like
to
add
my
notebooks
in
my
local
system,
so
I'm
gonna
give
my
absolute
path
for
this.
E
For
this
files
demo,
I'm
I
have
my
notebooks
in
my
lock
my
my
computer
model.
E
E
So
if
one
user
want
to
convert
these
files,
these
notebooks
to
a
json
or
python,
so
they
can
easily
easily
use
this
checkbox.
If
you,
if
they
check
this,
it
will
show
a
simple
menu
to
convert
these
files
to
json
of
python.
E
So
we
will
let
this
file
as
it
is,
and
in
case,
if
you
get
error
in
python
codes,
you
have
to
view
it's
in
a
rich
formatted
view,
so
you
can
use
a
nc
color
plugin.
That
can
be
very
useful
when
you
are
seeing
the
console
in
a
very
rich,
very
rich,
formatted
text,
so
I'm
gonna
use
one
of
these,
so
next
is
the
build
step,
is
one
of
the
important
this
project,
so
we
are
created
a
builder,
so
we
can.
E
We
can
give
the
name
here
to
train.json
for
one
of
this
and
we
have
two
options.
Like
text
parser,
you
can
directly
add
your
code
here
in
this
text
area,
so
it
will
also
run
the
code
from
this
from
the
ipython
kernel.
So
for
this
demo
we
will
add
a
train.json
and
we
will
add
another
name
for
that
test
model.
E
E
E
A
plugin,
so
here
you
can
see
here
it
it.
It
run
the
course
by
cell
by
cell,
so
here
it
saved
the
model
here
and
the
second
notebook
will
get
the
model
and
give
the
results
and
the
accuracy
of
this
accuracy
of
this
model.
E
E
E
We
are
currently
exploring
to
connect
to
existing
python
kernel
from
jenkins
and
we
will
add
code
editor
for
the
for
edit
for
editing,
notebooks
and
python
files
in
the
code
base
according
to
according
phase
two
and
you
can
find
more
information
about
our
design,
our
design
in
the
design
document
and
the
machine
learning
project
in
jenkins,
dot,
io,
so
yeah.
E
So
these
are
some
helpful
resources.
You
can
find
my
github
repo
that
will
have
some
very
detailed
readme.
You
can
follow
that
in
that
paper,
so
these
are
the
some
resources,
yep
yeah
yep.
That's
all
my
presentation
and
finally
thank
you
to
everyone
for
joining
in
my
presentation
and
thank
you
for
this
opportunity
to
work
with
with
this
project
with
my
mentors
and
work
at
beans.
Thank
you
for
special
thanks
for
maki,
anes,
shivai
and
bruno
and
also
other
organizat.
A
A
I
would
like
to
invite
the
mentors
to
ask
questions
or
comments.
B
I
would
like
to
give
a
comment,
first
and
foremost
to
lohi
loi.
You
make
this
extremely
easy.
You
are
an
extremely
talented
and
bright
individual.
B
I
am
so
happy
that
you
are
a
student
for
this
project
and
I
I
know
I've
said
this
before,
but
this
particular
project
has
so
so
much
wide
reaching
implications
not
only
for
machine
learning
and
data
science,
but
but
in
the
medical
field,
in
the
imaging
field,
there's
so
many
things
that
can
be
used
now
because
of
what
you're
doing-
and
I
hope
you
understand
the
the
the
awesomeness
of
that.
B
I
would
also
like
to
thank
the
other
mentors,
our
lead
mentor
bruno,
who
can't
be
with
us
today
because
of
the
time
difference
it's
super
early
in
the
morning
for
him,
but
I
bruno
especially
ionis
chavez.
Thank
you
for
all
that
you
do
on
this
project.
That
was
all
for
me.
D
Thank
you,
marquis
and
and
logi.
Thank
you
as
well.
Those
was
a
very
good
presentation
and-
and
I
can
certainly
reiterate
many
of
the
things
that
marquis
said
about
the
development
of
this
of
this
project-
I'm
particularly
excited
about
this
because,
as
marcus
said,
he
has
applications
to
life
sciences,
and
I
don't
know
how
many
of
you
remember,
but
a
few
years
back,
I
managed
to
get
a
name
of
just
for
that
for
jenkins.
D
G
Thank
you
lucky.
Thank
you,
nice,
for
your
words
yeah.
Thank
you.
So
I
mean
loki
has
done
a
very
good
job,
or
you
know
so
far
and
though
again,
as
you
know,
as
mark
has
already
said
that
the
prospect
of
this
plugin
is,
you
know,
really
useful
for
a
lot
of
the
different
machine
learning
workflows
that
you
know
people
are
having
because
the
more
we
are
you
know
moving
towards
more
digital
age.
You
know
we
are
seeing.
G
You
know,
like
data
science
being
involved
in
multiple
sectors
and
having
this
kind
of
automated
workflow
will
definitely
help.
You
know
to
actually
move
more
and
more.
You
know
machine
learning,
models
and
kind
of
studies
to
a
production
environment,
so
armenia
logy,
has
been
quite
brilliant.
You
know
with
his
work
ethics
as
well,
and
I
mean
the
losses
that
he
has
applied
so
far
and
within
the
plugin,
and
it
has
been
you
know,
free
to
work
with
the
other
mentors
and
you
know
be
part
of
this
project.
C
So
do
we
have
some
time
left
for
questions?
C
I
think
we
do
yes,
okay,
so
yeah.
I
have
one
technical
question.
So
in
your
presentation
you
presented
how
to
use
the
giving
with
freestyle
projects.
Do
you
actually
punch
support
changes
pipeline
in
your
project.
E
Yeah,
I
I
I
was
presented
to
in
the
last
meeting
but
ev,
but
mentors
preferred
that
you,
you
can
do
a
free
style
project
that
will
be
very
details
to
audience.
Yeah.
E
C
Oh
great
and
the
another
question
is
how
to
try
your
project
out
so
how
to
get
it
installed
and
how
to
get
it
running.
E
Yeah,
so
the
project
is
now
we
have
published
alpha
release.
So
if
we
want
to,
if
you
want
to
download-
or
if
you
want
to
use
this
plugin,
you
can
use
the
experimental
update
center.
So
that
would
be
very
easy
to
download
your
plugin
in
your
jenkins,
workspace.
I
A
We
can
see
your
screen.
Could
you
check
your
microphone
volume
see
if
you
can
increase
it?
A
little
bit
happen
every.
A
F
I
So
welcome
to
my
project
presentation.
So
what
I'm
going
to
do
in
my
project
is
under
the
ig
sock
2020,
I'm
going
to
do.
Yammer
configuration
support
for
jenkins
windows
service
wrapper.
So,
okay,
okay,
here
in
the
presentation,
I
will
go
through
these
topics.
I
First,
I
will
introduce
myself
and
then
we
will
talk
about
you
know
stripper
and
also
current
configuration
session
and
yaml
configuration
support,
and
then
we
will
talk
about
phase,
one
updates,
what
I
have
done
so
far
and
okay
and
there
will
be
a
demonstration
and
initiation.
I
said
okay,
so
I
am
buddhist
ranga
hi.
I
am
from
sri
lanka
and
I
am
finally
undergraduate
of
university
of
morocco
and
faculty
of
iit.
I
And
yes,
this
is
my
first
time
in
google
summer
of
code
awesome
experience
and
I
have
a
little
bit
of
experience
in
web
development
actually
with
angular
and
css.
So
basically
I
wanted
to
move
into
computer
science
things.
So
that's
why
I
select
this
project
which
have
not
much
html
things.
I
You
know
okay,
so,
okay,
when
it's
come
to
windows
service
wrapper,
you
know
we
can
run
jenkins
server
and
client
in
windows
machine
as
we
know,
service
which
will
provide
more
robotners
so
and
actually
those
that
feature
is
also
bundled
into
the
jenkins
core
as
well.
So
currently
you
know
when
we
are
deploying
windows
service.
We
need
to
feed
a
lot
of
configurations.
So
currently
the
those
configurations
are
free
to
windows
service
wrapper
by
an
xml
file.
So
you
can
find
the
project
the
given
link.
I
So,
okay,
let's
talk
about
current
configurations
a
little
bit
so,
as
I
mentioned
before,
the
configurations
are
configured
from
xml
file
and
the
xml
file
should
be
in
the
same
directory
where
the
executable
place,
then
the
xml
files
name
should
be
the
xml
files
name
should
be
same
to
the
external
file
names
and
also
a
user
can't
specify
the
xml
file
at
the
file
path
from
command
prompt
separately
and
there's
no
xml
schema
validations
and
there
are
limited
configurant
checks
as
well.
I
I
Okay.
So
now
we
are
looking
at
the
sample
xml
file,
so
you
can
see
it's
much,
not
verbose
and
not
human
friendly,
and
you
know
it's
really
difficult
for
newbie
to
edit
those
things,
and
so
what
we
are
going
to
do
is
we
are
going
to
provide
those
configurations
as
a
camera
file.
So
that's
what
I'm
going.
That's
the
solution
we
are
going
to
present
in
the
project.
Okay.
I
So
while
we
move
into
yeah,
so
yaml
is
less
focused
and
much
more
human,
readable
than
xml,
and
definitely
it's
a
lightweight
than
xml
json,
because
they
are
not
using
extra
delimiters
and
also
the
yaml
is
becoming
more
popular
among
configuration
management
tools
like
build
tools,
it
see.
So
that's
the
reason
we
are
moving
into
yaml
as
a
configuration
file.
So
now
we
are
looking
at
sample
aml
configuration
files,
so
obviously
we
can
see
it's
much
readable
and
human
friendly.
Anyone
can
edit
this
and
use
this
as
so.
I
This
is
a
kind
of
a
comparison
between
those
two
files.
Obviously
you
can
see
yeah.
My
demo
thing
is
much
readable,
so
it's
really
easy
to
handle
anyone
even
without
a
good
programming
experience
I
mean
yeah
ml
experience
is
needed,
but
yeah,
it's
still
readable,
okay.
So
this
is
my
project
scope
that
I
am
I'm
going
to.
I
do
during
a
google
summer
of
code
in
2020,
so
obviously,
with
that
yaml
configuration
support,
my
project
and
also
yummy
schema
validation
will
be
added
and
a
new
cli.
I
I
will
talk
about
these
things
in
later.
Slides
and
also
sml
schema
validation.
Okay.
This
is
how
my
timeline
is
structured
now,
but
I
I'm
not
going
to
talk
about
it
more.
However,
I'm
happy
I'm
all
the
time.
I
Okay,
let's
come
to
phase
one
updates,
and
there
are
a
few
updates
which
are
has
a
new
cli
and
yaml
support
and
html
schema
validation,
which
are
not
realistic,
but
definitely
you
can
find
those
pull
requests
in
given
links
and
this
w
project
structure,
reviews
published
and
with
the
help
of
all
it.
I
Thank
you
so
much
so
if
we
talk
about
new
cli
asi,
as
I
mentioned
before,
we
can,
we
user
can't
specify
the
xml
file
from
externally
income
online,
but
in
in
in
three
phases
we
are
going
to
keep
the
xml
support
tasks.
So
definitely
you
usually
need
some.
We
should
allow
user
to
separate
specify
the
configuration
file
separately.
So
actually
cli
thing
was
not
in
my
plan,
but
definitely
to
move
in
this
project.
We
need
this.
I
So
all
cli
commands
was
something
like
that
we
can
okay,
ocli
command
or
something
like
that.
We
can
specify
the
executable
name
and
then
redirect
where
lock
should
be
redirect
and
then
the
redirect
path
and
we
can
elevate
the
command
from
tesl
and
then
we
can
specify
the
command.
So
it's
kind
of
only
a
commands
manner.
We
can't
I
specify
any
options
here.
If
I
mean
user
want
to
specify
things,
it's
not
a
kind
of
structured
day
in
new
cli.
I
What
we
are
going
to
do
is
when
it's
kind
of
commands
and
options
manner
like
here's,
the
executable
and
the
user
can
mention
the
command,
and
then
he
can
specify
the
options
for
this.
Like
he
can
use
this
c
or
the
config
file
option
to
specify
the
configuration
file
and
then
he
can
use
this
command
to
elevate
the
command
prompt
and
he
can
use
this
configuration
sorry
option.
Two
specify
the
redirect
path
available
should
be
redirect.
I
So
there
are
these
options
in
shorter
and
longer
manner
as
well.
So
okay,
so
I
think
I
described
these
things
and-
and
I
use
a
command
line
library
to
passing
those
command
line,
arguments
and
I
charge
about
2.2
k
stars.
I
think
it's
a
really
good
library,
and
so
you
can
find
my
put
request
in
the
given
link.
Okay
and
then
okay
means
come
to
ml
configuration
support.
I
As
I
mentioned
before,
yeah
the
configuration
will
be
delivered
as
yaml
file,
and
in
this
case
the
configuration
will
be
provided
in
more
structured
way
than
extent,
and
I
used
yaml.net
library
to
dc
realize
lml
file
into
an
object
draft.
So
that's
a
really
great
library
and
in
previous
library
I
had
some
compatibility
issue
with
because
it
was
not
support.
It
was
not
support
for
donate
four
point:
zero
upwards,
but
later
windows,
size,
wrap.
I
Also,
obviously,
the
support
for
windows-
I'm
sorry.net
2.0,
so
it
won't
be
a
problem
at
all
and
yeah
means
complexion,
schema
validation.
There
wasn't
a
schema
of
validation
for
xml
before
so
I
I
had
a
xml
schema,
validation
and
so
user
can
use
that
schema
file
in
order
to
create
the
xml
configuration
file
and
xsd
file
will
be
shipped
as
embedded
resource.
So
in
I
mentioned
there
that
I
am
going
to
do.
Okay,
I
mentioned
I
will
add.
I
Yaml
configuration
support
as
well
in
phase
two
hopefully,
and
the
my
plan
is.
Current
plan
is
used
to
json
schema
to
validate
my
file
essay.
So,
okay,
those
are
the
things
that
I
have
to
mention
about
my
project.
I
think
it's
clear
so
now
I
can
go
into
my
demonstration
and.
I
I
Terminal.
Okay,
thank
you,
marty,
okay,
so
here's
my
windows
service,
dropper
executable.
I
will
use
this
and
this
is
the
jenkins
dot
profile,
which
will
run
jenkins
and
in
this
presentation,
I'm
going
to
use
this
config
under
all
underscore
new
dot
tml
file
in
order
to
provide
the
configurations
within
those
sizes.
I
Let
me
show
my
configuration
file
lessons
so,
okay,
this
is
my
configuration
file,
so
you
can
see
the
id
is
as
jenkins
and
those
are
basic
configurations.
Things
are
here,
and
this
is
the
same
xml
file
for
that
and
okay.
Now,
I'm
going
to
use
this
yaml
file
in
order
to
create
this
windows.
Size
wrapper,
okay.
First,
I
will
copy
the
file
part
of
this
configuration
file
because
I
mentioned
that
now
user
can
specify
the
file
path.
So,
okay,
sw
first
okay.
I
Before
that
I
will
introduce
about
my
new
cli
a
little
bit
so
in
previous
windows,
stopper
command
line.
We
can
do
something
like
that
and
then.
I
Part
will
be
there
and
we
can
do
the
command
so,
but
in
cli
what
we
are
going
to
do
is
now
we
have
so
okay
before
going
to
that
demonstration.
So
I
will
show
what
are
the
commands
available
only
so
easily?
You
can
use
help
command
in
order
to
see
those
old
commands
available
here
and
also
you
can
use.
I
This
help
option
in
order
to
check
the
options
which
are
available
with
this
command
that
sell
okay.
Let
me
show
you,
okay,
install
and
yeah.
This
will
show
you
all
the
options
which
are
available
with
this
particular
install
come
on.
Okay,
okay!
Now
let
me
move
into
the
demonstration
first,
I'm
going
or
what
I'm
going
to
do
is
I'm
going
to
install
windows
size
wrapper
with
that
configuration
file,
and
I
can
specify
it
in
this
manner.
I
Okay,
now
windows
server
service
is
installed.
Let
us
check
whether
it
has
installed
correctly.
Okay,
now
the
id
and
caption
knows
finnish,
w
demo.
Okay,
let
us
check
let
us
refresh
this
before
okay
yeah.
F
I
I
But
it's
shown:
okay,
let's
try
it
again:
okay,
I'll
use
a
shorter
command
line,
this
time
yeah,
but
so
it's
saying
that
already
exists.
I
think.
C
D
I
Yeah
I
was
finding
with
the
caption
yeah
yeah
it's
here
and
status
is
not
running
yeah.
Thank
you
so
much
yeah,
yeah
hi.
You
know
demonstrations
always
work.
I
Okay,
now
it
says
installed,
and
you
know
what
I'm
going
to
do
is
start
jenkins.
With
this
configuration
file.
Okay,
then
you
can
use
same
configuration
file
for
that.
Okay,
it's
starting
and
let
me
check
whether
it's
state
is
changing
yeah.
Now
it's
running.
Okay,
let's
check
the
browser.
I
Yeah,
I
think
it's
working
yeah,
it's
fine,
so
thinking
started
as
a
windows
service
now,
so
what
I'm
going
to
do
now
is,
and
I'm
going
to
stop
this
jenkins
server
and
I'll
use
the
same
configuration
file.
I
I
This
okay,
so
let
me
show
some
invalid
commands,
so
invalid
commas,
I
network,
and
it
will
show
here
and
also
internally
the
options
as
well
so
yeah.
So
if,
as
I
mentioned
before,
we
can
at
the
at
the
moment,
we
are
providing
support
for
xml
and
ml
both.
So
if
you
want
to
boot
windows,
stopper
with
xml
file,
then
it's
totally
okay.
I
We
can
do
it
xml
file
as
well,
and
if
we
don't
have
an
xml
file
and
ml
file
both
then
it
will
automatically
go
to
find
the
same
xml
file
with
the
same
name
of
executable
file
in
the
in
that
directory
and
okay.
Let
me
check,
I
think
there
was
something
yeah
there's
xml
file.
So
let
me
just
install
this.
C
I
And
yeah
now
it
comes
file
is
not
specified.
Now
it
will
start
with
xml
file
the
same
with
the
xml
file,
which
have
the
same
name
of
executable.
I
So
yeah,
that's
my
demonstration
up
to
now,
and
so
I
took
that
I
have
implemented
the
xml
schema
validation
with
xsd,
so
you
can
find
that
pull
request.
Yes,
so
this
is
the
particular
xml
file
that
I
have
created.
Yet
so
user
can
use
this
xd
file
in
order
to
create
the
xml
file.
You
can
use
this
schema
to
create
the
particular
xml
configuration
file.
Yeah.
Okay,
that's
my
demonstration.
So
let
me
go
to
my
presentation
back.
I
Okay,
yeah!
That's
all
about
my
demonstration!
So
please
there's
any
correction.
Now
I'm
open,
you
can
ask
anything.
A
C
D
C
But
yes,
still
services
the
most
recommended
way
to
do
that
for
common
setups,
because
it
provides
a
lot
of
reliability.
It
provides
a
built-in,
failover
and
other
features,
just
ported
by
windows,
service
wrapper
and
now
we
shall
support
it
by
yaml
configuration
so
yeah
and
by
default
jenkins,
installs
agents
and
jenkins
server
as
windows
services.
So
this
project
provides
a
lot
of
value
for
such
setups,
especially
when
it
comes
to
configuration
management,
because
it's
also
a
thing
for
windows
and
having
yaml
support
unblocks.
C
Personally,
I
think
that
it's
a
really
useful
project
for
those
who
use
windows
and,
according
to
our
statistics,
a
lot
of
drinks,
users
run
on
windows
and
thanks
a
lot
for
dubudika
for
working
on
that,
because
we've
already
got
a
lot
of
great
features
and
I'm
looking
forward
to
see
them
released
and
to
become
available
to
all
windows
service
reporter
users,
whether
they
use
jenkins.
I
use
other
services,
because
windows
service
wrapper,
has
millions
of
users
and
jenkins
is
just
one
of
the
way
it's
used.
I
Yeah,
thank
you
olek.
Thank
you
for
the
description,
so
I
think
that's
all
so
I
want
to
give
a
huge
thank
you
for
my
mentors,
oleg
mike
and
next
turn.
He
did
a
great
job
to
make
the
project
success
and
yeah.
Thank
you
alex.
So
much
you
were
helping
me
when
you
are
traveling.
So,
as
I
mentioned
before,
I
was
not
into
comprehension,
so
mentors
helped
me
a
lot
of
things,
a
lot
of
things.
So
thank
you
so
much
and
thank
you.
I
That
means
it's
a
great
opportunity
to
work
with
your
genius
minds
and
awesome
people.
So
thank
you
so
much.
Okay,.
A
All
right,
thank
you.
Could
you
please
release
the
screen
share
so
that
we
can
move
on.
A
A
A
H
Awesome
so
hi
everybody
thank
you
for
joining
us
for
the
external
fingerprint
storage
presentation,
which
is
one
of
the
jenkins
g-sub
project
this
year.
So
without
much
further
ado,
let's
start
so.
This
is
our
agenda
for
today's
presentation.
I'll
start
with
the
first
short
personal
introduction,
I'm
sumit
sareem,
so
I'm
the
student
for
this
project
and
I'm
currently
pursuing
a
bachelor's
in
instrumentation
and
control
engineering
from
nsit
delhi.
H
I
started
contributing
to
jenkins
in
december
2019
I
made
some
small
contributions
to
the
fingerprints
engine
and
that's
how
you
know
today
you
know
so
it
eventually
led
me
to
taking
this
project
over,
and
I
really
love
it
so
and
thank
I'll
just
thanks
for
everybody,
all
the
all
the
org
admins
mentors
so
for
this
project,
oleg
mike
andrei
helping
me
out.
H
So
that's
our
project
so
I'll
first
start
talking
about
what
are
fingerprints
actually
right,
so
fire
fingerprinting
inside
jenkins
is
just
a
way
for
dependency
tracking
right
so
say
you
have
artifacts.
You
have
files
that
you
want
to.
You
know
basically
track
across
jobs.
Fingerprinting
engine
is
what
basically
allows
you
to
do
that.
So
I
just
so
like
a
small
example
say
you
have
a
team,
a
which
builds,
you
know
an
artifact,
a
dot
jar
and
there's
a
team
b
that
works
on
b
dot
jar
which
uses
a
dot
java.
H
So
now
you
might
have
that
someday.
You
know,
b
reports
that
you
know
we
have.
We
are
having
some
problems
with
a
dot
jar,
and
you
know
please
fix
that.
So
now
you
want
to
know
that
you
know
which
version
of
a
dodger.
Are
they
actually
using
right
to
fix
that
problem?
So
that's
how
the
fingerprint
engine
comes
in.
It
tells
you
that
you
know
they
are
on
this
version
and
how
that
how?
H
Basically
you
know,
which
version
you
have
to
fix
right
so
I'll
just
show
a
small
live
example
of
this
fingerprint
engine
right.
So
I
have
configured
here
basically
using
an
instance,
and
I
have
two
jobs
there
right
just
like
explained
job
a
and
job
b.
H
So
yeah,
so,
as
you
can
see,
what
purjabi
does
is
basically
yeah,
so
it
creates
an
artifact.txt.
H
It
archives
that
artifact
and
it's
it's
recording
those
fingerprints
which
it
gets
from
a
dot,
a
dot,
txt
right
and
what
b
the
job
b
does
basically
is
that
it
copies
this
a
dot,
txt
artifact
from
the
job,
a
right
and
it
just
it.
Also
fingerprinting
enabled
right.
So
now,
if
I
go
back,
I
can
you
know,
start
a
build
for
a
and.
H
Right
and
then
so,
if
I
go
to
this
build
a
right,
I
can
see
that
here
I
have
see
this
is
c
fingerprints
right
and
I
can
see
that
this,
a
dot
txt
fingerprint,
was
actually
the
original
owner.
Is
this
build
right
and
if
I
go
click
there,
I
can
see
that
it
was
used.
Where
was
it
used
and
producing
job
is
build
number
four
right
simple.
H
Now,
if
I
go
start
a
build
for
job
b
right,
what
I
can
see
is
I
can
go
and
type
this
build
and
see
the
fingerprints.
I
can
see
that
this
a
dot
txt
original
owner
is
a
build
four
right,
so
I
can
see
that
what
are
the
usages
where
this
particular
artifact
was
used?
I
started
a
simple
live
example
of
the
fingerprinting
engine
behind
jenkins
right
now
so
yeah.
I
showed
that
fingerprint
ui
in
jenkins
right
so
I'll
just
skip
this
over.
H
So
so
then
we
come
to
the
problem
right.
What's
the
problem,
so
the
current
fingerprint
storage
engine,
it's
saving
these
fingerprints
in
xml
files
inside
the
storage
of
inside
the
local
disk
storage
of
jenkins
right.
So
now
this
is
a
problem,
because
you
know
you
can't
configure
p
as
you
use
cloud
storages
you're
dependent
on
the
local
disk
storage.
H
You
know
you
can't
create
replica
sets
that
might
allow
you
better
reliability
and
availability
factor
management
is
harder
and
plus,
since
these
fingerprints
are
stored
locally,
you
can't
track
them
across
inconsistencies
right
so
to
solve
all
these
problems,
and-
and
just
to
you
know,
show
you
you
can
see
the
screen
also
right.
The
code
editor.
H
The
code
yes
awesome
so
just
now
I
had
showed
you
an
example
right.
So
I'll
just
show
you
that
in
the
work
directory
I
have,
this
is
what
this
is.
The
fingerprint
that
was
actually
created,
it
was
a
is
build.
Four
b's
build
four,
so
this
is
actually
the
example
find
that
you
know
runs
behind
the
scenes
and
I'll
just
stop
this
instance
right.
So
that's
the
problem
we
face.
So
now.
H
What's
the
solution,
so
we
are
working
towards
building
a
pluggable
storage
so
that
basically
plugin
we
can,
you
know,
provide
an
api
inside
jenkins
core
which
plugins
can
build
upon,
and
then
you
know
so
somebody
can,
you
know,
build
a
mongodb
plugin,
a
mysql
plugin.
They
can
just
come
in
and
you
know
these
fingerprints
can
be
stored
inside
these
external
storages.
So
that
is,
you
know
the
goal
of
our
project
and
this
the
entire
story
of
you
know
making
this
pluggable
architecture
is
a
common.
H
Is
something
common
in
jenkins
as
we
move
towards
the
cloud
native
jenkins,
and
you
can
see
these
stories
inside
the
cloud
native
sig.
So
there
are
stories
around
externalizing
log,
storages,
externalizing,
artifacts
and
so
on
and
so
forth
right.
H
So
then,
with
this
project,
what
are
achievements
till
now
in
phase
one?
So
for
so
this
api
was
released
in
jenkins,
2.242.
You
can
see
in
the
change
log.
So
basically
in
242
we
have
this
api,
we
introduce
methods,
and
you
know
so.
Basically
the
developers
can
build
this
and
it
has
73.
I
good
good
build.
So
I
I
hope
I
didn't
break
anything,
that's
good!
H
So
that's
that's
our
api
incentive,
it's
code
and
then
we
are
building
a
reference
implementation
around
it
and
basically
this
reference
implementation
is
backed
by
redis.
So
so
this
is
our
repository.
The
redis
fingerprint
storage
plugin,
you
know,
go
and
give
it.
You
know
just
try
it
out,
give
us
a
feedback.
That
would
be
awesome.
I
believe
installation
and
configuring
the
plugin
everything
is
there
in
the
readme.
So
that
would
be
awesome
right.
H
So
that's
what
we
achieved
and
so
I'll
now
move
on
to
the
you
know,
and
this
the
plugin
is
released
at
0.1
alpha
one,
so
you
can
download
it
from
the
experimental
update
center
right.
So
I'll
move
on
to
the
demo
now
let
me
just
configure
jenkins
instance.
C
H
That's
true,
sadly,
yes,
so
yeah,
so
we
have
an
instance
the
thing
about
this
instance
and
the
earlier
differences
earlier,
as
I
showed
so
now
I
should
have
you
know
I'll
show
you
that
plugin
installed.
So
I
go
to
manage
balance
and
see
what
means.
H
H
H
Oh
sorry,
install
it
sorry
yeah
so
yeah,
so
I
have
registering
open
source
installed
on
alpha
one
release,
all
right,
so
I'll
just
go
to
management.
So
let's
go
to
configure
system.
That's
how
you
can
configure
your
latest
instance.
So
you
know
you
have
this
tab.
The
redistribute
storage
configuration
you
can
specify
host
for
if
there's
a
necessary
connection,
that's
configured
on
the
on
the
connection
so
that
this
uses
integer
index
databases.
So
you
can,
you
know,
specify
a
database
number.
H
This
connection,
timeout
socket
timeout
that
you
can
give,
and
you
know,
if
there's
a
credential
involved.
You
can
just
add
a
credential
right
so
and
plus.
If
you
do
the
test,
it
is
which
will
fail
right
now,
yeah,
because
I
don't
hover,
it
is
instance,
configured
and
I'll.
Just
do
that
right.
So
I'll,
just
spin
up
a
data
server
and
I'll
also
spin
up
a
command
just.
H
H
And
I'll
add
a
build
step
so
I'll
just
create.
You
know
something
that
this
job
will
create
once
it's
run
or
demo.txt
file
and
I'll
add
a
post
build
action
that
is
record
fingerprints,
so
I'll
record
demo
or
txt.
H
Hey,
you
just
say:
check
decoder,
then
yeah
right,
so
we're
good
I'll,
just
apply
save
right.
So
now,
once
I
hit
a
build-
and
I
hope
it
does
not
fail.
Thank
goodness
so
and
I
go
to
this
build
right.
I
can
see
the
fingerprints.
I
can
see
that
it's
recording
demo.txt
and
you
know
we
have
a
it's.
We
found
it
in
build
number
one.
So,
interestingly,
now,
if
I
go
here,
you'll
see
that
in
this
work
directory
I
don't
have
any
fingerprints
folder,
because
these
fingerprints
now
went
to
the
greatest
instance.
H
H
Yeah,
so
that
is
the
level.
So
what's
next
we
plan
to
extend
the
api.
You
know
the
more
methods,
so
we
need
to.
You
know
we
need
to
extend
this
api
to
implement
tracing
across
instances,
that's
something
for
the
next
phases,
so
this
fingerprint
cleanup
so
currently
in
the
local
instances
of
the
then
in
the
local
xml
based
storage.
H
What
happens
is
that
those
fingerprints
which
whose
builds
are
no
longer
present
on
the
system,
are
cleaned
up
on
a
periodic
basis,
but
so
we
need
to
you
know,
have
this
functionality,
for
our
external
storage
is
also
migration.
So
currently
you
know
if
a
user
installs
this
and
has
you
know
already
present
fingerprints
inside
the
local
instance
they
won't
get
transferred
at
the
moment.
So
that
is
something
they're
gonna
work
on
savable
listener
is
something
it's
a
it's
a
it's
a.
Basically,
it
triggers
something
around.
H
It
basically
triggers
itself
when
some
changes
happen,
and
you
know
that
is
something
we
might
want
to.
You
know
do
as
a
next
step
to
support
virtual
files,
or
you
know
so
that
might
need
a
rebirth
and
tracing.
As
I
explained
across
you
know,
tracking
these
fingerprints
across
instances
and
before
the
q
and
a
I
have
these
links
at
the
end
of
my
slide.
So
you
know
that
would
be
awesome
if
you
just
you
know,
give
this
plugin
a
shot.
H
Let
us
know
any
issues
come
up
and
there's
a
greater
channel,
also
link.
So
you
can
find
me
there
always
and
I'll
be
happy
to
help
so
I'll,
just
open
the
floor
up
to
any
q.
A
thanks
a
lot
everybody
for
having
me.
A
H
Right
so
we
have
so.
What
we
do
is
basically
because
these
fingerprints
are
id'd
by
md5
hashes.
So
we
have
to
ensure
that
you
know
an
instance.
Id
is
also
associated
with
them,
so
to
maintain
all
the
current
functionality.
Yes,
we
do
have
an
attached
instance
id
whenever
we
save
it
in
the
redis
instance,
but
the
api
does
not
enforce
anything.
H
A
A
H
I
guess
no,
I
got
your
question,
so
that's
not
something
that
will
happen
because
we
saw
basically
there's
a
you
can
think
of
it
like
as
a
barrier,
so
the
fingerprints
are
pretty
much
isolated
on
an
instance
level.
When
we
talk
about
tracing
we
we
have
not
built
tracing
yet
so
that
might
come
in
the
form
of
a
separate
plugin.
As
far
as
our
current
implementation
goes.
A
C
C
It's
really
important
for
future
architectures
for
running
can
say
in
the
cloud,
especially
in
public
clouds,
and
this
project
helps
us
to
move
towards
this
capability
in
jenkins.
C
Also,
I
would
like
to
say
thank
sumit
for
contributing
to
the
jenkins
core,
because
this
project
includes
a
lot
of
complexity,
because
we
operating
basically
in
with
a
low
level
code
base
of
the
jenkins
core.
So
there
is
a
lot
of
various
aspects
like
computability
like
performance
and
also
retaining
apis
and
make
this
apis
efficient
for
existing
use
cases
without
breaking
binary
compatibility,
so
also
it
was
able
to
study
this
part
of
the
code
base
and
to
quickly
start
contributing
to
that.
C
C
So
thanks
a
lot
for
your
work
on
this
project.
G
Yeah,
I
just
want
you
to
comment.
I
mean
you
know
when
you
know
someone
had
raised
the
point
about
it
being
part
of
the
cloud
native,
so
I
guess
that
is
in
itself.
You
know
very
next
step
that
you
know
it's
today
becoming
of
real
importance
to
be
actually
becoming
part
of
the
cloud
native
part,
so
I
mean
yeah.
I
really
loved
the
entire
idea
of
the
of
the
plugin.
H
Thanks
if
you
are
interested
in
you
know
cloud
native
stories,
so
you
can
go
ahead
to
this.
Actually,
I
did
provide
a
link
somewhere.
Yes,
so
there
are
a
lot
of
pluggable
storages
other
stories,
also
in
this
cloud
native
side.
So
I
would
welcome
you
there
also
thank
you.
A
Okay,
let's
conclude
the
session
today,
thank
you
for
releasing
the
share,
so
here
we
are,
and
so
this
was
our
last
presentation
today,
sister.
This
was
part
two
of
the
project,
demos.
If
you're
looking
for
more
resources
on
the
jenkins
google
summer
of
code
website,
we
have
the
link.
F
A
There
are
recordings
about
the
jsoc
meetings
on
our
youtube
channel
and
you
can
also
visit
our
blogs.
They,
the
tag
for
the
jsoc
blogs
are
jsoc,
is
jsoc
actually
and
these
slides
here's
the
super,
long
link
to
these
slides
and
it's
it's.
It's
truly
wonderful
to
see
that
people
are
enthusiastic
about
contributing
to
jenkins
during
the
summer
of
code
program.
We
have
other
programs
that
jenkins
the
jenkins
community
participates
in.
So
please
visit
our
website
for
more
on
that.
A
So
on
this,
I
want
to
thank
again
all
our
students
and
our
mentors
for
their
great
work
and
for
your
participation
in
this
open
source
project,
and
I
wish
you
all
the
best
for
coding
phase
two
all
right
and
the
link
to
these
slides,
here's
the
short
url
to
these
slides.
If
you
need
to
see
them
offline
and
on
this.
Thank
you
very
much
and
have
a
great
rest
of
the
day.
Everyone.
C
Thanks
all
and
yeah
thanks
to
mark
and
martin
for
hosting
the
gsoc
demos,
and
it's
much
appreciated
and
thanks
to
everyone
who
contributed
to
the
projects,
whether
you
student,
mentor
or
just
contributor
interested
in
these
stories.