►
From YouTube: Magento Architectural Discussion -- June, 26, 2019
Description
- MFTF Tests technical guidelines
- MFTF test packaging
- MFTF tests versioning
- Voting on Proposals
- Validation of backward incompatible changes for Virtual Types
- Clarification in Backward Compatibility guidelines
- View models to be considered public API
Meeting minutes - https://github.com/magento/architecture/issues/195
A
B
B
B
New
model
type
I
passed
or
something
like
that,
an
outhouse
functional
test
will
be
located
in
a
sibling
volume
with
the
same
name,
the
same
module
name
and
suffix
watch
Malta.
So
what
it
gives
us
it
gives
us
a
civility
to
package
tasks
separately
from
magenta
code.
It
gives
us
this
ability
to
separately
virtualize
this
this
task,
and
it
gives
us
possibility
to
build
things
publishing
without
tasks
install
Magento
with
us.
B
B
B
Do
you,
if
you
install
you
work
as
locally,
you
will
be
able
to
see
with
what,
with
what
magenta
dish
you
this,
as
also
we
have
I,
have
an
idea
to
build
a
separate
package
which
a
gentle
functional
test
product
communications
with
this
meta
package
will
contain.
Only
packages
with
functional
tasks
will
give
you
easy
way
to
install
this
task
for
release.
C
From
white
just
like
preserved
discharge
shown
here,
propose
and
don't
move.
Why
don't
move
this
test
to
the
depth
test?
Integration
of
the
function
you
will
preserve?
You
will
have
the
same
structure.
They
will
be
component
wasted,
they
will
be
in
separate
modules,
but
they
it
won't
be
mix
like
the
functional
modules
and
testing
modules
at
the
same
level,
because,
like
right
now
we
have
a
lot
of
modules
in
the
core
and
the
number
of
modules
will
grow,
because
we
won't
try
to
balls
and
little
different
modules
and
like
in
addition
to
these
new
modules.
C
A
D
A
E
B
A
Don't
forget
to
document
this
new
type,
so
I
had
a
discussion
with
like
instead
channel
I.
Think
people
are
asking
not
in
the
section
of
the
reserved
for
requesting
the
blocks
where
people
are
describing
five
different
types
of
packages
that
we
have,
and
you
just
need
to
make
sure
that
this
one
is
also
added
to.
B
B
Currently,
working
was
enabled
to
build
a
huge
rules
for
every
test
entity
was
targeted
with
the
smallest
one,
which
is
painless
sections.
We
have
four
small
goals
for
each
of
this
entity.
First
of
all,
first
row
is
page.
Five
names
must
follow
this
pattern
and
we
describe
this
pattern,
which
look
like
the
page
name
attribute,
must
be
the
same:
Paulo
main
module.
A
D
B
A
G
Then
the
author
must
present
this
proposal
and
described
problem
describe
the
solution
he
is
trying
to
resolve
and
after
that,
if
there
are
any
controversial
opinions
or
like
every
like,
every
single
idea
is
good,
but
has
disadvantages.
Fans
was
then
architecture.
You
may
consider
starting
oten
by
like
an
important
label
to
this
poor
request.
G
G
The
discussion
may
continue
in
the
blue
quest
thread
and
the
result.
Voters
can
change
their
votes
during
this.
What
he
prepared
also
we
discussed
that
eligible
voters
are
all
github
users.
It
doesn't
matter
what
like
we
definitely
will
be
attract.
All
of
the
voters,
by
name
so
after
Morton,
is
finished
despite
information
in
the
poll
requests,
but
as
the
result,
even
if
the
majority
ought
to
exist
for
a
proposal,
it
like
it,
doesn't
guarantee
that
this
proposal
will
be
adopted
or
implemented.
So
it
always
the
final
decision
states
with
architecture
team
and
to
do
item.
G
I
added
to
this
proposal
is
that
we
can
use.
Community
portal
was
because
it
already
has
service
features.
So
we
can
use
link
to
community
portal,
then
get
help
we'll
use
identification
to
user-centric.
My
name
and
an
important
period
will
finish,
will
just
display
this
information
who
voted
and
results.
A
G
G
F
Yeah,
can
you
hear
me?
Yes,
okay,
cool.
Can
you
see
my
screen?
Yes,
okay,
so
today,
I
would
like
to
discuss
another
one
like
changing
for
our
version
and
policy
and
in
this
case
I
would
like
to
discuss
how
they
going
to
manage
our
semantic
question
for
12
types.
So
far
for
now
we
have
the
next
requirement,
for
you
know,
policy
for
all
types,
and
here
you
can
see
that
we're
12
tied
in
case
we
remove
some
dirt
all
types.
F
It
will
be
my
job
change
and
in
case
we
added
in
yogurt
all
types
as
this
might
not
change,
but
we
clear
understand
we're
told
ice,
it's
not
the
course.
This
is
just
configuration,
but
there
is
some
exceptional
cases,
so
all
some
exemptions.
So
there
is
some
cases
when
we
really
need
to
follow
semantic
question
for
their
toll
types
and
what
I
found
in
our
code
base.
F
A
semantic
version
policy
for
we've
talked
was
accept,
known
and
bi
class
next
point,
which
I
would
like
to
discuss
as
like:
remove
unnecessary,
API
annotations,
because
some
classes
market
as
API.
But
if
this
class
is
I'm
not
supposed
to
be
extended-
and
this
is
like
configuration-
and
sometimes
we
market
as
API-
something
what
we
use
in
our.
F
So
we
declare
add
some
class
in
in
one
model
and
we
use
in
in
decimal,
and
we
mark
this
class
as
API
I.
Don't
see
any
need
to
do
it
in
our
core
device,
because,
as
I
mentioned
before,
we
clear
understands
it,
we've
talked
cause.
This
is
like
declaration
and
in
in
my
understanding
this
something
similar
about.
We
have
like
when
we
use
the
I.
When
we
declared
dependency
insist,
we
use
a
virtual
class
in
the
same
way,
so
I
proposed
to
remove
unnecessary
API
annotation
from
some
classes
and
the
last
one.
F
What
I
would
to
discuss
is
like
change
this
approach
and
don't
use
API
like
as
XML
comment,
but
instead
of
introduce
a
new
attribute
API-
and
you
can
see
this
is
here
like
little
type
and
unnecessary,
attribute
API,
not
unless
optional
attribute
API,
and
we
can
mark
this
class
explicitly
I
di
all
right.
Wait,
though,
I
think
this
is
better
because
sometimes
when
you
change
something
in
XML
class,
you
can
move
some
class
heat
below
existing
point
and
you
can
forego
this
API
annotations
and
in
class
in
case
you
move
it
Sampson.
F
H
C
C
A
F
Here
we
can
do
it,
but
this
is
hard
to
read.
You
know
in
my
ceiling,
so
why
why
they
should
use
common
sense
XML.
This
is
not
like
general
approach,
peach-pit
o'clock.
Yes,
this
is
general
approach.
You
used
a
bit
of
block
argument
like
API
is
clear
declaration.
But
what
is
it's
here?
We
don't
have
I,
never
seen
any
agreement.
What
is
it
and
this
this
as
for
me,
this
is
more
confusing
than
to
use
in
a
argument.
C
F
Really
you
don't
need,
because,
most
of
the
case,
you
will
use
API
annotation,
just
for
always
static
analysis,
I
mean
for
our
semantic
rationale
and
in
case
you
want
to
reuse
this
virtual
class
inside
of
Magento
you
shouldn't
care
about,
is
its
API
or
not
about
external,
our
external
developers.
They
in
this
case.
Yes,
they
should
verify.
A
Or
at
least
from
another
component,
if
we
move
to
a
lot,
ideally
it
should
so
I'd,
not
familliar
cell
types
in
many
cases,
look
like
some
a
demo
private
code
inside
a
single
XML
file,
because
how
it's
used
you
just
want
to
configure
with
the
class
which
is
declared
and
not
the
card
but
configured
in
the
same
file.
Right,
that's
fine!
But
if
you
mark
it
with
API,
you
expected
it
can
be
used
somewhere
else,
so
somebody
can
look
at
it
and
use
it
and
rely
on
it.
A
F
A
A
A
F
A
Okay,
so
I
updated
backward
compatibility
guidelines,
so
I
looked
through
like
based
on
some
questions
from
people
in
the
recent
time,
I
want
I,
updated
some
items
in
the
backward
compatibility
guidelines,
so
I'll
start
from
those
some
just
it
was
so
I
updated
the
tradition
for
private
code,
because
I
think
it's
confusing.
It
was
written
before
that
public
API
is
everything
which
is
marked
with
at
API
annotation,
though
private
code
is
not
accessible
via
the
ATA
classes
and
constants
Marcus
Marcus
why
they
think
it
is
incorrect.
A
A
You
just
wanted
to
know
types
here,
as
we
are
discussing,
because
it's
more
our
case,
we
used
the
lubrication
strategies
so
what
we
had
to
have
marking
public
bodies,
duplicated
I'm,
not
sure
what
means
on
the
manga
really
so
I
just
removed
it,
and
what?
If
it's
marked
as
deprecated,
it
can
be
remove
them
between
in
a
future
minor
words,
we
don't
have
any
specific
expectations
in
which
moment
is
now
maybe
more
interesting.
First,
so
I'm
adding
that
a
command
and
note
that
any
change
not
listed
in
the
table.
We
saw
the
changes.
A
Any
change
not
listed
below
is
considered
the
patch
level
change
because,
like
I
think
this
is
default.
Expectation
I
just
wanted
to
make
it
more
clear.
Okay,
we
don't
see
changes
in
the
table,
so
we're
child
pipe
markers,
I,
think
I
know.
Based
on
the
discussion
now
the
world
there
were
some
discussions
about
Ural
paths.
It's
not
very
clear.
I
think
it
was
not
very
clear
why
we
have
Europe
was
here.
A
I
was
like
what
what
changes
will
affect
so
and
which
URLs
are
powered
by
this
policy,
so
I'm
verifying
that
URL
possible
for
storefront
and
admin,
and
then
I
proposed
the
following,
so
we
had
removed
reminder,
cost
parameter
new
articles
parameter
in
optional.
It
was
parameter
so
I'm,
adding
that
this
is
from
get
request
and
those
are
major,
major
or
minor
changes
as
a
phone
before,
though,
for
post
request,
I
think
this
is
a
part.
Reversion
change,
but
I
wanted
to
discuss
it
if
it
makes
sense.
A
So
from
my
understanding
why
we
say
that
modifying
get
requests
is
a
significant
change,
because
somebody
can
somebody
can
have
automation
or
maybe
a
bookmark
for
it
as
well
as
another
module.
Can
have
a
link
to
another
page
I,
don't
know
if
we
can
see
there,
it's
a
normal
customization
that
submits
a
form
to
another
module,
maybe
things
norm
of
them.
We
also
need.
We
also
should
make
it
even
problem,
major
change,
but
any
opinions
about
this.
H
H
C
I
A
I
A
I
A
I
E
A
But
what
I
want
to
say
that
functional
change
might
happen
even
without
changing
any
parameters
right,
you
can
go
inside
the
code
and
modify
behavior
will
lead
to
a
function.
Functional
change,
yes,
means
that
any
functional
change
should
also
be
considered
when
we
are
setting
a
version.
I
think
we
are
just
missing
this
part,
mostly
like
many
people
forget
about
it,
because
it's
hard
to
validate
grano
tools
acceptance.
A
So
what
I'm
saying
is
that,
for
example,
when
we
are
removing
an
argument?
Theoretically,
nothing
may
change.
For
example,
there
was
a
mistake
and
at
some
point
there
was
still
an
argument,
but
it
was
never
used
right
if
we
remove
it
from
a
more
functional
change
will
be
introduced.
So
is
it
a
major
change
or
not
I?
Think.
I
I
H
A
A
A
A
A
A
A
A
I
can
tell
you
how
its
implemented
it
does
not
take
more
if
I
think
it's
intentional
in
case
somebody
makes
a
typo,
so
I
also
know
me
differently.
So
I
think
it
should
be
my
job.
You
know
what
else
AHA
statically
files.
So
some
time
ago
there
was
complain
about
us
moving
javascript
files
from
one
folder
to
another,
so
I
added
a
rule
about
that
static
profiles.
Yes,
yes,
as
less
files
removed
most
its
major
change,
just
successful
as
files
file
added
what
change
you
make
it
minor
I.
C
A
Mutual
types,
what
we
had,
we
shall
type
okay,
I
sold,
marked
with
I,
think
the
I,
what
we
had
switch
total
considerably
short
type
in
the
DI
that
XML
file,
and
it
was
the
power.
This
is
different
file.
By
the
way
this
is
dependences
file.
So
it's
for
extension
developers
on
shows
which
version
they
should
be
point
form.
A
It
was
virtual
five.
If
you
continue,
we
shall
fight
in
the
XML
file
as
a
quantum
dependency.
For
me,
it
sounded
a
little
bit
weird,
the
first
way
so
I'm
changing
to
use
an
existing
virtual
file.
So
if
we
say
if
we
use
existing
app
shortcut
from
Magento
example,
my
marked
with
API
it's
you
should
depend
on
major
version.
A
A
Particular
files
I
will
adhere
marked
with
a
flag.
So
if
you
rely
on
any
of
those
files,
the
condom
major
version.
Yes,
so
that's
about
guidelines
also
I
wanted
to
add
a
section
somewhere
about
extension
points
just
to
list
to
them
explicitly
because
there
is
a
lot
of
text,
description
and
explanation
more
abstract
way.
I
just
wanted
to
add
some
general
extension
points
that
we
have
in
magenta.
Six
more
visual
I
will
discuss
mr.
A
A
A
It's
a
small
one,
it's
about
view
models,
but
right
now
they
are
not
marked
respond
with
a
thank
you.
I
said
they
are
not
considered
public
API.
Maybe
just
think
about
this.
We
can
discuss
later
later.
I,
don't
think
it's
urgent
question,
but
I
think
those
should
be
public
API
because
they,
which
means
that.
A
G
A
A
Yes,
you
cannot
change
the
model,
but
you
can
introduce
new
model.
You
have
at
least
this
people
and
we
we
can
discuss
how
what's
our
strategy
on
on
actually
marking
with
at
API.
Maybe
we
should
be
marking
only
that
minor
release
like
2.4
bits
0,
and
we
should
maybe
we
should
not
mark
doing.
Maybe
we
should
we
need
to
discuss
so.
I
will
move
this
item
to
the
next
meeting.
Maybe
you
can
just
think
about
it.
Meanwhile,
it's
not
urgent,
so
we
can
finish
this
meeting
c'mon.
Thank
you
all
and
great
discussions
today.
Bye.