►
From YouTube: .NET Foundation Project Spotlight - Cake
Description
.NET Foundation Marketing Committee member Isaac Levin spoke to Gary Ewan Park, one of the maintainers of Cake. For more detail, be sure to check out the Project Spotlight page
https://dotnetfoundation.org/projects/spotlight?project=Cake
B
Yeah
yeah
I'm
garrett
park,
I'm
from
scotland
and
yeah
I'm
one
of
the
main
contributors
to
the
cake
project,
which
is
dotnet
foundation
project.
A
B
So
cake
is
first
and
foremost
cake
is
a
it's
a
build
orchestration
tool,
it's
a
tool
that
allows
you
to
take
the
different
parts
of
what
your
build
is.
So
when
folks
talk
about
a
build,
there's
some
some
ambiguity
about
what
they're
referring
to
there.
So
is
it
the
compile
step,
or
is
it
more
than
that?
So
when
I
refer
to
build,
what
I'm
talking
about
is
the
compilation
step,
the
unit
testing,
step,
the
packaging
step,
the
publishing
step
and
the
notification
steps?
B
All
of
those
things
combined
to
me
make
up
a
build
so
cake
as
an
orchestration
tool,
allows
you
to
easily
stitch
all
those
things
together
so
rather
than
using
something,
maybe
like
powershell
or
some
other
build
automation
tools
you
can
do
that
with
cake
which
is,
is
his
heart
is
a
c-sharp
application.
So
you
write
a
script
in
c
sharp
that
allows
you
to
orchestrate
all
those
different
parts
of
your
build
together
to
then
ultimately
perform
your
build.
A
B
A
B
Or
at
the
command
line
you
would
run
you
might
be
using
the
dot
net
cli,
so
you
might
do
netbuild.net,
publish
and
then
you
might
run
some
sort
of
static
analysis
tools
on
on
top
of
the
code
base
to
see
if
things
are
working.
The
way
you
want
them
to
so,
rather
than
doing
all
of
those
processes.
Manually
kate
comes
into
the
equation.
That
says,
let's
define
what
that
build
process.
Is
you
write
it
as
a
cake
script?
B
So
it's
just
a
essentially
it's
a
c-sharp
file
in
your
repository
and
then
that
gets
checked
in
with
your
source
control.
So
as
the
build
process
changes
or
as
you
make
tweaks
to
it,
you
have
the
full
benefit
of
source
control
management.
That
goes
with
that.
So,
like
I
say
you
organize
the
cake
script
into
a
set
of
discrete
tasks.
You
have
a
a
build
step,
a
build
task.
You
have
a
publish
task,
you
have
a
analyze
task,
you
have
a
whatever
task.
B
It
is
your
build
process,
and
then
you
build
up
what's
known
as
a
dag,
a
directed
a
cyclical
graph
of
the
dependencies.
So
it
then
controls
the
order
of
the
execution
of
those
tasks,
but
one
of
the
main
benefits
of
something
like
cake
is
that
you,
the
build
process
that
you
define
within
that
cake
script.
You
can
run
that
locally.
B
So
then,
when
you
start
to
introduce
things
like
continuous
integration,
continuous
deployment,
you
might
use
something
like
azure
device
pipelines,
you
might
use
appvay
or
you
might
use
something
else,
but
that
cake
build
process
becomes
a
single
step
in
something
like
azure,
devops
or
so,
rather
than
having
to
redefine
or
re-engineer
that
build
process
in
a
yaml
file
or
something
else.
It's
the
exact
same
process
that
you
build
locally
on
your
developer
machine
as
you're,
then
building
up
in
the
cloud
somewhere.
So
there's
a
direct
synergy
between
the
two.
A
B
So
so
cake
as
a
project
has
been
around
since
2014.,
my
virtual
colleague,
patrick
svenson,
started
the
project
back
in
2014
and
it's
kind
of
evolved
as
a
product
or
a
project
since
then,
so
the
original
version
of
cake
used
both
the
rosalind
scripting
and
the
mono
compilation
engines
in
order
to
perform
do
the
work
it
does.
It
then
evolved
into
a
single
project.
B
Tell
you
all
of
that
is
because
of
that
history,
depending
on
what
parts
and
docs
you're
looking
at
or
what
existing
projects
you're.
Looking
at,
you
may
go
down
one
path,
but
the
the
kind
of
the
myth
the
recommended
way
of
doing
it.
As
of
now
is
you
create
a
a
document
tool
manifest
in
your
project?
So,
let's
say
you're
working
with
a
new
project.net
core
application.
It's
got
a
solution,
files
and
projects.
You
walk
up
to
it.
You
create
a
document
tool,
manifest
file
and
into
that
you
install
the
global
tool.
A
B
B
It
can
be
multiple
files
that
kind
of
include
other
files
into
it
and
into
there
you
just
start
defining
that
dag,
and
so
you
would
you
create
a
task
that
is
built
so
in
there
you
would
use
some
of
what
we
refer
to
as
the
cake
aliases
to
run
the
dot
net
core
build
step,
so
you
would
pass
in
your
standard
sort
of
what
configuration
are
you
building
is
a
debug
build?
Is
a
release
build
and
you
pass
in
potential
parameters,
additional
parameters.
You
need
to
pass
in
to
that
build
process.
B
So
it's
it.
Doesn't
it
doesn't
do
anything
magic,
it's
literally
a
orchestration
and
definition
of
what
you're
doing
anyway.
So
what.
B
Maybe
what
visual
studio
or
what
the
visual
studio
code
is
doing
for
you?
You
then
own
that
so
you're
taking
that
process,
that's
happening
for
you
in
the
background,
you're,
defining
exactly
what
that
is
into
your
cake
script
and
then
like
say
that
become
part
of
your
source
control,
and
then
it
flows
on
from
there.
A
I
can
imagine
this
a
situation
where,
in
order
to
just
do
a
build,
and
maybe
I
have
to
run
a
powershell
script
or
a
bash
script,
if
I'm
in
linux
or
and
then
I
need
to
configure
some
things,
then
I
gotta
hit
f5
and
vs,
and
I
gotta
do
a
bunch
of
other
things
like
having
all
that
stuff
like
in
a
workflow
based
thing,
like
that's
extremely
valuable
right,
so
I
definitely
you
know
I
think,
you're
not
giving
yourself
enough
credit
I
think
cake
is.
It
has
a
little
bit
of
magic
in
it.
B
It
kind
of
certainly
appear
that
way,
but,
like
I
say
it's
at
the
end
of
the
day,
it's
it's
an
orchestration
tool
that
you're
is
orchestrating
the
tools
that
you're
already
using.
So
you
might
do
it
in
individual
steps
you
might,
or
you
put
onto
someone
else's
machine
to
run
another
part
of
it,
etc.
So
it's
really
just
taking
all
of
that
knowledge
and
putting
it
into
one
place
so
cake
is
not
cake,
is
not
unique
in
this
sense.
There's
lots
of
tools
out
there
that
do
it.
B
There's
there's
rake,
there's
fake,
there's
make
and
that's
kind
of
where
the
cake
name
kind
of
came
from.
You
know
this
ache
kind
of
tools
have
evolved
over
the
years
for
different
languages
and,
like
I
say
cake
is
it
was
patrick's
envisioning
of
what
he
was
trying
to
get
out
of
the
build
tools
that
he
was
using
at
the
time
and
so
yeah.
That's
really.
The
name
came.
A
B
We're
looking
at
the
point
that
we're
trying
to
get
to
a
1.0
release
of
cake,
so
there's
been
something
like
100
or
so
different
releases
of
cake,
but
all
of
them
have
been
kind
of
a
pre
semantic
version,
1.0
release,
but
in
that
kind
of
process
we're
up
to
something
like
seven
million
downloads
of
the
cake.exe
nuget
package.
B
So
it
is
a
mature
project
but
we're
trying
to
kind
of
draw
the
line
and
design
and
say
that
this
is
the
1.0
release
and
once
we
get
to
that
point,
there
are
some
plans
about
refactoring
some
of
the
internals
of
cake
and
how
they
work,
but
and
there's
also
some
optimizations
to
be
made
in
terms
of
the
the
compilation
step.
So
at
the
minute.
In
order
for
cake
to
function
it
takes
that
build
script
that
you
create
essentially
compiles
it,
and
then
it
runs
it.
B
So
there's
some
optimizations
there
in
terms
of
the
compilation
stage,
so
that's
kind
of
the
main
focus
but
cake
as
a
project
has
got
kind
of
lots
of
different
arms.
I
mean
we
brought
enrico
recently
onto
the
team,
so
he
created
the
the
github
action
for
cake.
So
there's
there's
there's
work
to
be
done.
There
there's
other
things
in
terms
of
intellisense
support,
so
one
of
the
things
that
martin
on
the
team
is
kind
of
focusing
on
is.
B
We
do
have
intellisense
support
for
cake
within
vs
code,
but.
B
Things
work,
so
it's
a
living
breathing
project.
Obviously
there
are
bugs
that
crop
up
every
so
often
we
are
in
the
process
of
changing
our
documentation
so,
like
I
said,
because
we've
moved
from
a
project
that
was
focused
on.net
framework
and
moving
into
the
more
net
global
tool
version
of
it.
There's
changes
to
the
documentation,
that's
happening,
so
we
work
with
dave
click
on
the
team.
B
Who
is
the
creator
of
the
wyoming
project,
which
is
how
we
bring
into
the
static
project
and
there's
work
to
be
done
in
terms
of
creating
or
updating
the
website
to
new
to
move
to
that
new,
tooling
as
well.
So
yeah
we've
got
lots
of
stuff
on
on
the
on
the
cards
at
the
minute,
but
it.
A
B
I
mean
it
is:
we've
been
hesitant
to
get
to
that
one
point
release
because
once
you
get
there
there
is
that,
like
you,
kind
of
want
to
make
sure
that
the
public-facing
api
is
kind
of
spot-on
and
you
know
you're
not
going
to
break
anyone
so
we're
getting
very
close,
we're
like
where
it's
0
38.4
at
the
minute
of
a
kick
and
like
I
said
the
next
release
is
going
to
be
a
1.0
release
once.
A
We
can
get
there
what
you
could
do
just
troll
your
users
is
get
to
like
version
.99
and
then
just
have
like
a
bunch
of
a
bunch
of
minor
revs
like
that.
I'm
super
excited
awesome,
so
I
I
want
to
kind
of
put
on
my
developer
hat
again,
right
so
say,
for
instance,
I
use
cake.
I
use
it
all
the
time
and
there
are
some
things
that
maybe
I
see
that
I
could
you
know
that
I
could
add.
That
could
add
value
to
cake.
A
So
what
are
some
of
the
the
best
ways
that
you
see
is
the
maintainer
that
a
contributor
community
member
can
contribute.
B
B
So
one
of
the
things
we
did
around
that
time
was
a
contribution
model,
so
we
have
kind
of
a
fairly
well-defined
process
that
we
ask
maintain
future
contributors
to
go
through
the
first
one
is
to
essentially
reach
out
to
us
so
whether
that's
through
we
have
a
an
active
get
our
channel
where
we
do
a
lot
of
communication
and
we've
recently
just
switched
on
discussions
in
our
github
repository.
B
So,
first
and
foremost,
I
would
ask
anyone
interested
in
looking
at
the
project
to
reach
out
to
us
get
in
touch
with
us,
whether
it's
like
say
a
discussion,
whether
it's
in
getter
and
essentially
get
sign
off
on
the
thing
that
you
want
to
add
in
and
then
the
kind
of
the
process
from
that
point
is
to
create
an
issue
on
our
github
repository
and
in
there
we
kind
of
go
backwards
and
forwards.
We
can
discuss
implementation
details
like
the
specifics
of
the
whatever
is
coming
in
and
then
from
there.
B
It
would
be
a
pull
request
and
we
go
back
with
reports
on
that
in
terms
of
changes,
suggestions
that
sort
of
thing
and
ultimately
pulled
in
so
I
mean
we're
really
lucky
as
a
project.
We've
had
quite
a
lot
of
contributors
to
the
project,
we're
up
to
like
over
180
different
contributors
to
the
project
and,
like
I
say
there
have
been
some
incidents
in
the
past
where
we've
had
to
say.
Look,
no
we're
not
going
to
accept
that.
B
But
like
say,
if
we
do
that
up
front
work
and
we
get
sign
off
from
the
team,
then
I'm
happy
to
say
like
if
you
go
back
to
our
release,
notes
and
our
blog
posts.
A
big
number
of
the
contributions
that
goes
into
the
project
are
all
community
driven,
and
so
it's
it's
a
great
project
to
work
on.
From
that
perspective,
to
get
people
buying
into
the
project.
A
B
B
Absolutely
I
mean,
like
that's
a
it's
kind
of
it's
where
I
started
with
the
project
I
mean
I,
I
used
to
be
a
maintainer
of
the
saki
project,
which
is
a
powershell,
build
automation
tool,
and
then
I
was
watching
cake
as
it
was
evolving.
I
was
like
I
kind
of
liked
what
they're
doing
over
there.
So
I
started
looking
at
the
docks
making
some
suggestions
so
yeah.
It's
absolutely
a
great
way
to
get
started
with
the
project.
B
So
even
just
today
was
it
today
was
it
yesterday,
someone
and
getter
mentioned
that
there's
a
404
link
off
of
our
documentation.
It
goes
to
a
broken
link,
so
that's
kind
of
an
easy
entry
point
just
find
out
where
that
link
is
in
the
documentation.
B
A
I
think
just
in
general,
like
I
started
getting,
I
started
out
my
open
source
career.
Looking
in,
like
I
rang
docsfor.net,
and
things
like
that,
I
think
docs
is
a
very
like
a
low-hanging
way
to
start.
You
know
contributing
to
some
of
the
things
that
you've
been
using
and
you're
very
familiar
with.
You
know
some
some
of
us
aren't
brilliant
enough
to
write
that
you
know
a
great
orchestration
tool
for
built
for
building.net
applications,
but
we
all
can
write
docs
right,
so
yeah.
B
And
the
other
side
of
that
as
well,
is
as
the
creators
of
the
tool
we
don't
always
imagine
how
the
tool
can
be
used.
So
we've
seen
some
great
ideas
about
how
we
can
use
what
it
can
be
done.
So
we've
we've
had
examples
where
we've
brought
some
of
those
back
in
as
kind
of
guest
blog
posts
into
the
website.
B
So
if
you've
got
anything
like
that,
where
you've
used
cake-
and
you
you've
done
something
special
with
it,
I
would
definitely
welcome
that
as
a
contribution
either
directly
into
the
docs
or,
like
I
say,
as
a
guest
blog
post,
so
that
we
can,
let
folks
know
about
it.
So
that's
another
way
of
doing
it.
Yeah
that's.
A
B
If,
if
like
just
a
general
call,
I
mean
dotnet,
open
source
is
a
great
thing
to
be
involved
in
I've
done
it.
B
I'm
happy
to
say
it's
kind
of
my
full-time
job.
Now
I
get
to
do
this
for
fun
as
well
as
paying
the
mortgage,
so
it's
definitely.
A
A
good
place
to
get
started,
and
I
would
encourage
anyone
to
do
it
awesome.
Well.
Thank
you
again.
There
on
this
project,
spotlight
page
there's
gonna,
be
a
ton
of
links
to
just
everything
you
need
to
know
about
cake,
as
well
as
links
to
some
ways
that
you
can
contribute.
So
gary
thanks.