►
From YouTube: Working Group: 2020-11-12
Description
* Stackpacks
A
A
B
C
Okay,
are
we
ready
good,
recording,
okay,
so
a
couple
things
I
went
through
on
this
section,
which
is
where
we
said
we
wanted
some
examples,
and
so
I
came
up
with
several
with
the
help
of
jesse
and
josh
and
some
other
folks
and
I
ran
into
one
that
I
think
illustrates
what
might
be
a
problem.
So
I
wanted
to
talk
about
that,
but
I'll
go
over
these
first,
oh
and
real
quick.
The
other
thing
that
I
updated
in
here
is
the
stack
platform
directory.
C
As
I
was
writing
that
up,
it
seemed
pretty
straightforward,
but
I'll
come
back
to
it,
just
in
case
okay.
So
for
these
examples
the
first
was
the
annie
mixon
build
pack
essentially
like
the
aft
build
pack,
this
one's
pretty
straightforward.
It
passes
if
one
of
a
mix-in
is
required
by
the
build
pack-
and
I
should
probably
say
not
provided
by
the
stack
or
a
mixing-
is
required
by
an
app
and
not
provided
by
the
stack,
and
then
it
will
be
skipped
if
there's
no
mix-ins
required.
C
Oh
and
I
say
that
down
here-
a
mix-in
required
by
buildpak,
but
the
stack
provides
it
same
thing
for
an
app
for
the
next
example
was
again,
this
is
kind
of
fictitious,
but
it's
a
postgres
stackpack
where
it
can
provide
limp
pq
and
also
like
a
custom
db
cert.
C
So
in
this
case
you
might
have
like
a
ruby
app
that
requires
the
lib
pq
mix-in
and
the
db
cert,
in
which
case
it
would
pass.
But
then
a
java
app
that
doesn't
need
libq
would
just
require
the
cert
and
it
would
still
pass,
but
it
wouldn't
install
the
lib
pq
package
mixin
and
then
oh
yeah.
This
is
just
an.
I
don't
know
why
it's
python,
but
it's
an
example
where
the
stack
already
provides
lib
pq
and
it's
required,
but
it
doesn't
get
installed.
C
It
would
not
pass
if
an
app
requires
the
pq
mix-in,
but
not
the
cert,
which
seems
okay,
it
would
just
skip
and
then
not
install
anything
and
then,
of
course,
neither
of
them
now.
Here's
where
it
gets
interesting
josh.
I
don't
know
if
he's
on
the
call,
but
he
had
a
good
idea
for
a
chrome.
Chrome
driver
stack
pack
where
it
would
install
both
google
chrome,
stable,
mix-in
and
then
chrome
driver
as
like
a
non-mixing
just
a
regular
dependency,
and
so
this
would
pass
if
the
app
requires
chrome
and
the
chrome
driver.
C
So
both
it
would
pass
if
it
only
requires
chrome
driver
and
it
would
pass
if
it
requires
chrome,
driver
and
and
chrome,
but
chrome
was
provided
by
the
stack
it'd
skip
when
it
requires
chrome,
but
not
the
chrome
driver,
and
then
it
would
skip
when
neither
are
required.
C
So
what's
interesting-
and
I
think
you
may
even
already
have
this
question
in
your
head-
is
this
case
right
here
because
there's
a
situation,
and
I
call
this
down
on
calls
out
on
line
204,
where
you
can't
have
at
least
I
don't
see
it
yet.
The
you
can't
have
the
chrome
driver
dependency
depend
on
the
mixin,
and
so
it
makes
it
very
possible
or
likely.
I
guess
that
you'd
end
up
in
this
state
where
detector
pass
the
build,
might
even
pass,
but
then
at
run
time,
you'd
be
missing.
C
Chrome,
because
you
didn't
include
it
in
your
mixins
and
that
feels
out
of
whack
to
me
because
depending
on
chrome
driver
should
imply
that
so
that's
the
one
that
I
wanted
to
talk
about.
B
Can
the
build
pack
so
the
that
the
mix-in
was
required
by
another?
Build
pack
does
not
preclude
the
chrome
driver
build
pack
from
installing
the
mixer
right
that
makes.
C
B
It's
something
required
just
to
repeat
the
case,
so
there's
a
non-mixin
chrome
driver
and
a
mix
in
google
chrome,
stable,
that's
required
by
chrome
driver
and
you
want
to
make
sure
that
anytime
chrome
driver
gets
installed.
Google
chrome
stable
is
installed
because
it's
required
by
chrome
driver,
so
you
could
have
things
that
request.
The
google
chrome,
stable
mix
and
without
chrome
driver
by
itself-
or
you
can't
do
that-
is
that.
D
C
A
C
Yes,
I
believe
so
because
I'm
not
again
this
maybe
jesse
knows
that
or
josh
knows,
but
like
we've
had
trouble
with
that
in
v2.
I
don't
know
if
you
guys
have
anything
to
add
to
that.
D
Yeah,
I
don't
remember
if
chrome
driver
needs
to
be
installed,
I
mean
chrome
driver
has
to
know
a
bit
about
how
google
chrome
is
installed,
but
I
think,
if
we're
doing
google
chrome
stable,
then
chrome
driver
could
be
installed
by
a
normal,
build
pack,
but
I'm
not
sure,
but
even
if
it
could,
you
could
have
two
stack
packs
to
your
point
earlier
right,
joe.
If
you
had
two
distinct
stack
packs,
then
it
could
rely
on
google
chrome
stable,
which
would
then
resolve
as
we
expect.
I
believe.
C
Yeah
a
good
question
again,
maybe
maybe
this
is
like
not
a
good
example,
and
maybe
the
problem
is
not
that
you
can't
do
this,
but
that
this
is
not
a
good
use
case
for
for
a
single
stack
pack.
So
to
your
point
like:
is
it
api
compatible?
Is
it
should
this
simply
be
decomposed
into
two
stack
packs.
B
B
C
Think
yeah,
I
think
the
problem
is
that
it
could
right,
so
you
can
totally
install
it.
Even
if
it's
not
requested.
I
think
the
problem
I'm
worried
about,
or
maybe
it's
not
a
problem
is
that
something
else
already
installed
it
or
the
stack
provided
it
and
then
you
either
end
up
with
you
know,
just
bloat
from
it
being
installed
twice
or
potentially
the
wrong
one
on
the
path.
D
B
To
me,
all
of
this
is
the
reason
we
haven't
exposed.
The
mixins
inside
of
the
container,
the
mixins
that
are
already
installed
inside
of
the
container,
is
because
it's
we're,
assuming
it's
possible
for
the
stack
pack
to
tell
when
a
mixing
is
already
installed
or
that
if
you
run
apt-get
install
and
it's
already
installed,
it
will
say
yep
it's
installed
sounds
good
yeah,
so
you
can
just
check
the
packages
and
see
if
it's
there
or
just
install
it.
It
won't
install
twice
right,
it'll,
just
be
a
no-op
change.
D
But
wouldn't
your
default,
if
you
were
writing
your
own
like
app
to
build
pack
at
first
just
be
to
spin
through
the
build
plan
that
you
were
given
and
then
I
guess
at
some
point:
you'd
realize
that
maybe
there
was
some
introduction
of
someone
not
requiring
it
or
you
know
I
don't
know
I
could
see
where
it
would
evolve
into.
You
writing
a
build
pack
one
way
and
then
now
you
suddenly
have
to
like
rewrite
that
build
plan
based
logic.
B
Many
many
times
a
mixin
is
going
to
be.
In
most
cases
a
mix-in
is
going
to
be
required
and
a
lot
more
than
that.
Mix-In
is
going
to
be
installed
right
because
you'll
ask
for
image.
Magic
and
image.
Magic
depends
on
30
packages,
so
app
get
install
image,
magic
will
install.
You
know
all
of
that
right,
and
so
we
we
definitely
need
a
way
for
the
build
pack
to
report
that
those
mixins
were
installed.
But
I
thought
that
was
in
there
through
the
reporting
interface
or
you
know,.
B
B
B
As
long
as
there's
a
way
for
the
you
know,
whole
dpkg
thing
to
be
dumped
by
the
app
build
pack
to
say
this
is
you
know
like
as
long
as
there's
a
place
to
capture
that
metadata
so
like
normally
in
the
new
version
of
the
build
bill
of
materials
thing?
What
does
that
look
like
it's
you
put
stuff
in
launch
tunnel
and
build
tommle.
A
B
A
A
A
A
So
I'd
like
to
take
stack,
packed,
installed,
mix-ins
and
then
end
up
putting
them
somewhere
put
them
with
the
rest
of
the
mix-ins
right,
because
that
final,
all
app
image
has
a
label
that
says
what
makes
sense
are
there
and
it
should
be
complete,
and
we
could
use
that
to
our
advantage
later.
If
we
keep
it
complete.
A
Like
we
already
let
the
mixins
change
so
long
as
none
of
them
have
been
removed
right,
which
is
why
I
want
sort
of
the
metadata
for
mix-ins
and
non-mixing
things
that
were
installed
by
stack
packs
on
the
app
image
to
be
distinguishable
from
each
other,
because
if
the
only
thing
that
was
installed
is
a
mix
in
and
we
have
a
definition
of
a
mix
in,
then
we
shouldn't
have
to
reinstall
it.
If
it's
already
there
on
the
run
image
every
base.
B
A
C
B
C
B
C
B
B
Apt
right
app
differentiates
between
explicitly
installed
things
and
not
explicitly
installed
things
right.
So
if,
on
the
first
build,
it
gets
foo
and
it
doesn't
get
borrowed
because
bar
just
happens
to
be
a
dependency
of
food
that
nobody
requested
specifically
and
then
on
a
subsequent
build.
It
gets
foo
and
bar
because
food
and
bar
were
both
installed.
That
that
strikes
me
as
risky
app
is
going
to
do
slightly
different
things.
B
B
D
But
it
does
mean
any
stackpack
could
install
any
number
of
app
packages
that
are
technically
mixed
ends,
but
it
didn't
if
it
didn't
request
them
as
mix-ins
from
like
an
app
one.
Then
it
can
just
do
whatever
it
wants
to
the
image
right,
which
is
kind
of
that's
kind
of
what
we're
coming
out
with
the
chrome
one
right.
If
chrome
driver
stack
pack
was
responsible
for
installing
chrome,
stable
itself,
then
there's
no
way
for
it
to
report
that
that
happened
for
downstream
build
packs.
D
B
A
C
Okay,
so
step
back
for
a
second
like
this
seems
like
an
important
discussion,
but
one
of
the
things
I'm
taking
away
is
that
we
have
given
this
example
of
chrome
and
chrome
driver.
I
think
we
have
enough
knobs
and
levers
that
this
shouldn't
be
a
problem,
because
this
is
probably
a
poor
build
pack
design,
I'm
thinking
at
a
minimum.
Maybe
these
are
separate,
build
packs
or
stack
packs.
Maybe
it's
one
build
pack,
one
stack
pack.
C
If
we're.
If
we
agree
on
that,
then
I
I'll
re-tool
the
example
and
not
worry
about
it,
not
worry
about
this
case
or
really
this
case
down
here
then
we
can
go
on
with
the
rest
of
the
discussion.
B
C
C
B
Okay,
because
we
already
said
that
we're
gonna
sorry
so
one
last
one
last
justification
for
this.
We've
already
said
that,
through
the
build
plan,
stack
packs
can
make
non-mix
and
changes
to
the
base
image
as
long
as
they're
abi
compatible
right.
That's
exactly
what
installing
google
chrome
stable
is
when
it
doesn't
report
it
as
a
mix-it.
It's
just.
A
C
Okay,
before
we
get
back
into
the
discussion,
we're
having
is
this
related
to
the
open
unresolved
question
about
mix-ins,
changing
on
the
stack.
B
I
would
keep
the
logic
that
says
that
you
can't
lose
mix
ends
on
a
base
image
on
rebase
for
now
and
then
maybe
decide
to
relax
it
later.
I
agree
with
emily
that
it
it
does
seem
like
if
we're
going
to
trust
the
contract
right.
We
should
we
should
let
you
rebase
with
less
as
long
as
you
have
that
star,
right
or
or
as
long
as
a
stackpack
could
provide
it.
D
That's,
I
think
what
you
said
earlier
steven
that
it
could
do
something
else.
That's
also
abi
compatible
means
that
we
have
to
run
all
stack,
packs
that
ran
previously
just
because
it
could
have
installed.
Jq
didn't
mean
it
also
did
something
else,
so
I
think
we
kind
of
I
don't
even
think
we
could
ever
optimize
that
away.
Yeah.
D
That'd
be
up
to
the
platform.
Who
knows
the
stack
packs
to
be
able
to
like
get
rid
of
the
build
plan
and
then
not
have
to
pass
that
in
because,
in
this
case,
you'd
have
to
know
that
your
apt
build
pack
is
safe
to
be
removed
from
the
build
plan
that
had
only
app
packages
in
it.
That
are
now
part
of
the
stack.
B
That
way,
if
there
are
additional
things
that
would
get
installed,
when
the
stack
pack
installs
the
package,
it
would
still
run,
and
it
would
just
be
a
no
op
on
installing
some
of
those
other
packages.
C
I'm
gonna:
we
can
go
back
if
we
want,
but
I'm
gonna
move
up
to
this
new
section
and,
let's
make
sure
it's
what
we
discussed.
So
the
detect
and
build
phases
will
be
provided
with
a
new
input,
the
stack
specific
platform
directory
instead
of
a
user
space
platform
directory.
So
it's
not
actually
a
new
input.
It's
just
a
replacing
another
input.
C
The
new
stack,
specific
platform
directory
will
require
new
options
for
it'll,
require
that
new
flags
essentially
are
added
to
the
lifecycle,
detect
and
build
interfaces,
but
the
detect
and
build
executables
will
continue
to
keep
the
same
interface
and
just
simply
get
different
platform
doors
so
down
in
the
specs
section
changes
I've
added
a
stack
platform
to
the
detect,
the
build
the
rebase
and
the
extender,
and
the
extender
does
not
have
a
normal
platform.
It
just
has
stack
platform.
B
So
for
environment
variables,
having
special
having
a
separate
set
of
environment
variables
for
stack
packs,
if
you
need
them
right,
you
explicitly
say
hey:
this
is
a
stackpack
one.
It's
gonna
have
to
you
know
it
could
vary
on
rebase
and
therefore
we
have
to
call
it
separate.
That
makes
sense
to
me:
do
we
feel
the
same
about
services
and
their
services
are
still
in
platform
right?
C
B
B
A
I
think
something
like
pack
is
already
gonna
have
to
distinguish
between
stack
and
regular
environment
variables.
Also,
right
now,
pac
doesn't
know
where
binding
should
be
mounted.
I'm
pretty
sure
you
have
to
do
it
yourself
with
the
volume
so
you'd
still
have
to
do
it
yourself.
B
That
makes
sense,
I
think
I
guess,
regardless
of
the
ux
the
recommendation,
I
was
gonna.
I
think
what
I
was
getting
to
is,
I
think
it's
okay,
if
bindings
vary
or
if,
like
we
use
the
same
sorry,
we
use
the
same
set
of
bindings
between
stack
packs
and
regular,
build
packs
because
they
represent
connections
to
real
services.
B
A
B
And
then,
okay
in
the
environment
variables
case,
there
are
environment
variables
that
are
intended
for
regular,
build
packs
right
that
would
get
exposed
to
the
stackpack
environment
that
if
they
changed
between
build
and
rebase,
could
cause
problems
for
the
stackpack.
So
we
separated
the
environment
variables
out
into
a
different
list
where
you
know
hey.
If
I,
if
I
change
these,
I
really
could
break
rebasing
right
and
so
that
makes
the
accordions
those
environment
variables
office
safe
for
stack
packs
for
bindings,
because
bindings
don't
represent
a
really
configuration
that
could
change
in
the
application
they
represent.
B
A
A
A
B
E
D
E
I
I
agree,
I
think
pac,
you
know
to
some
extent,
could
allow
right
for
both
you
to
specify
what
build
time
bindings
you
want
versus
what
I
guess
stack
pack
things
you
want
as
far
as
binding
goes,
and
then
I
would
maybe
even
go
and
lean
on
the
other
side
where
the
bindings
could
be
applied
to
the
build
right,
but
they
wouldn't
be
applied
or
available
to
stack
packs
and
therefore
it
wouldn't
impact
the
rebase
operation.
B
Seems
like
we
need
some
language
somewhere
that
describes.
They
need
to
be
able
to
be
different
for
sure,
and
we
need
some
language
somewhere.
That
describes
the
implication
of
changing
the
ones
on
the
rebase
side,
but
we
probably
don't
need
in
the
rfc
right
like
it
doesn't
seem
like
there's
a
anything
that
would
lead
to
a
change
in
this
from.
A
E
Yeah,
so
you
need
them
for
at
least
that
part
of
it.
I
think
we
talked
about
that
one.
It's
whether
bind
mounting
should
be
allowed
and,
like
I
said
at
least
for
pack,
I
would
say
that
initially
we
wouldn't
want
to
provide
that
just
because
of
the
the
hairiness
or
the
implications
behind
it
until
we
have
maybe
a
better
mechanism
to
to
at
least
help
or
guide
that
use.
E
Case
in
more
controlled
environments-
maybe
that's
different,
but
they
might
want
it
right,
like
google,
if
everything
happens
on
the
google
cloud
platform,
then
they
could
obviously
do
it
and
it
shouldn't
be
a
violation
if
they
know
that
they're
attaching
the
exact
same
thing
for.
B
Does
that
mean
we
can
we
think?
As
long
as
we
say,
the
platformer
has
to
be
separate.
We
can
defer
on
what
exactly
that
platform.
Dirt
looks
like
in
the
stackpack
case
until
later,
whether
it
has
bindings
things
like
that
yeah.
I
think
platforms
platforms
could
even
choose
not
to
allow
stack
environment
variables
yeah
if
they
really
wanted
to
right
to
be
empty.
B
B
C
Okay,
I
think
I'm
at
a
loss
for
what
to
do
next,
which
might
be
a
good
thing.
B
So
there
was
yeah,
there
was
a
discussion
we
had
going
back
to
the
build
plan,
mixing
combinations.
We
remember,
we
deferred
one
of
the
first.
The
first
thing
we
deferred
was.
B
B
I
think
that
was
the
last
thing
that
they
I
can
remember
that
there
might
be
still
more
significant,
open
questions
about
now
that
we've
resolved
the
platform
thing
it's
like.
Should
you
run
the
I
forget
it
was
like?
Should
you
run
the
build
and
that
and
not
the
extent
sometimes
if
they
have
different
sets
yeah
it's
like.
D
B
D
In
the
build
phase,
always
right
and
I
think
yeah-
I'm
less
concerned
about
the
build
phase.
But
if
you
only
if
you
skipped
the
because
you.
D
B
D
Don't
need
anything
for
run
you
just
don't
you
definitely
don't
want
to
pay
that
cost,
and
that
was
part
of
the
challenge,
though,
but
it's
a
lot
easier
to
understand.
If,
like
you
submit
something
that
needs
to
be
done
and
then
you
just
blindly
run
been
build
for
both
faces,
but
I
think
that's
just
too
simplistic.
C
Is
it
I
I
was
hoping
that's
where
we
would
land
that
like
if
it
like,
if
it
passes
it's
gonna
run
for
both
it
just
might
no
op
in
one
of
the
cases,
my
hope
being
that
in
the
future
we
could
make
a
non-breaking
change
where
it
becomes
smart
enough
to
just
hey.
If
nothing,
if
there's
nothing,
that's
needed
for
extend,
we
don't
don't
even
run
the
extend
phase,
but
maybe
it's
optimistic.
B
D
Yeah
right
but
yeah,
our
mix-ins,
I
think
what
makes
it
different
are
just
mix-ins
in
general.
Just
because
if
the
run
image
doesn't
have
jq
but
the
build
image
does
then
the
build
image
could
theoretically
skip
my
build
pack.
But
then
I
might
have
more
work
to
do
that
wasn't
related
to
installing
that
mix-in.
If
my
only
job
was
to
install
that
mix-in,
then
it
makes
sense
to.
But
I
don't
know
I
don't
know
if
there's
a
way
that
we
need
to
specify
that
this.
My
only
job
is
to
install
mix-ins.
C
B
So
if
a
normal
build
pack
makes
a
require,
that's
a
regular
require
from
a
stack
pack
right,
there's
no
like.
Currently
we
have
and
like
for
potato,
we
have
run
equals
and
build
equals,
and
you
know
require
entry,
that's
read
by
the
build
pack,
and
then
the
build
pack
can
decide
if
the
layer
generates
is
going
to
be
run
time
or
build
time
for
those
normal
entries.
B
Here,
the
entry
is
going
to
get
sent
to
both
sides
of
the
stack
pack
right
and
the
stack
pack
is
always
going
to
have
to
process
that
entry.
So
as
soon
as
as
soon
as
you
introduce
regular
build
plan
entries
into
stack
packs,
I
think
from
what
we've
currently
defined,
we
force
both
the
build
and
the
run
to
always
run
right.
C
I
I
am
because
I
think
it
can
be
the
responsibility
of
the
stackpack
author
to
account
for
that.
That
doesn't
mean
that,
like
my
hope
of
a
like,
changing
it
backwards,
compatible
might
not
be
true
because
some
people
might
like.
I
think
this
is
what
you're
driving
at
make
changes.
C
Even
if
there's
no
build
plans
stuff
but
yeah
I
mean,
I
think
I
think
it's
simpler
for
the
stackpack
author
to
think
about,
even
though
it
is
something
they
have
to
think
about,
rather
than
trying
to
like
figure
out
when
it's
going
to
run
and
when
it's
not
going
to
run.
B
D
D
C
Maybe,
but
I
also
feel
like,
like
kind
of
like
with
the
chrome
driver
example,
I
feel
like
there
might
be
enough
knobs
and
levers
and
that
maybe
we're
talking
about
a
case
where
that's
just
not
the
right
architecture
of
your
stack
pack
built
back
and
whatever
like
it
like.
Is
this
another
case
where
splitting
those
into
two
different
build
packs
or
like
a
stack
pack
and
build
pack
solves
the
problem?
C
C
I
think
that's
really
what
we're
trying
to
figure
out
right
like
we're
not
trying
to
catalog
every
use
case
of
stack
packs
here.
I
think
we're
trying
to
determine
if
the
abstraction
we've
created
is
sufficient
and
capable
of
solving
generically
solving
problems,
and
I
think
we're
confident
it
is
for
the
80,
the
app
the
app
packages
and
the
ca
certs
and
a
few
other
things.
I
didn't
even
put
the
cred
helper,
one
that
you
described
jessie
because
I'm
like
it
just
seems
like
so
straightforward,
yeah,.
B
A
B
E
B
D
Yeah,
I
think
that's
the
question:
can
you
skip
if
no
mixins
are
required?
Because
can
you
make
that
decision
confidently
for
all
stack
packs
like
I
said
you
know,
and
if
we
can
do,
we
just
want
to
go
ahead
and
like
solidify
that
in
the
specs
and
we're
right
we're
kind
of
like
a
clearing.
If
you
want
to
be
like
mixing
only
somewhere
in
here.
B
B
B
I
didn't
follow
that
if
you,
if
a
build
pack
requires,
run
the
bq
and
just
that
and
you
have
the
app
build
pack,
does
the
build
stage
run.
D
B
B
The
platform
and
compare
the
list
dimensions
that
are
statically
required
by
all
build
packs
with
the
static
list
of
mixins
provided
by
the
stack,
build
packs
and
failed
to
build.
C
C
C
B
Yeah
yeah,
I
just
mean
I
don't
know
if
saying
that
doesn't
show
up
in
the
list,
says
what
happens
when
nothing
shows
up
in
the
list.
If
that
makes
sense
yeah
like
do
we
have
a
language,
any
language
that
says
pass
right.
If
a
stack
build
pack
provides
a
mix,
it's
not
required.
This
tackle
pack
may
pass.
B
B
I
think
you
would
skip
this
technically.
It
says
for
each
phase
there
you
know,
there's
a
different
pass
and
implies
that
there's
a
different
pass
and
a
fail
scenario
for
build
versus,
extend
and
therefore
would
be
cut
in
the
build
one.
D
A
B
C
B
C
C
C
Right,
that's
sorry,
I
lost
myself
there
anyways,
I
was
gonna
say:
is
it
possible
that
the
solution
is
the
the
the
where
the
where
a
build
pack
provides
and
requires
the
same
thing
to
sort
of
ensure
that
it
always
runs,
but
in
this
case,
can
they
but
they
can't
require
mixins,
but
can
they
require
a
regular?
No.
D
B
C
B
A
D
B
A
Vision
but
I'd
love
to
get
a
spec
pr.
That
only
does
the
like.
We
could
do
the
detect
I'm
comfortable
with.
C
Because
yeah,
so
I
think
that's
fine.
That
makes
sense
like
this
is
not
a
spec.
This
is
a
vision,
I
think
that's
a
really
good
way
to
frame
it.
D
So
real
quick
joe,
can
you
search
for
requiring
mix-ins
in
here
because
we
do
have
a
section?
That's.
C
I
was
just
considering
it
as
a
mechanism
I'm
definitely
leaning
towards
if,
if
it
passes
detection
it
runs
in
both
phases,
but,
like
I
I
I
kind
of
don't
like
this
idea
of
it
passes
detection
and
then
it
maybe
runs
in
one
of
those
and
in
it's
like
almost
it's,
not
non-deterministic,
but
it's
like
hard
to
figure
out
which
phase
or
phases
it's
going
to
run
in,
and
I
think,
as
a
stack
pack
author,
that's
harder
to
think
about.
C
B
I
I
don't
like
the
idea
of
if
you
make
an
apt
build
pack
and
something
says
I
need
this
package
in
the
runtime
image
that
a
layer
gets
generated
or
needs
this
package
in
a
build
time,
image
that
a
runtime
layer
gets
generated
because
then
it
goes
sorry,
maybe
I
misunderstood,
I
mean
yeah.
It
would
not
so.
C
There's
two
cases:
one
is
that
the
stack
already
provides
it.
Let's
say:
let's
say
this:
let's
say:
let's
say
the
run
stack
has
lib
pq
and
the
build
stack
does
not,
and
there
is
a
build
pack
that
requires
lib
pq,
that
app
package,
the
apt
stack
packet
stack
pack
is
going
to
pass
detection
and
then,
in
the
build
phase,
it's
going
to
run
because
there's
no
mixing
and
in
the
run
phase
it's
going
to
run,
but
it
has
to
be
smart
enough
not
to
reinstall
it.
I
guess.
C
B
C
But
that
layer
should
be
empty
if
the
build
pack,
if
the
stack
pack
is
written
correctly,
that
tarball
should
be
empty
and
we
can
just
chuck
it
right.
A
B
Skip
if
we
just
start
with
nixons
in
the
implementation
right,
then
it's
safe
to
skip
the
phases
if
they
don't
have
any
mix
ends,
and
so
I
I
recommend
we
leave
it
as
an
unresolved
question
for
once,
we've
implemented
the
build
plan
entries,
but
initially
we
implement
it
so
that
it's
it
only.
The
only
things
that
run
are
the
phases
where
the
mix-ins
are
needed.
B
A
I
feel
good
about
it.
Let's
shift
it
yeah.
I
feel
much
better
about
the
idea
that
we'll
do
the
mixing
stuff
first,
which
makes
me
fine
approving
other
things,
I'm
not
sure
about,
because
I
think,
as
we
do
that
and
get
this
framework
for
running
stack,
packs
it'll
be
easier
to
think
about
all
these
other
questions
that
we're
laying
on
top.