►
From YouTube: Project Template Creation
Description
In this video, Jason Lenny, a Senior Product Manager at GitLab, explains how to create a project template based on his recent work and outlines some improvements we are doing to streamline this process and provide better documentation.
B
A
B
So,
and
just
to
mention
I
was
gonna
mention
to
you
in
any
case
that
I
recorded
a
video
recently
where
I
added
a
melis
I
started,
adding
a
template
for
Django,
where
I
go
into
a
little
bit
more
detail
of
the
thought
process.
But
here
we
can
do
a
high-level
overview.
This
should
be
a
little
quicker
that
other
recording
ended
up
being
about
40
minutes
long.
So
but
yeah
I
thought.
B
Maybe
it
would
be
easier,
at
least
to
start
with
the
go
micro
template
that
I
added,
because
there's
only
one
template
in
there,
the
one
that
I
added
for
net
liffe
I
had
five
templates.
So
it's
a
little
bit
more
complicated,
but
it's
essentially
the
exact
same
thing.
Let's
start
with
the
boilerplate
that
needs
to
come
in
and
and
then
we'll
come
back
to
how
I
made
the
project
itself
sound.
Good
yeah
sounds
great,
alright,
so
there's
a
bit
of
boilerplate
that
needs
to
come
in
there's
three
main
files
that
need
to
be
edited.
B
There's
this
project
underscore
new
UJS
file,
which
contains
something
that's
loaded
at
runtime
as
best
I
understand
and
just
shows
the
text
and
links
to
the
icon.
If
I'm
completely
honest
with
you
I'm,
not
a
hundred
percent
sure
this
is
used,
I
think
it
might
just
be
code,
that's
out
there
that
is
not
referenced
anywhere,
but
I
didn't
really
mess
with
it.
B
This
is
the
way
the
other
ones
are
implemented,
so
I've
duplicated
that
there's
a
change
log
file
that
comes
in
that
just
gets
created
as
normal
as
a
normal
part
of
any
development
here
at
gate
lab,
and
we
have
a
script
in
the
repo
called
bin,
slash
change
log
that
generates
this
for
you,
but
it's
just
used
for
generating
the
change
log
at
runtime.
It's
the
gillum's
is
a
good
thing
not
related
to
the
templates
at
all
gotcha.
B
Then
there's
this
project
underscore
template,
dot,
RB
and
then
a
spec
file
that
goes
with
it,
and
what
this
has
is.
This
is
where
you
create
the
new
template.
So
it's
the
name
of
the
template
here,
how
you
want
it
to
be
displayed,
a
localizable
string
that
contains
the
description
of
what
it
is.
That's
what
this
little
underscore
here
refers
to.
B
It
makes
the
localizable.strings
in
Ruby
great
and
then
a
link
to
the
project
and
then
basically
down
here
there
is
a
spec
that
just
does
it
just
make
sure
that
the
exact
same
thing
is
that
good
back?
It's
not
the
most
brilliant
test
in
the
world,
but
but
that's
what
it
does
there's
another
thing
that
you
have
to
do
as
well.
B
So
once
you
add
a
localizable
string,
there's
a
rake
task
called
get
text
call
and
generate
which
will
go
through
a
bunch
of
files
and
then
update
this
gitlab
Quixote
file,
which
is
I,
guess
kind
of
what
all
the
localization
is
based
off
of.
So
it
just
is
all
it's
doing
is
taking
that
string,
but
you
have
to
run
that
script
in
order
to
do
it,
and
then
the
big
piece,
I
suppose,
is
the
the
actual
tar.gz
file.
B
So
you
might
expect
that
the
way
that
this
works
is
actually
that
it
just
goes
out
to
the
repo
and
Forks
it
or
clones
it
or
whatever
removes
the
fork
relationship,
but
actually
the
the
template
is
vendored
and
included
in
the
repo
itself.
So
the
way
you
do
that
is
by
exporting,
which
I'll
show
you
in
a
minute.
B
If
you
just
make
something
new
and
then
vendor
it,
it's
not
such
a
big
deal
because
they'll
just
have
your
commits
and
like
a
couple
of
commits
and
your
a
couple
of
pipeline
runs.
But
some
of
these
have
been
worked
on
for
a
long
time
and
they
may
have
hundreds
of
issues
and
that
are
about
actually
improving
the
the
template.
So
people
don't
want
that
in
there
in
there
yeah.
B
Exactly-
and
this
is
what
you
do
after
you
export
your
project
once
it's
in
the
state
that
you
want
it
to
be
in,
and
so
my
I've
done
this
slightly
backwards,
but
this
is
like
kind
of
the
last
step
right
make
sense.
Basically,
everything
that
I
just
took
you
through
is
also
documented
here,
so
adding
the
boilerplate
to
these
files,
adding
that
exported
project
writing
the
rake
task.
That
I
was
mentioning
running
the
changelog.
All
that
stuff
is
actually
documented
here.
B
There
is
one
other
interesting
piece
if
you
want
to
add
a
logo
by
default,
you
get
the
gitlab
logo,
I
have
a
little
orange
tanuki.
If
you
want
to
add
a
new
logo,
you
have
to
add
it
to
the
illustrations
folder
here
in
the
gitlab
SVG's
project,
which
then
has
to
get.
You
have
to
get
your
change
merged
into
here,
and
then
this
project
has
to
get
forwarded
back
into
the
main
gitlab
seee
project.
So
it's
a
bit
of
a
journey,
but
any
front-end
developer
can
help
with
it
yeah
and
that's
it.
B
B
But
the
only
other
thing
that
you
need
to
do
is
actually
make
a
project
template,
and
this
is
the
part
where
the
actual
knowledge
of
whatever
framework
or
whatever
you're
building
comes
into
play,
which
is
arguably
the
harder
part,
and
so
this
is
the
one
that
I
built
for
go
micro,
and
we
can
all
talk.
I'll
talk
to
you
about
the
night
left
eye
ones
as
well,
and
how
I
did
those
sure,
but
this
go
micro-
is
a
go
language,
micro
services
framework
and
for
frameworks.
What
you
want
to
do.
B
Typically,
a
lot
of
them
have
a
command
like
dotnet,
has
dotnet
new
and
go
micro,
has
micro
new,
which
generates
kind
of
all
of
the
boilerplate
and
structure
that's
needed
for
a
project
that
uses
that
framework.
So
this
is
the
output
of
that.
It's
very
simple.
It's
got
the
main
go
here,
which
you
run
to
run
your
micro
service,
I
added
a
readme
which
contains
you,
know
everything
you
need
to
know
about
how
to
get
it,
how
to
kind
of
get
it
working.
B
B
So
you
have
to
customize
it
based
on
the
project
that
you
just
created,
and
maybe
there's
a
better
clever
way
to
do
that,
but
I
didn't
quite
find
it
and
then
the
other
most
important
thing
that
you
have
to
do
is
if
it
doesn't
already
work
with
Auto
DevOps.
You
have
to
create
a
git
lab,
see
I
am
that
gets,
builds
and
deploys
working,
probably
more
likely
to
work
on
builds
than
deploys,
because
one
thing
with
templates
now
is
that
we
don't
really
have
a
guarantee
that
infrastructure
is
set
up.
B
I
have
an
issue
open
that
improves
templates
by
letting
a
template
ask
questions
while
it's
being
set
up
for
the
first
time,
and
then
you
can
act
on
those
and
then
also
introduces
the
idea
of
a
first
time
job
that
runs
only
once
when
the
template
is
created
for
the
first
time.
That
would
let
you
have
like
a
little
bit
more
control
on
doing
these
things
for
most
languages
and
like
what
I
use
for
this
one
is
I
just
used
a
to
go,
get
lab,
see.
I
am
all
template
which
drive.
A
B
In
here,
so
the
way
that
this
framework
works,
I
had
to
add
a
photo
c-command
put
a
protocol,
buffers
compiler,
which
is
just
part
of
the
way
that
the
framework
works
and
then
I
think
I.
Just
changed
like
you
know,
one
or
two
small
things
in
here:
dotnet
core
required
a
little
bit
more
customization.
It
is
a
dotnet
core.
Is
the
multi-platform
version
of.net,
but
it
still
required
a
little
bit
more.
B
B
In
order
to
make
them
work
with,
notify
is
I
removed
that
get
lab
CI
mo
because
it's
gonna
use
theirs
instead
and
then
often
I
think
from
almost
all
of
these
I
had
to
make
one
or
two
little
changes
to
the
config
dot
yeah
mol
to
make
it
match
exactly
what
metla
phi
expects.
In
terms
of
where
you
place
everything
just
so
that
users
who
want
to
use
this,
don't
have
to
then
kind
of
repeat
that
step.
Every
time
and
yeah
I
added.
This
read
mean
which
added?
A
B
So
so
this
wasn't
too
bad.
This
was
easier
even
easier
than
some
of
the
framework
ones,
but
once
you've
done
this
and
you've
got
this
thing
in
your
working
state.
What
you
do
is
you
go
into
settings,
export
project,
click
on
export
here
and
it
will
mail
you
a
link-
or
you
can
refresh
the
page
after
a
moment
and
that's
the
file
that
feeds
into
the
that's
an
input
to
this
script,
which
then
outputs
a
different
target.
Gz
file,
yep.
B
And
it's
removed
all
of
the
LFS
files,
it's
removed
all
of
the
extra
junk
and
everything
there
is
a
plan
to
to
document
this
actually
on
the
website.
I
think
this
is
actually
the
issue
that
will
result
in
that
being
documented
and
then
a
plan
even
beyond
that
which
I
think
is
really
important
to
actually
just
automate
this
and
every
time
we
do
a
release.
B
B
Sure
there's
a
question
there
about
how
we
want
to
handle
community
contributed
templates
because
just
going
and
grabbing
source
code
that
somebody
else
wrote
and
then
packaging
it
and
putting
it
inside
of
gitlab
without
any
oversight,
is
probably
something
that
we
want
to
think
a
little
bit
harder
about,
but
at
least
for
the
get
lab
delivered,
get
lab,
developed
ones.
It
would
just
be
so
much
nicer
to
just
add
that
boilerplate
and
then
know
that
the
build
process
will
pick
it
up
right.
A
B
B
Hopefully,
all
of
these
will
be
in
for
11.9
will
also
have
all
five
of
these
static
site
generators
also
pre-configured
to
work
with
net
liffe
I
will
have
go,
micro
will
have
dotnet
core
and
then
all
of
those
ones
are
done
and
will
be
there
for
sure
and
we're
working
on
Android
and
iOS
Android
has
done.
Ios
is
being
wrapped
up
and
I
hope
that
all
of
those
all
of
those
will
be
in
here
by
the
time
the
next
release
you.
A
Know
it
would
be
interesting
to
create
a
framework
where
the
community
could
bundle
up
their
own
project
templates
and
and
they're,
not
necessarily
bundled
into
the
application.
So
we
have,
we
have
little
risk,
but
there
could
be
a
tap
here.
That
says
you
know
community
project
templates,
and
this
is
how
a
lot
of
other
source
providers
do.
These
types
of
templates
right,
there's
a
officially
supported
templates
and
then
there's
the
long
list
of
community
provided
templates.
So
it
would
be
an
interesting
thought
and
it.
A
A
A
B
A
Confused
be
confusing,
absolutely
okay
cool!
Well
thanks!
So
much
for
that
Jason
for
what
that's
and
for
creating
those
templates
in
your
you
know,
very
copious
amounts
of
spare
time,
I'm
sure
that
you
have-
and
this
has
been
really
helpful,
I'm
gonna
stop
recording
now
so
that
we
can
get
this
over
to
Deb.
After
just.