►
From YouTube: 2020.05.20 - Brown Bag: Cookiecutter Templates
Description
No description was provided for this meeting.
If this is YOUR meeting, an easy way to fix this is to add a description to your video, wherever mtngs.io found it (probably YouTube).
A
All
right:
well,
this
is
brown
bag
session
about
cookie
cutter
templates
and
why?
I
think
they're
awesome
and
we'll
talk
about
two
templates
that
I
made
one
for
ruby
and
one
for
go,
and
let
me
share
my
slides
and
screen.
A
A
This
is
embarrassing
view
present
there
we
go
yes
all
right.
I
did
not
use
my
command
line.
One
I
wanted
to
include
images
and
yeah
do
not
have
an
easy
way
to
do
that.
Yet
all
right,
so
cookie,
cutter
templates,
cookie
cutter
templates
are
about
project
creation.
So,
if
you
think
about
it,
there's
a
lot
of
decisions
that
go
into
creating
a
project
if
you're
making
it
from
scratch.
A
Yes,
I'm
going
to
do
it
this
way,
so
you're
still
making
the
decision
every
single
time
you
create
the
project
and
that's
just
for
one
person
creating
it.
If
we've
got
10
people
creating
the
same
type
of
project
they're
going
to
do
it
10
different
ways,
and
this
this
is
where
policies
and
everything
come
in,
but
project
templates
give
us
a
way
to
codify
those
policies
and
best
practices
into
default
setups.
A
So
that
way,
if
anybody
needs
a
new
project
that
looks
like
x,
they
can
just
create
one
from
the
template
that
has
all
of
our
best
practices
and
everything
that
the
team
had
decided
is
the
way
we
want
to
do
it
baked
into
it.
So
we
don't
have
to
make
those
decisions,
and
you
get
a
project
that
works
with
ci
has
unit
test.
Has
everything
we
need
out
of
the
box?
A
One
of
the
other
benefits
is
centralized
location
for
policies.
That's
it's
a
little
different
than
just
having
a
project
template.
You
can
have
your
created
or
generated
project
reference
policies
inside
the
template
project
and
with
gitlabci.yaml.
You
can
easily
do
that
so
say.
For
example,
we
want
to
change
the
line
length
on
rubocop
right
then
we
can
change
it
in
one
spot
and
all
ruby
what
projects
would
be
updated
with
that
new
setting.
A
So
there's
pros
and
cons
to
it
to
me.
It's
mostly
pros,
though
again
this
should
be
make
the
default
setup
work
out
of
the
box
as
simply
as
possible.
A
A
A
For
brevity's
sake,
I
cloned
the
template
projects
into
this
templates
directory.
You
can
use
cookie
cutter
directly
on
git
url,
so
get
at
getlab.com
colon,
the
project
path,
and
so
this
is
part
of
cookie
cutter
where
it
prompts
you
for
the
different
values
to
configure
the
project,
and
this
is
total
totally
configurable
by
the
creator
of
the
project
template
yeah.
A
So,
generally
speaking,
cookie
cutters,
cookie
cutter
templates
or
projects
have
the
layout
below
or
in
this
image,
so
example
template.
That's
just
the
main
folder
for
the
project,
everything
within
cookiecutter.project
name,
that
is
what
becomes
the
generated
project
and
cookiecutter.json,
is
where
you
define
the
fields
that
you
need
set
by
the
user.
A
Yeah
cookiecutter.json
defines
the
template
parameters.
You
can
turn
off,
prompting
the
user,
if
you
say
no
input
and
that
just
uses
the
default
values
and
you
can
reference
cookie
cutter
template
parameters
anywhere
throughout
the
generated
project
in
file
names
and
file.
Contents
using
normal
template
syntax
should
look
pretty
familiar.
A
It
also
allows
for
some
advanced
usage.
The
templates
I
made
didn't
need
to
have
this
advanced
usage.
If
I
was
going
to
have
a
namespace
python
library-
and
I
wanted
to
have
one
template
that
was
optionally,
namespaced
or
just
a
normal
python
module
or
package,
then
I
could
use
a
post
creation
hook
to
change
things
around,
depending
on
the
options
that
the
user
set.
A
I've
actually
never
used
the
pre
one,
but
there
are
pre
hooks
as
well
right.
So
if
we
are
going
to
be
maintaining
project
templates,
we
should
also
have
tests
that
the
templates
work-
and
this
is
a
very
interesting
thing
to
me-
it
I've
done
this
a
different
way
before,
but
part
of
the
project.
Template
itself
is
the
gitlabci.yaml.
A
A
So
since
we
all
work
here
at
gitlab,
I
figured
everyone
would
want
to
know
or
would
be
interested
in
this.
The
way
this
works
is
the
template.
Project
itself
is
put
up
into
two
main
stages.
The
first
stage
generates
the
project
using
cookie
cutter
and
it
spits
it
out
into
a
directory
or
it
names
a
project
test
project,
and
then
it
overrides
the
gitlab
ci
diamo
yaml
in
the
test
project
with
the
yaml
that
it
includes
the
normal
yaml
inside
the
test
project.
A
It
simplifies
the
next
step
and
then
we
also
need
to
replace
a
variable
with
the
current
branch
name
and
the
generator
project
needs
to
be
set
as
an
artifact,
so
that
we
can
pull
it
down
later
and
then
it
starts
getting
a
bit
trickier.
So
this
is
the
next
stage
the
test
stage.
A
We
trigger
the
generated
yaml,
the
gitlab
ci,
dot
yaml
within
the
test
project,
and
we
tell
it.
Oh,
it
uses
the
test
project
gitlabci.yaml
from
the
cookie
cutter
gen
job,
which
was
the
previous
one,
and
we
set
a
few
variables
template
tests.
We
set
that
to
true
and
template
test
path
to
test
project
and
that
comes
into
play
on
the
next
step,
so
we
create
the
child
pipeline.
A
We
set
template
test
to
true
and
template
test
path
to
the
prod
or
location
location
of
the
generated
artifacts,
and
I
did
not
include
a
screenshot
of
that
here.
A
A
So
yeah
it's
a
couple
hoops
to
jump
through,
but
once
those
are
in
place,
then
it
all
works.
Oh
and
the
needs
feature
in
gitlab
ci
dot.
Yaml
is
how
we
pull
in
artifacts
from
a
different
pipeline.
B
Yeah,
I
was
just
wondering
because
I
think
it
was
in
the
previous
slide.
You
showed
the
execution
of
the
ruby
test,
so
this
was
for
like
a
ruby
template,
I
suppose
right.
Yes,.
B
A
Or
a
little
bit,
not
too
much
here
I
can
show
here
I'm
going
to
finish
explaining
this
part
and
then
I'll
show
the
ruby
and
go
included
yaml
side
by
side
they're,
nearly
identical
minus
the
specific
linting
and
testing
steps
or
jobs
all
right.
So
now
that
we've
got
the
generated
project
artifact
pulled
into
the
child
pipeline,
then
we
can
run
the
test
like
normal
on
the
generated
code,
so
we're
doing
a
full
test
of
the
generated
project,
including
is
its
gitlab
ci.aml,
which
I
thought
was
pretty
crazy.
A
Now
the
needs
field
doesn't
work
correctly
on
non-default
branches.
So
if
you
make
a
merge
request
on
the
project,
template
project
itself,
so
say
the
ruby
template.
I
want
to
make
a
few
changes.
I've
got
a
merge
request.
It
runs
the
pipeline
for
some
reason.
The
needs
field
doesn't
pull
in
artifacts
correctly.
A
If
it's
not
the
default
branch
and
I
need
to-
I
haven't-
opened
the
issue
yet,
but
I
need
to
open
an
issue
on
gitlab
itself.
I'm
pretty
sure
it's
supposed
to
work.
There
is
actually
an
example
in
the
documentation,
which
is
this
one.
It's
nearly
identical
to
what
we're
doing
yeah
and
so
anyways.
It
doesn't
work
and
we
need
it
to
work.
A
Nice
full
screen
again
all
right-
and
this
is
the
resulting
pipeline.
Here
we
generate
the
new
project
and
then
we
trigger
a
new
pipeline
from
the
generated
generated
ci
diameter,
and
this
is
the
triggered
pipeline
oops
and
you
can
tell-
or
you
can
see
here.
It
also
includes
our
sas
ci
template,
as
well
as
the
rsvc
and
rubocop
templates
that
are
part
of
the
template
itself.
A
And
I've
created
ruby
and
go
templates
and
they
each
have
unit
tests
centralized
base
ammo
and
they
conform.
With
the
get
lab
repository
section
of
the
handbook
minus
the
project,
specific
setup
that
you
have
to
do
on
the
get
lab
settings,
I
don't
think
you
can
expose
that
or
control
that,
through
files
within
the
repository.
A
But
yeah
that
is
about
it.
I
was
going
to
show
a
live
demo,
but
before
we
do
that,
since
it's
just
julian
I'm
going
to
so
on
the
left,
this
is
the
oops.
I
don't
want
to
split
in
two
months.
A
This
is
the
ruby
base
yaml.
All
this
here
is
from
the
engineering
repository's
default.
Workflow
from
the
handbook,
and
everything
down
to
here
is
nearly
identical
in
the
go
project
so
go.
Ci
includes
placing.
A
B
Oh
yeah,
that's
that's
pretty
pretty
neat
and
the
the
actual
templates
do
you
also
have
a
short
sample
yeah
just
interesting
to
see.
A
Yeah
and
like
I
was
saying
before
it's
the
way
I
think
about
it
is
that
this
should
work
for
your
default
project
or
what
might
be
the
most
common
type
of
project.
You
can
always
customize
it
add
new
jobs
and
everything,
but
for
basic
testing
minting,
including
sass.
A
It
does
all
that
out
of
the
box,
so
yeah,
that's
about
it.
Oh
and
here's
a
live
demo
so
cookie
cutter,
I
mentioned
you-
have
to
pip
install
a
cookie
cutter.
Python
also
has
a
really
cool
utility.
Pip
x,
you
have
to
pip
and
solve
pip
x,
but
pip
x
exposes
cli
applications
via
their
own
virtual
environment.
A
So
if
you
do
pip
install
pip
x,
probably
sudo
pip
solve
pip
x
will
install
it
on
your
system,
and
then
you
can
say
pip
x,
install
cookie
cutter
and
then
I've
already
installed
it.
But
every
time
I
run
cookie
cutter,
it
uses
cookie,
cutter's
own
specific
virtual
environment
without
me
having
to
activate
it
or
anything.
So
that's
my
favorite
way
to
use
python
cli
applications
all
right,
so
cookie
cutter
kit
at
gitlab.com.
A
It
ruby
project
and
that's
default
default
code
owner
is
me
that
updates
the
code
owner's
file.
This
goes
into
the
default
issues
template.
So
I'm
also
I'm
going
to
change
that
to
devops,
secure
group,
vulnerability,
research
and
yeah
that'll
be
good,
and
then
I
can
choose
what
type
of
license
to
use
as
well.
So
I'm
going
to
say
gitlab
ee
and
there
we
go
and
it
creates
it
at
whatever
the
new
project.
Name
is.
A
A
That's
the
directory
directory.
We
have
so
I
should
be
able
to
say,
bundler
install,
but
I've
already
installed
all
the
dependencies
globally
and
rspec
back
yay
it's
working
and
then.
A
No
ruble
cop
errors,
nothing
and
yeah.
It's
a
super
basic
library
project
in
ruby.
It
doesn't
do
anything.
It
just
adds
two
numbers,
but
you
know
sets
up
some
tests
and,
oh
also,
I
always
have
to
look
up
how
to
do
this.
So
I
included
this
in
here
parameterized
test.
This
is
with
r
spec
parameterized
yeah.
Now
there's
an
example
in
there
and
you
can
use
it
out
of
the
box
but
yeah.
B
Yeah
yeah
yeah,
that's
that's
really
cool.
I
I
think
that
you
know
can.
Can
we
relieve
developers
of
the
burden
of
configuring
things?
You
only
only
have
to
run
the
command
line
tool
to
set
everything
up,
for
example,
enabling
the
security
dashboard
like
features
like
dependency
scanning,
for
example.
B
I'm
I'm
wondering
I
never
used
cookie
cutter,
but
is
it
also
possible
to
apply
changes
on
a
given
project?
Let's
say
you
would
like
to
change
the
license
or
you
would
like
to
change
the
name
of
the
project
to
apply
change,
and
then
this
change
gets
applied
like
throughout
the
whole
project.
Is
this
possible
with
cookie
cutter
too,
or
is
it
usually
just
to
get
things
started
initially
to
get
the
like
directory
structure
and
everything
set
up
and
then
not
really
to
change
it
more
to
set
everything
up.
A
Yeah,
it's
mostly
just
for
setup,
it's
yeah,
it's
mostly
just
for
setup.
I
haven't
seen
any
project
templating
tools
that
allow
you
to
update
it.
Based
on
the
changes
in
the
template.
I
could
see
some
things
being
possible
with
it.
I
guess,
but
I
bet
you
could
do
some
interesting
things
with
git
history.
If
you
record
the
initial
commit
after
you
created
the
project,
then
you
could
track
the
changes
of
both
projects
and
then
kind
of
apply
them
on
top
of
each
other.
A
It
wouldn't
always
you'd
have
to
you
might
have
to
be
able
to
say,
ignore
these
whole
sections
right,
ignore
the
actual
source
code
only
operate
on
these
files
or
something
yeah.
It's
like
the
license,
for
example,
that
would
be
an
interesting
one.
B
A
A
Instead
of
taking
like
three
four
days
to
get
a
project
up
and
running,
you
know
it
was
only
on
the
scale
of
like
20
minutes,
because
you'd
have
to
still
create
the
project
in
git,
lab
initialize
it
with
cookie
cutter
and
then
go
and
update
all
the
settings
inside
the
project
I
had
so
we
made
a
tool,
I
kind
of
really
missed
the
tool.
We
made
a
tool
that
automated
gitlab
using
its
api
and
then
it
hide
it
was
written
in
python
and
you
could
use
cookie
cutter
directly.
A
So
you
created
the
repository
directly
in
gitlab
cloned
the
empty
repository
created,
a
cookie
cutter
template
directly
on
top
of
it
pushed
it
all
up,
and
then
we
also
had
configuration
yaml
files
for
all
the
different
project
settings
that
you
could
set,
and
so
we
could
say:
okay,
like
project
creator,
create
new
project
using
the
default
project
settings
and
then
it
would
go
in
and
you
know,
turn
on
merged
trains
only
merge
when
all
threads
are
resolved.
A
This
is
the
default
branch.
Add
these
badges
to
the
project
yeah
and
then
those
settings
were
stored
separately
in
a
publicly
accessible
project
on
our
gitlab
instance
and
then
so,
when
you
run
the
tool
it
pulls
down
the
latest
settings
and
then
uses
those
to
create
the
project
and
yeah.
Then
everything
was
all
templatized
and
yeah.
Then
we
had
absolutely
complete
100
percent
projects
up
and
running
in,
like
30
seconds.
It
was
amazing
yeah.
B
That
was
really
really
cool.
I
I'm
just
running
because
isak
he's
been
working
with
open
api,
at
least
for
the
vulnerable
app
generation.
What
is
the,
what
do
you
say
are
the
differences
between
open
api
and,
most
probably
cookie
cutters
more
low
level.
I
suppose
right
so
that
you
more
like
on
that.
You
can
manipulate
or
create
great,
like
your
project
based
on
text,
file,
templates
and
open
the
api,
maybe
more
high
level,
but
I
don't
know
I
just
guess.
A
Yeah
so
open
api
is
open.
Api
defines
this
a
json
schema,
basically
for
defining
api
endpoints
and
then
the
open
api
generator.
I
think
it's
still
called
swagger
code
gen.
It
generates
project
structures
based
on
the
defined
endpoints,
so
it's
kind
of
it
still
creates
projects,
but
it
has
a
different
goal:
it's
not
so
much
to
take
user
input,
it's
just
to
create
a
project
that
has
the
defined
endpoints.
B
Oh,
it
makes
sense
now
yeah
yeah
yeah,
so
for
for
our
use
case.
Yeah
that
makes
sense
so
cookie
cutter
is
much
more
yeah
fits
much
more
into
our
use
case
than
I
think.
Yeah
that's
cool
and
for
like
host
is
called
like
variation
management,
or
do
they
call
it?
If
you
let's
say
you
would
like
to
use
a
different
testing
library
or
something
like
that,
it
it's
most
probably
just
a
condition
that
you
have
to
add
inside
the
template.
Try
to
check
for
that
and
then
you
can.
A
Exactly
yep,
that's
exactly
it
and
I
I
think
you
can
use
conditional
so
I'm
using
conditionals
right
now
on
the
license
file.
So
if
you
here,
I
think
we
are
in
the
yeah,
the
ruby
one
files
cookie
cutter,
so
here's
a
cookiecutter.json,
if
you
remember,
I
was
prompted
for
a
court
to
choose
from
one
of
the
options
mit
or
git
lab
ee,
and
so,
if
we
look
in
the
license
file
inside
the
project,
here's
some
templating
conditionals.
So
if
cookiecutter.license
is
mit,
do
this
one?
Otherwise
do
that
one?
A
B
Yeah,
that's
cool.
I
like
it
very
much
it's.
It
also
fits
kind
of
into
the
discussion
that
that
we,
I
think,
like
two
or
three
weeks
ago,
I
read
the
discussion
about
the
having
a
common
like
approach
for
having
a
change
vlog
and
you
know,
and
to
like
treat
our
gitlab
projects
in
a
common
way
and
using
this
approach,
I
think,
sounds
very
clean
to
me
that
we
have
like
common
sort
of
templates
and
everybody's,
using
them
at
least
for
the
secure
stage.
That
would
be
great.
A
Yeah
paul
and
to
me
it's
only
when,
when
even
if
nobody
wants
to
use
it,
because
I
made
it
for
me-
I'm
tired
of
setting
up
projects
and
making
it
be
in
line
with
our
you
know,
engineering
guidelines
and
going
through
and
checking
all
the
boxes
and
okay,
add
the
r
specs
copy
and
spec
helper
or
like
run
our
spec
in
it,
and
oh,
don't
forget
simple
curve
and
all
these
other
things
yeah.
So
now
I'm
going
to
be
using
it
very
heavily
and
if
other
people
use
it
too,
then
awesome
yeah.
A
If
it
I'm
hoping
other
people
will
like
it,
though,
and
then
I
would
want
to
move
it
out
of
vulnerability
research
and
put
it
a
little
more
high
level,
maybe
just
within
secure
or
something
it'd,
be
awesome
if
it
was
gitlab.org
templates,
but
that
and
actually
that
is
kind
of
a
an
interesting
point.
Gitlab
does
have
templates.
A
So
if
I
go
into
gitlab
and
say
I
make
a
new
project
create
from
template,
it
doesn't
there's
not
a
lot
of
okay,
I'm
saying:
there's
not
a
lot
of
options,
but
there's
kind
of
not
a
lot
of
options.
Even
though
there's
a
big
list
like
there's
no
python
there's
no.
A
This
is
only
for
go
microservices
like
that's
extremely
specific,
but
all
this
does
is
just
copy.
The
it
initializes
your
repository
with
the
template
project
and
it
doesn't
give
you
a
chance
to
configure
it
or
anything.
So
you
still
have
to
go
in.
Add
your
author
everywhere.
Add
the
license.
Add
you
know,
set
it
up
how
you
want
there's
still
a
large
amount
of
configuration
like
tests.
B
Yeah
yeah
yeah,
having
like
the
possibility
to
like
pick
a
high
level
project
and
then
to
configure
it
more
specifically,
this
seems
to
be.
They
are
very
much
nicer,
I
think,
than
than
just
like
having
a
static
project
where
just
files
are
generated
or
the
like
the
directory
structure
and
tested.
Also,
I'm
I'm
wondering
if,
because
you
have
like
this
command
line
tool
that
allows
you
to
pick
different
options,
I
think
that
fits
much
more
into
into
the
typical
development.
Workflow
too.
B
I
suppose,
but
I
mean
it's
nice
if
you
can
go
to
the
ui
and
select
a
template,
but
for
me
I
think
I
would
prefer,
because
at
the
beginning,
especially,
there
is
also
like
maybe
trial
error,
so
you
have
setting
up
a
new
git
project
and
you
want
to
to
to
select
a
certain
configuration
and
then
you
realize,
oh
no,
maybe
a
different
configuration
is
better
and
and
you
roll
back
and
then
so
yeah
having
the
command
line
tool
is
super
cool.
I
think.
A
It's
being
able
to
so
there's
another
aspect
of
this
too
is
deployment
the
we
don't
really
do
too
much
of
that
internally
at
gitlab,
but
at
previous
companies.
I
have
done
that
like
very
heavily
where
we
have
our
internal
docker
registry
and
pi
pi
registry,
and
then
all
of
the
deployment
was
baked
into
the
template
as
well,
and
then
what
that
did
was
it
like,
literally
within
a
minute,
you
could
have
a
fully
already
published
project
fully
deployed
without
having
to
do
any
setup.
A
Besides
just
run
a
cli
app,
and
once
we
had
that
it
was
it,
we
found
it
made
concepts
like
inner
source,
more
accessible,
because
then
it
it
lowered
the
bar
dramatically
for
the
effort
it
took
to
make
something
available
to
somebody
else.
So
we
started
pulling
libraries
common
libraries
out
of
projects
where
code
was
duplicated.
Like
a
common
blogging
library,
we
would
say:
okay
well,
let's
just
it
only
takes
like
30
seconds
to
spin
up
a
new
project.
That's
fully
deployed
and
importable
by
other
projects,
so
just
make
a
new
login
one
shove.
A
All
the
logging
code
in
there
update
some
tests
and
then
start
using
it
within
like
10
minutes
or
something
so
refactoring
across
multiple
projects
became
very
easy
and
yeah
anyways.
I
I
probably
talked
about
it
too
much,
I'm
a
huge
fan
of
templates
and
automating,
there's
so
much
tedium
in
setting
up
projects
and
getting
them
to
where
you
want
them
to
be,
and
it
doesn't
have
to
be
that
way.
A
B
For
if
you
have
a
mono
repo,
let's
say
where
you
have,
let's
say
different
different
languages
together
in
one
repository,
this
would
be
a
different
template.
I
suppose,
or
can
you
also
like,
put
them
or
combine
them
in
different
ways?
Yeah.
A
So
you
could
combine
them
if
you
want.
So
let's
say
you
have
a
mono
repo
and
it's
got
like
a
whole
sub
directory
full
of
ruby
code
and
another
one
full
of
like
go
and
then
python.
So
cookie
cutter
doesn't
care
about
git.
All
it
does
is
create
the
directories,
and
so
you
can
set
up
to
be.
However,
you
want
yeah
and
I
think
I
think,
there's
options
to
say:
don't
where
you
can
insert
it
into
a
directory
or
it's
like.
A
A
Yeah,
you
might
be
able
to
do
it,
I'm
not
sure
though,
but
yeah
it's
oh
that's
right
and
I
think
once
you
have
used
the
oh,
my
screen
got
really
dark
there.
We
go
what
there
once
you
have
cloned
a
template
once
through
cookie
cutter,
you
don't
have
to
use
the
full
path.
I
believe,
if
I
go
back
here,
cookie
cutter,
ruby,
yep
yeah,
because.
A
B
Yeah
yep,
that's
really
cool,
and
the
is
is
there
still
like
is
the
repository
the
templates
top
level
repository
available
under
gitlab
for
gitlab,
or
is
it
already
taken.
A
Like
gitlab.com
templates,
yeah
yeah,
oh
my
gosh,
I
have
no
idea
we'll
see
it
is
taken.
B
B
Template
templating
a
template
would
be
the
nicest
name,
I
suppose,
because
I
mean
under
security
products,
that
would
be
still
too
specific
for
security,
so
this
is
like
a
would
be
very
general
useful
tool
or
oh.
A
There's
not
under
gitlab
org,
there's
not
templates,
but
that
I
don't
know
I
I
would
be
very
hesitant
to
make
it
put
it
at
that
level,
because
we
do
have
a
separate
templates
piece
of
the
gitlab
product.
You
know
it's
a
subdirectory
under
gitlab,
but
I
think
actually
I
don't
remember
where
it
is.
I
found
it
once
it's
in
there
somewhere.
A
A
B
A
So
it
would
be,
I
think,
it'd
be
awesome
to
go
through
and
try
and
make
a
merge
request
to
use
cookie
cutter
for
the
templating
and
expose
all
the
fields
to
the
user.
It's
like
okay,
choose
create
this
from
a
template,
but
it's
a
cookie
cutter
template
and
then
it
shows
you
all
the
fields
runs
cookie
cutter
to
generate
it
and
then
uses
it
on
your
project.
B
But
I
mean
these:
these
project
templates
they're
also,
I
guess
very
similar
to
the
first
ones
that
we
had
like
static
like
just
a
static
directory
structure
that
contains
some
some
files
to
get
an
initial
setup.
But
but
it's
not
parameterized,
I
suppose
right,
not
very
generic
yeah.
A
So
then,
if
you
say
create
a
new
project
from
a
template,
it
has
to
be
one
of
the
built-in
ones.
I
don't
think
you
can
do
it
from
which
makes
sense.
I
guess
because
the
current
way
we're
doing
templates.
They
are
just
copying
the
projects
they're
basic
they're,
almost
just
forks
right,
so
if
you
different
way
would
be
to
just
fork
a
project.
If
you
didn't
care
about
parameterizing
things
or
I
don't
know,
if
you
can
clone
one
anyways
yeah,
there's
not
a
way.
B
B
Yeah
yeah,
that's
true
that
would
be
right
to
like
have
a
collection
of
very
simple
git
repository
for
each
each
kind
of
configuration
you
could
think
about,
but
there
would
be
a
lot
of
git
repositories.
I
think
because
there's
like,
like
exponential
blow
up
of
combinations,
that
you
can
have
between
different
licenses,
testing
libraries
and
everything,
so
it's
much
better
if
you
can
use
them.
A
A
B
Yeah,
that's
really
cool.
I
I
like
this.
I
I
didn't
know
about
cookie
cutter.
I
I
I
used
ginger
in
the
past
for
but
only
for
templating,
but
I
really
like
this
tool,
so
it
seems
to
be
very,
very
powerful.
B
Yeah,
having
a
common
common
set
of
templates
is,
I
think,
something
that's
that's
really
useful
to
to
all
of
us.
If
we
like
have
some
some
repository,
where
we
store
the
common,
the
tablets
that
are
commonly
used
for
like
a
cross
secure,
especially
since
we
have
now
these
also
these
guidelines,
for
example,
ci
guidelines
that
yeah
that
are
very
specific
about
how
what
we
should.
Should
you,
what
what
features
we
should
use
in
our
ci
configuration
and
which
features
are
deprecated,
and
will
that
will
be
deprecated
soon.
A
That's
exactly
right,
man.
I
was
going
to
bring
that
up.
I'm
glad
you
did
recently.
We
had
to
change
all
of
every
get
rid
of
all
of
the
only
and
accept
yeah,
and
if
everything
was
using
or
most
projects
were
using
centralized.
A
You
know
yaml
that
you
could
include
from
a
template.
You
update
it
in
one
spot
and
that's
it.
We
so
one
another
example
that
at
a
different
job,
I
was
at
we,
the
engineering
team
for
a
while.
We
wanted
shorter
line
legs,
but
then,
as
a
group,
everyone
decided
like.
Actually
we
want
to
change
our
line.
Lengths
and
we'd
been
using
a
system
like
this,
and
all
we
had
to
do
was
change.
I
actually
did
it
live
in
the
in
the
meeting.
We
just
changed
it.
A
We
made
the
decision,
I
updated
the
yaml
for
the
linting,
it
was
php
and
yeah.
It
was
changed
immediately
right
there.
It
was
awesome.
B
Yeah
yeah,
that's
really
cool,
to
have
something
like
this.
Like
common
coding,
guidelines
can
be
modified
so
easily
with
this
approach,
yeah
and
also,
if
you
let's
say
you're
using
a
template,
that's
that's
stored
in
a
git
repository
get
repository
somewhere.
So
cookie
cutter
is
like
aware
of
the
current
version
that
you
are
using.
So
it
knows
that
there's
an
update
and
if
you're
referencing
a
like
a
template,
that's
remote.
B
Makes
sense
and
if
but
but
you
could
still,
let's
say
you,
you
writing
your
own
template,
you
could
you
reference
a
template,
that's
stored
in
the
git
repository
somewhere
and
maybe
inherit
from
it
or
extend
it
or
include
it
or
something
like
that.
A
Let's
see
so
you're
saying
if
I
make
a
template
and
then
that
template
references
another
cookie
cutter
template
if
it
was
a
sub
module,
maybe
I'm
checking
the
cookie
cutter,
so
I'm
not
sure
so
automatically
updating,
I
don't
know
that
would
actually
be
a
fantastic.
A
I
may
just
make
a
poll
request,
cookie
cutter,
so
on
here
the
cookie
cutter
help
there's
no
way
to
say
it
would
be
awesome
if
I
could
say
cookie,
cutter,
update,
ruby
or
use
the
latest
ruby
right
because
it
stores
it
does
a
full
clone
of
whatever
I
set
was
the
ruby
project,
cookie
cutters,
cd,
ruby
status,
yeah
there
we
go
good,
remote
yep,
so
it
would
be
awesome
if
you
could
tell
cookie
cutter
use
the
latest
one
and
do
a
get
poll
before
you
actually
use
it.
A
B
I
have
to
have
to
start
using
it.
I
guess
I
think
it's,
it's
really
cool
cool
too.
Thank
you
very
much
for
for
for
sharing
this,
and
also
for
setting
the
you
already
set
like
the
repository
up
for
ruby
and
for
and
for
go
right
so
and.
A
For
go
the
go
one
isn't
quite
it's
been,
I
don't
know,
maybe
a
good
eight
months
since
I've
done
something
serious
and
go
besides
just
really
small
things,
so
it
could
probably
be
improved
a
bit
with,
like
you
know,
better
and
testing
best
practices
or
something,
but
it
has
tests.
It
has
a
basic.
You
know:
math
module
that
adds
to
numbers
and
code
coverage.
I
pulled
a
few
things
from
the
analyzers
common
code
base
so
that
it
should
seem
roughly
familiar
to
everyone,
but.
B
Yeah
cool
yeah
therefore
go.
I
think
that
there
are
some
like
lending
rules,
but
most
most
probably
you
you
took
them
from
from
the
comments
library
right
that
the
generating
roots
understand
or.
B
I
I
think
they
they're
like
this
was
a
pretty
recent
change
and
during
the
last
couple
of
weeks
I
think
adam
adam
changed
something
for
the
quality
like
checks
on
on
on
the,
but
that
was
on
the
gymnasium
repository.
I
have
to
check.
A
This
is
all
I'm
doing
on
there,
so
I'm
not
sure
about
common
yeah.
Maybe
there's
some
config
file
that
I
forgot
to
grab,
oh,
which
I
actually
meant
to
bring
up
the
where
we
go.
A
So,
let's
say
what
I've
done
in
the
past,
so
you
you
could
curl
some
publicly
available
like
the
file
the
configuration
file
for
linting
and
drop
it
and
then
use
it.
I
don't
really
like
that
approach,
because
it
doesn't
work
too
well
with
private
repositories.
Then
you
have
to
set
up
a
token
or
hope.
Your
ci
token,
the
ci
job
token
is
able
to
fetch
it.
I
would
prefer
this
is
the
way
I
usually
do
it.
A
You
might
need
to
do.
I
forget
what
the
I
always
have
to
look
up
the
yaml
syntax
to
not
interpret
the
whole
next
block,
it's
something
like
that
and
then
this
gets
run
as
a
whole.
And
then
you
just
update
your
rules
right
here.
A
Yeah
I've
used
that
with
a
lot
of
success
in
the
past,
the
curl
one
works.
If
you
know
your
stuff
is
going
to
be
public,
but
yeah.
B
B
That
was
basically
basically
everything
that
I
have
on
my
mind
for
for
cookie
cutter,
it
was
really
cool.
So
I
like
this
tool
very
much.
B
Yeah
yeah-
and
you
know
when
usually
whenever,
when
you're
setting
up
something
a
new
project
and
you're
not
too
familiar
with
with
the
with
the
language
yet
or
the
framework
you're
using
it's,
it's
also
very,
very
handy
to
get
get
things
started
quickly,
so
usually
for
for
ruby.
For
example,
it's
just
just
getting
the
project
set
up
all
these
like
directories
and
and
and
test
in
test
infrastructure
that
you
need
at
the
beginning.
It's
it's
quite
handy.
B
For
java,
too,
I
always
get
crazy
setting
up
all
these
like
a
java
test
directories
and
bit
directory
structure
at
the
beginning,
and
if
you
already
have
something
like
that,
that
can
do
it
for
you,
it's
it's
just
great
yeah.
A
B
It's
simpler
for
go
it's
just.
You
know,
you
only
need
to
initially
go
main
file
and
you
you're
good
to
go,
but
for
for
java
and
for
ruby
and
it's
a
bit
more
involved
just
to
get
started
and
yeah
really.