►
From YouTube: 2020 05 20 GSoC Git Plugin Performance Project
Description
Jenkins Google Summer of Code office hours for the Git plugin performance project. Discussed telemetry and alternatives to implement the selection to enable or disable a performance tuned git plugin
B
A
Last
time
we
discussed
about
tmh
and
my
strategy
and
how
I
implemented
jam
it
for
performance
benchmarking.
This
time,
I
wanted
to
discuss
the
possible
implementation,
how
we
could
implement
performance
benchmarking
and
to
get
plugin
and
I
think
I'll
start
with
that,
and
then
we
will
go
on
forward.
So
I
have
created
instance,
a
local
instance
of
Jenkins.
Okay,
it's
there.
Oh
I
created
a
new
gate
SC
an
extension
just
like
we
have
clone
options.
I
created
that
so,
basically,
when
we
go
to
the
configured
stage,.
A
Okay,
so
the
implementation
I
want
to
I
want
is
that
I
want
to
provide
performance
enhancement
as
it
as
an
opt-in
feature.
So
the
users
who
want
to
improve,
although
it
seems
a
bit
trivial,
that
user
will
always
want
to
improve
performance,
but
I
thought
it
would
be
safe
to
first
launch
it
as
as
an
option
and
when
we
get
sufficient
user
feedback
on
the
on
what
we
intend
intend.
If
it's
working
that
in
that
way,
then
we
can
maybe
remove
the
option
and
give
all
the
performance
improvements.
C
B
So
the
for
specific
clarity,
the
project
that
you're
showing
on
screen
the
double
fetch
project.
This
is
the
one
where
you're
attempting
to
remove
the
redundant
fetch
that
is
performed
by
the
by
the
plugin
today,
the
embarrassing
awkward
Wow.
Let's
do
the
work
twice
just
because
we
could
do
it
a
second
time.
A
A
Have
the
data
bomb
constructor,
which
gets
the
value
for
enable
performance,
it's
a
boolean
which
is
true
or
false.
So
how
do
I
use
this
when
oh
wait
a
second,
my
system
is
yeah,
so
I
populate
environment
variable
so
I
have
I
put
this
gate
performance,
flag
check
inside
the
environment
and
as
soon
as
someone
wants
to
enable
performance
I,
it's
set
true
inside
this
inside
the
environment
variable
now
what
happens
is
that
I
have
also
implemented
the
decorate
variable
which
we
have
for
basically
modifying
clone
options.
We
have
cloning
and
so
so
decorate.
A
What
we'll
do
is
that
once
I'll
I'll
show
how
decorate
works,
it's
I've
tried
to
use
it
and
get
SCM
at
one
stage
yeah.
So
here
before
creating
the
client,
since
we
want
to
choose
which
implementation
we
want
to
use
for
the
kind
we
have
to
decorate
it
before
we
create
the
client.
Basically,
we
want
to
modify
the
implementation
before
we
create
the
client.
A
So
if
I
have
wherever
I
am
creating
a
client
and
I
have
peach,
will
beeping
Jake
it,
and
yet
I
will
have
a
check
that
if
performance
improvement
is
enabled,
then
I
know
that
for
that,
when
that
is
happening,
if
Jake
is
doing
better
in
the
scenario,
I
would
use
that
code.
Use
that
part
instead
of
the
conventional
path
we
are
using
currently.
A
So
that
is
what
I
thought
and
I
haven't
tested
it
thoroughly
as
much
as
I
had
born
to.
They
said
this
was
a
thought:
I
had
I
just
implemented.
This
part
of
the
code
haven't
actually
I
haven't
actually
coded
any
improvement,
as
of
now
so
I
cannot
test
it
end
to
end.
If
this
is
what
whatever
would
be
the
issues
or
what
would
be
the
concerns
of
this
strategy?
That
is
something
I
would
like
to
discuss.
A
I
would
like
questions,
concerns
and,
and
the
second
part,
if
I
just
just
want
to
complete
this-
that
how
do
we
collect
user
information
after
giving
this
as
an
optional
feature,
so
two
things
that
I
had
in
mind
since
we
will
be
using
jmh.
It
basically
generates
a
jmh
report
which
would
have
the
performance
results
which
the
user's
system
generated.
So
can
we
use
that
for
user
feedback?
I
don't
know.
Ii
was
jenkins
telemetry,
which
is
something
when
I
was
discussing
with
oleg.
He
was
saying,
since
gate
operations
mostly
depend
on
repository
information
or
structure.
A
Why
would
we
need
jenkins
telemetry
to
collect
users
data?
What
kind
of
users
data
would
be
great?
I
think
it
needs
a
comprehensive
evaluation.
If
you
want
to
use
jenkins
symmetry,
what
kind
of
data
would
we
want
from
the
user?
It's
something
we
would
want.
Curly
I
would
want
performance
time
execution
time
for
some
individual
operation.
That's
what
I
would
want,
but
I'm,
not
sure
if
that
is
possible
or
not
to
get
that
kind
of
information.
So
that's
something
I
would
have
to
explore
so
yeah.
This
is
what
I
thought
about
the
implementation:
okay,.
B
So
so
solana
tree
information,
the
idea
there
was
so
unwinding
from
the
stack
you
would
describe
telemetry
information
that
would
be
to
help
guide
you
to
decide.
Should
we
implement
this
as
the
default
or
not
or
or
what?
What
were
you
envisioning
there?
So
tell
me
more
about
your
the
telemetry
idea.
A
I
think
that
I
had
it's
it's
it's
it's
just
that
I,
maybe
I
when
I,
when
I'm
collecting
when
I'm.
Basically
a
user
is
I,
have
I
basically
measure
the
performance
in
some
way
or
the
other
I
am
running
the
benchmarks,
but
I
am
not
sure.
If
we
can,
we
can
hit
the
Bev.
So
how
are
we
getting
the
results?
We
are
getting
it
in
a
JMS
report,
I'm,
not
sure
if
the
telemetry
can
extract
the
results
from
the
Germans
would,
if
that
is
possible.
A
That
will
be
a
good
thing
that
we
basically
we
be
parsley
here
as
a
report.
We
understand
that
okay
get
fetch
took
this
much
time.
We
have
V
in
our
systems,
have
some
kind
of
reference
that
this
is
the.
This
is
the
intended
time
intervals
between
which
gate
fetch
should
perform.
If
Jake
it
is
being
used
as
an
implementation,
and
that
is
how
we
can
confirm
that
whatever
changes,
we
have
implemented,
they're,
actually
working
on
a
user
system
or
not.
Okay,.
B
I
I
was
I
was
assuming
that
you
might
say
things
like
hey
I
would
like
the
telemetry
to
tell
me
the
duration
of
the
first
get
fetch
the
duration
of
the
second
get
fetch
in
the
same
check
out
operation,
so
that
we
would
know
how
much
time
we're
gonna
save
users
in
general
by
avoiding
the
second
get
fetch
completely.
However,
I
don't
know
that
that
gathering
that
information
is
actually
going
to
help
us
decide
much
you're,
just
mental.
B
My
thinking
was
if
they,
if
we
could
prove
that
the
first
fetch
and
the
second
fetch
used
exactly
the
same
arguments,
that's
already
our
proof
that
it's
it's
a
wasted.
Second
fetch,
so
we
don't
really
need
a
telemetry,
then,
at
all,
we
just
yeah,
we've
we've
sampled,
and
we
know
that
in
those
cases
where
second
fetch
is
the
same
as
first
fetch
it
it
by
definition,
should
get
no
more
data,
and
so.
A
Okay,
go
ahead
so
when
I
was
talking
about
collection,
collecting
users,
feedback
I
was
talking
about
the
changes
we
would
do
in
implementations,
or
maybe
we
used
a
gate
for
less
than
5
MB
repository
size.
So
when
we're
doing
that,
how
do
I
understand
if
it's
working
on
different
systems
and
all
that
is
what
I
was
talking
about
in
terms
of
users?
Feedback
I,
see.
B
A
B
There
it's
a
it's
a
collection
of
for
some
fixed
period.
We
collect
that
the
duration
of
operations
by
and
we
record
the
duration
of
the
operation
and
the
implementation
they
were
using
for
that
operation
is
that
sort
of
what
you're
envisioning.
So
the
this
Ellis
remote
took
this
long
using
the
jagged
implementation
and
that's
a
data
point
that
they
report.
We
gather
that
for
maybe
a
week
from
all
users
so
that
we
can
see
hey
average
numbers
in
the
real
world
looked
like
this
is.
A
It's
it's
more
geared
interpretation
of
what
I
want
to
say,
but
my
concern
with
that
is
it?
How
would
because
if
we
could,
if
we
could,
maybe
we
measure
the
time
by
nano
time
system
nano
time?
That's
not
something
we
would
want
to
do
to
measure
the
time
between
an
operation.
We
are
using
a
performance
benchmarking
tool
to
do
that,
but
I'm
not
sure
if
telemetry
can
access
the
results
of
our
performance
benchmark
was
our
performance
when
I
would
effectively
be
assessing
the
difference
in
implementation
than
the
time
taken
by
the
operations
in
every
system.
A
B
So
so
my
assumption
was,
we
would
not
embed
jmh
at
all
in
the
thing
that
we
deliver
that
for
the
telemetry
piece.
We
just
do
the
system
nano
time
that
you
were
proposing
and
report
the
data
to
Jenkins
telemetry,
but
I'm,
not
a
telemetry
expert.
So
so
that
felt
like
you
were
you.
Your
goal,
then,
is
to
know
what's
the
average
time
or
what's
the
typical
time
used
in
the
various
implementations
out
in
the
real
world
or
then
we
do
that
for
a
limited
period.
B
D
B
Don't
know
about
performance
issues
but
I'm
hesitant
I've
had
we've
had
we've
suffered
in
the
past.
When
somebody
detected
a
new
method
added
to
the
get
plugin
and
thought
it
was
a
published,
API
and
decided
they
would
use
it,
and
so
I
I
I
am
very
hesitant
to
have
the
get
plug-in
develop
any
new,
published
api's
and
so
shipping
jmh
with
it
risks
that
it
would
suddenly.
Somebody
might
think.
Oh,
the
gate
plug-in
is
now
volunteering
to
give
jmh
to
everybody,
and-
and
I
don't
want
to
do
that,.
D
B
D
I
agree
with
you
like
it's:
it's
not
ideal
to
shapers
image
for
all
the
users,
but
can
do
if
that
is
an
experimental
way
and
we
think
it
wouldn't
be
a
blocker
for
our
process.
So
we
can
just
post
it
on
MI
or
D
with
you
are
anyone
we
can
hear
you.
Okay,
so
I
mean
we
can
test
it
on
Jenkins
Road.
Are
you
I
mean
you
know,
I
mean
Jenkins
official,
who.
B
You
make
it
you
make
it
at
this
point.
We
could
ask
Rishabh.
Instead
of
doing
telemetry,
we
could
ask
to
be
allowed
to
deploy,
to
see
Ida
Jenkins
that
IO
and
get
a
custom,
build
and
gather
the
data
there.
That
would
be
a
much
narrower
sample,
but
it's
it's
still
a
very
heavily
used
narrow
sample
right
when,
when
we
talk
about
the
thousands
and
thousands
of
jobs
that
run
on
see,
Ida
Jenkins
thought
I,
oh
all
of
them
using
git
it.
B
E
B
Versus
without
CI
I
was
thinking.
We
would
well
good
question.
I
was
assuming
we
needed
repo
size
or
an
approximation
of
repo
size,
but
we
don't
particularly
care
about
the
the
exact
repo,
but
let
go
shop.
Tell
you
tell
me
what
what
your
thoughts
are
there.
So
I
was
assuming
that
the
data
would
be
used
to
say,
hey
we're
seeing
that
Jake.
A
C
E
B
Well,
I
think
that
one
of
the
challenges
for
telemetry
is
as
soon
as
we
every
time
we
gather
and
another
piece
of
data
or
ask
for
permission
to
gather
another
piece
of
data
we
risk
them
saying.
No,
that's
too
sensitive
I
would
expect
repository
URLs,
for
instance,
to
be
too
sensitive,
but
number
of
objects
in
the
repository
and
estimate
of
repository
size
on
the
disk,
probably
isn't
too
sensitive.
But
again,
we'd
have
to
check
with
the
the
people
who
care
deeply
about
security
to
decide
to
get
their
guidance.
D
B
I
think
we
could
get
a
B
style
data
out
of
the
telemetry
that
Rishabh
was
proposing
without
actually
doing
a/b
testing
without
without
having
to
ship.
Two
were
two
versions,
because
what
I
think
rishabh
was
proposing
is,
let's
gather
the
data
that
tells
us
which
implementation
they're
using
and
what's
the
repository
size,
and
how
long
did
the
operation
take
and
with
that?
We
now
have
a
collection
of
data
that
tells
us
who's
using
which
implementations
and
I
would
expect.
95
percent
or
more
will
be
command-line.
B
D
In
you
should
in
the
UI
that
user
would
be
adding
additional
option
so
like
in
cases
like
where
user
is
using
github
branches
plug-in
or
bit
lab
branches
back,
you
know
any
other
SEM
they
they
like
depend
on
the
grid
plug-in
for
the
functionality.
So
how
would
these
plug-in
would
be
like
using
this
particular
feature?
I
mean
anything.
The
chip.
B
Excellent
question
but
I
think
I
may
have
an
answer:
the
the
github
branch
source
plug-in
and
the
bitbucket
plug-in
and
the
giddy
plugin,
and
to
get
lab
plug-in
I'll
use
REST
API
s
right
to
do
to
do
a
large
chunk
of
their
work,
rather
than
relying
directly
on
the
get
plugin
for
the
places
where
they
use
the
REST
API.
It's
it
doesn't
involve
to
get
plug-in
at
all
when
they
use
the
get
plug-in,
for
instance,
in
a
job
definition.
These
extensions
are
already
available
to
them
or
not
depending
on
user
choice.
B
E
D
B
B
B
We
think
that
the
project
should
do
a
one-week
telemetry
gathering
from
Jenkins
you
from
get
plugin
users
of
the
Jenkins
or
a
get
plug-in
release
to
gather
the
following
data,
and
we
want
it
for
a
limited
time
and
here's
the
data
we
want
to
collect
and
here's
a
hint
of
how
we
intend
to
use
it
and
then
the
developer
list,
Daniel,
Beck
and
others
will
probably
chime
in
and
say,
yeah.
That's
a
reasonable
idea.
Oh
no,
that's
completely
unacceptable,
and
then
we
know
very
quickly
if,
if
that
was,
if
that's,
okay,
even
reasonable.
E
B
That
the
data
I
gathered
said
that
over
50
percent
of
250,000
installations
of
the
get
plug-in
are
using
at
least
Jenkins
tu-204,
so
they're
only
they
are
only
one
LTS
back
level,
which
is
quite
good
all
right.
So
that
says
a
hundred
and
twenty-five
thousand
over
125,000
installations
are
only
one
LTS
back.
A
Okay,
so
the
next
thing
we
have
on
our
agenda
is
we
testing
the
benchmarks
on
Jenkins,
I/o
agent
and
I
was
exploring
a
way
to
run
the
benchmarks
on
those
agents
and
I
found
out
that
there
is
already
a
custom
stage
defined
in
the
pipeline
global
library
and
what
we
just
have
to
do
with
it
in
a
Jenkins
file
in
a
gate
client
in
Jenkins
file.
He
would
have
to
add
this
after
the
build
plug-in
stage,
and
this
would
run.
A
C
A
So
this
is
how
we
can
test
them
on
on
the
agents
and
I.
Would
I
would
quickly
like
to
raise
a
PR
to
test
the
existing
benchmarks?
I
have
on
these
agents,
and
then
we
do
that.
So
the
issue
I
have
sorry
the
issue
I
have
with
this.
Is
it?
How
do
I
put
my
the
gate
repositories
I
would
I
would
want
to
fetch
I.
For
now,
in
my
local
system,
I
had
locally
fetch
the
git
repository
to
test
the
benchmarks
to
to
have
the
benchmark
completely
isolated
from
the
environment.
B
If
you
look
on
in
the
git
client
plug-in
automated
tests
and
I
can
say,
I
can
send
you
a
link
to
the
specific
test.
There
is
a
step
there,
which
does
a
caching
copy
of
remote
repositories,
local
as
part
of
an
early
stage
step
anyway.
So
I
think
we
can
just
use
that
same
technique,
and
then
you
put
it
on
github
somewhere.
Your
reference
repositories
go
on
github
and
as
one
of
the
first
as
a
very
early
step.
It
copies
it
to
the
local
local
agent
and
then
uses
the
local
copy.
B
Okay,
you're
going
into
a
dark
place,
Justin
because
the
benchmark
sources,
the
benchmark
sources,
let's
see
plug-in
repositories,
the
Linux
kernel
I
mean
there
are
all
sorts
of
it.
When
rishabh
gets
to
the
point
of
deadly
serious
benchmarking
stuff,
there
are
some
frightening
repositories
out
there
right.
The
Linux
kernel
has
lived
for
in
git
for
what
10
years
now
and
it
has.
It-
receives
hundreds
of
commits
a
day,
all
the
time,
24
hours
a
day,
seven
days
a
week.
B
B
Know
they
are
not
and-
and
they
shouldn't
be,
it's
a
two
gigabyte
monster
and
and
no
we
should
not,
but
but
it
was
an
example
of
if
we
needed
a
really
pathological
case,
a
really
very
frightening
case
of
performance
test.
There
are
plenty
of
very
frightening,
very,
very
big
performance
test
cases
out
there.
B
A
Okay,
so,
okay,
after
that,
the
next
thing
is:
how
will
the
user
interact
with
the
gmh
liquids
which
commercial
generate?
So
one
of
the
options
I
have
discovered
is
that
since
the
gmh
framework,
it
generates
a
JSON
report,
there
is
a
plug-in
existing
plug-in,
which
is
called,
which
uses
a
jmh
visualizer.
A
Basically,
what
it
does
is
it
takes
the
Jason
and
it
takes
the
JSON,
and
this
is
how
it
visualizes
that
taking
it
from
previous
g-shock
project
roll
Chaterjee
plugin,
and
we
would
have
to
use
the
plugin
a
plug-in
to
feed
the
JSON
to
it,
and
then
this
is
how
we
can
show
the
results
to
the
user.
The
user
can
see
the
results.
This
is
one
of
the
ways
or
either
or
maybe
we
could
just
give
them
the
JSON
and
it's
their
choice
to
interpret
the
results.
However,
they
want
to
that's
also
an.
B
A
Yeah
I,
just
yeah
I
found
out
yeah
gmh
report,
visualize
the
results,
academic
benchmarks,
and
so
this
is
this
is
a
web
site
geometry
july's
visualizer.
So
you
can
upload
your
teachers
happy
upload
areas
on
Iran.
It
has
integrated
that
this
the
same
to
that
plug-in
to
Jenkins,
basically
so
I
think
we
can
use
this
I
would
have
to
test
it.
Of
course,
I
haven't
tested
it
force
tested
and
then.
C
B
A
Yeah,
that's
ok
and
you
know
the
last
things
I
had
what
is
the
diameter?
So
would
we
validate
our
results
statistic
in
how
do
we
make
sure
that
our
results
are
daylight
mother?
My
point
was
that
can
be
used
confidence
in
too
or
something
like
that
we
have.
Maybe
we
have
an
observation
of
30
data
points
which
we
can
assume
as
a
normal
distribution.
We
can
have
the
mean
we
can
have
the
standard
deviation.
A
A
What
I'm
not
sure
about
is
that,
since
those
confidence
intervals
would
be
calculated
on
our
systems,
would
that
be
the
true
representation
of
the
population,
the
data
points
or
the
real
performance?
That
is,
that
is
something
I'm
not
sure
about.
I
am
NOT
a
big
expert
on
statistics,
but
something
I
was
thinking
about
that,
since
we
would,
we
would
have.
We
would
test
our
benchmarks
on
a
lot
of
machines,
but
we
still
should
have
a
way
to
consolidate
those
results.
A
Giving
an
interval
would
be
an
easy
way
to
use
as
a
reference
for
people
to
understand
if
the
implementation
is
changed
in
a
certain
way,
maybe
from
get
to
JK.
This
is
from
maybe
50
milliseconds
200
milliseconds.
That
is
what
we
expect
is
the
range
of
average
execution
time.
Maybe
we
can
mention
the
systems
you
have
tested
and
how
we
have
reached
to
this
result
to
the
sea-ice
we
are
giving,
but
it's
something
I
was
thinking
about
and
I
wanted
feedback
from
you
guys.
Is
there
something
we
can
think
about.
B
So
we've
got
some
interesting
data
sources
already
that
we
can
use
to
say,
hey
look
when
we
run
on
armed
64.
It
behaves
like
this
when
we
run
on
AMD
64.
It
looked
like
this
and
I
think
we'll
already
get
just
by
the
the
feel.
The
mere
act
of
running
on
CI
Jenkins
that
IO
across
those
different
architectures
will
get
data
that
will
either
tell
us
we
need
this
kind
of
confidence
reporting
or
the
separation
is
so
great.
B
We
don't
have
to
worry
about
the
confidence
interval
reporting
I
mean
your
your
data
earlier
rishabh
would
indicated
to
me
what
you
saw
was
dramatic
differences
between
command
line,
get
and
jagged,
and
they
were
visibly
different.
I
mean
the
the
the
reader
looking
at
the
charts
would
see.
No
no
risk
of
any
set
of
any
overlap
between
those
two
data
sets
agreed.
B
The
the
command
line
gate
implementation
was
inserted
into
the
plug-in
in
tooth
was
the
first
implementation.
It
was
inserted,
I
think,
2009
or
2010,
and
then
three
or
four
years
later
it
was
yet
Jake.
It
was
added
because
it
was
viewed
that
hey
a
pure
Java
implementation
has
to
be
better
than
calling
a
separate
program.
That
was
where
I
got
involved,
because
it
turned
out
that
that
assertion
was
completely
false.
A
pure
Java
implementation
was
nowhere
near
as
good
as
calling
a
separate
program.
B
For
time
for
time,
there's
and
there's
a
serious
fork
overhead
on
Windows.
There
really
is
there
it's
non-trivial,
but
even
with
that,
the
performance
work
that
Linus
and
and
all
the
other
get
implementers
had
done
on
the
C
code.
It's
very
very
hard
to
write
Java
code.
That's
as
good
as
that
C
code
is.
B
So
yeah
and
party
che
I
could
dig
you
more
details.
I've
got
I
did
a
presentation
long
ago
about
the
history
of
the
get
plugin
that
has
some
frightening
information
about
how
long
it
took
before
tests
even
arrived
in
the
get
plugin.
Don't
you
you
and
I?
We
could
have
a
long
conversation
about
the
evolution
of
this
plug-in.
A
B
Yeah,
if,
if
if
everyone
has
got
just
two
minutes,
I
propose
to
get
inform
you
all
of
that
that
way,
you're
aware
so
we
have.
We
have
an
upcoming
release
Jenkins
to
230
5.1,
which
is
the
next-generation,
long
term
support
release.
It
will
come
out
in
about
four
or
five
weeks
that
release
includes
some
user,
enhance
user
interface
improvements,
one
of
those
user
interface
improvements
really
needs
some
changes
in
the
get
plugin
so
that
the
get
plugin
does
not
look
ugly
on
to
dot
235
uglier
than
necessary.
It
already
looks
ugly.
B
It
will
look
ugly,
but
but
in
order
to
what
that
means,
we
would
like
to
deliver
a
release
of
the
gate
plug-in
about
the
time
that
to
dot
235
releases.
There
is
in
addition
to
that,
a
proposal
to
include
pipeline
cymbals
instead
of
the
awful
horrible
long
strings
that
we
use
now
to
use
short
form
cymbals.
So
today,
when
I
say
check
out
open-paren,
it
says:
dollar
sign
class
:
get
SEM,
:
long
long,
long,
verbose
thing.
We
want
to
switch
that
and
use
short
cymbals
so
that
they're
easy
to
read.
B
B
So
those
two
key
features
and
then
there's
one
additional
feature
requested
by
the
by
Mike.
C,
really
asking
to
add:
support
for
extended,
read
permissions
into
the
into
the
get
plugin
so
that
you
can
see
certain
things
when
you're
yeah
long
story,
we've
got
a
pull
request
for
it
and
those
will
happen
over
the
next
one
or
two
weeks,
we'll
get
those
integrated
we'll
do
a
beta
release,
and
then
two
weeks
of
beta
and
after
two
weeks
of
beta
about
the
time
that
to
dot
235
releases,
we'd
like
to
release
get
plugin
for
three.
B
So
rishabh
has
expressed
some
interest
in
in
being
willing
to
help
with
that,
and
I
am
great
with
that.
I
don't
want
to
derail
his
project
work,
but
we're
gonna
be
working
for
about
the
next
four
weeks,
trying
to
get
to
get
plugin
for
three
ready
to
go
any
any
questions
or
concerns
there.
Any
red
flags.
E
B
And
and
I
enumerated
a
long
test
plan
of
things
that
that
rishabh
might
consider
doing
the
things
that
I've
enumerated
are
actually
sort
of
what
I'd
call
corners
of
the
plug-in
that
he
would
not
have
encountered
in
doing
performance
work,
and,
you
may
say,
hey
I,
know
I'm
not
interested
in
those
corners
I'm.
Okay
with
that,
but
those
corners
there
Fran
for
your
info,
they're,
the
pipelines,
shared
library,
definitions
of
browsers
and
those
kinds
of
things
to
be
sure
that
we
haven't
broken
compatibility.
B
D
A
How
is
it
working
and
and
I
would,
after
that,
maybe
evaluate
and
good
one
you
guys
to
evaluate
if
that
is
the
correct
approach
to
use
it
as
an
option
if
I'm
using
it
as
an
option,
is,
is
that
the
right
approach
to
populate
an
environment
variable
to
add
an
extra
variable
extra
check
in
the
matter
between
you
and
use
it
like?
That
is
there?
Is
that
the
right
way
something
I
would
nor
yeah.
B
I
think
that's
that's,
remember,
that's
relatively
uncommon.
The
plugin
currently
tends
to
use
variables
that
are
attached
to
the
rather
than
environment
variables.
It
uses
fields
on
a
java
object
to
represent
that
kind
of
state,
so
that,
if
you,
if
you
were
to
look
at
there,
are
some
other
places
in
the
plugin
where
it
has
recorded
how
its
choosing
to
do
something
and
allows
the
user
to
override
if
they
wish
and
and
rather
than
using
an
environment
variable
to
pass
it
around.
It
actually
uses
just
a
private
field
or
a
even
a
public
field.
B
On
the
you
know,
publics
a
bad
choice,
private
field,
on
the
object
with
the
getter
and
a
setter.
So
ok,
you
I,
think
look.
Therefore,
there
are
usually
some
big
comment
blocks
around
things
that
have
been
done,
for
instance,
for
security
fixes
or
for
for
this
or
that
problem
where
we
had
to
retain
compatibility
but
allow
or
we
had
to
fix
a
problem
but
allow
people
an
escape
hatch
in
case
they
needed
it
to
go
back
to
the
old
way.
B
Oh
you're,
talking
about
the
flags,
you
can
pass
to
Jenkins
to
turn
it
off
exactly
right.
Those
those
kind
of
things,
that's
more
common
I,
don't
think.
There's
any
implementation
that
uses
an
environment
variable
today
and
they
get
plug-in
to
pass
the
kind
of
information
you're
trying
to
pass
I
think
it
rather
uses
these.
These
variables
properties
that
can
be
set
at
startup
time
to
say:
hey,
I,
want
this
behavior
or
I
want
that
behavior.
D
D
E
And
there's
there's
some
tricky
bits
around
embers
they're,
not
particularly
super
mutable
in
some
circumstances,
but
like
the
MVP
way
of
potentially
testing.
Your
approach
might
also
mean
just
like
when
it's
turned
on
you
log
to
the
console,
like
that's
like
the
simplest
way
to
kind
of
like
verify
your
functionality
and
then
I
think
your
other
proposal
also
like
implementing
like
a
stud
implementation
or
something
there's
also
a
good
way
to
go
about
it.
B
That's
yeah
that
there's
plenty
you
will.
You
will
certainly
not
pollute
the
log
anymore
than
the
get
plugin
already
pollutes
the
log.
It
is
a
very
low
bar
to
not
pollute
the
log
more
than
the
good
they
give.
Plugin
is
horrible
it
how
much
pollution
it
puts
into
console
logs
and
how
much
we
depend
on
that
horrible
pollution
to
fix
problems
so
sometimes.
B
Rish
up
anything
else,
no
all
right
thanks,
everybody,
so
I
will
send
an
invite.
One
of
the
things
that
I've
worried
about
is
that
we
may
not
be
connecting
with
Rishabh
frequently
enough,
so
I'll
send
a
doodle
poll
to
look
for
a
second
time
when
we
could
meet
with
Rishabh
so
that
we
can
meet
twice
a
week
rather
than
once
a
week
for
the
next
two
or
three
weeks
until
we
get
to
the
end
of
May,
all
right.
B
D
D
Also
another
suggestion
I
have
for
you
sure
like
in
like
during
the
project.
You
will
be
getting
a
system,
the
intelligence
community,
not
just
all
the
mentors,
so
there
will
be
a
lot
of
technical
defects
and
all
so.
It's
not
always
possible
to
have
video
meeting
in
every
point
of
time.
So
do
not
get
stuck
and
use
a
Jenkins
developer
mailing
list
and
you
have
to
build
that
habit
of
having
text-based
conversation
as
well.
So
it
kind
of
helps
so
I
actively
use
that
that's
a
very
great
resource.