On Mar 26,
2012, at 6:02
PM, Ken
Finnigan
wrote:
ok,
but isn't that
what
documentation
is for, to
document the
release
process with
whatever
parameters are
needed?
I'd
hardly
consider
-Prelease to
be extremely
onerous on a
releaser.
I guess
from a
different
perspective,
it's not a
very pleasant
experience for
a community
member to
attempt to
build GateIn
and end up
waiting
forever for it
to complete
because, like
everyone else,
they didn't
read the
readme before
trying to
build a
project.
In my
opinion, if
someone needs
to read a
readme before
they even
attempt to
build a Maven
project,
something is
very wrong.
Yes it means
they don't
have a
packaged
GateIn with a
server
environment
built, but at
least the
codebase built
and is
available in
their Maven
repo.
Ken
On
Mon, Mar 26,
2012 at 11:53
AM, Julien
Viet
<julien@julienviet.com>
wrote:
the issue
we had in the
past was about
forgetting
profile or not
knowing
exactly which
profiles
should be
activated when
doing release.
On Mar
26, 2012, at
5:47 PM, Ken
Finnigan
wrote:
Julien,
I think
what you're
describing is
different to
what I meant.
I don't
mean doing
some profile
as part of the
release
plugin, I mean
creating a new
release
profile that
has nothing
but the
modules to
build, no
plugins or
anything else
defined within
it. Then as
part of the
release you
only need to
add -Prelease
to build every
module
Might be
missing
something, but
to me it's
different.
Ken
On
Mon, Mar 26,
2012 at 11:25
AM, Julien
Viet
<julien@julienviet.com>
wrote:
Hi Ken,
The
additional
profile added
in the release
plugin will
not be run in
the project
until the
release plugin
fork itself
(i.e the
release plugin
runs another
maven during
the release).
To
perform a
correct and
reproducible
release all
profiles
should be
executed from
the beginning
with all the
profiles that
will update
the pom.
We had
issues in the
past with some
releases (with
gatein and
portlet
container, I
don't know for
others) where
the release
was not done
correctly (the
main issue is
that poms were
not versioned
during the
release which
makes a broken
release and
also breaks
the
trunk/master
because there
are pom using
the previous
release
SNAPSHOT
version). Those
releases had
to be redone
or worse the
SVN tag was
"amended"
(which is not
possible
anymore with
git) to "fix"
the release.
The main
motivation is
to ensure that
the release
will be easy
to do, will be
correct and
that the build
after the
release is
correct.
On Mar
26, 2012, at
5:08 PM, Ken
Finnigan
wrote:
Why
not simply
have a
"release"
profile that
activates each
module of the
build?
That is
usually what
Maven projects
do when there
are modules
they don't
want built
during dev,
such as docs,
etc.
Ken
On
Mon, Mar 26,
2012 at 11:03
AM, Julien
Viet
<julien@julienviet.com>
wrote:
Hi,
we are
currently
working on the
build after
the GIT
migration, one
of the current
issue is
profile
selection.
The most
important
issue we are
solving is
that
performing a
release is
error prone
and often
fails to
perform the
release
properly:
often POM are
not versionned
by the release
plugin, du to
the fact that
it uses
incorrect
profile
activation. Of
course it is
always
possible to
have it
working by
selecting the
good profiles
in the release
plugin and on
the command
line, however
it is error
prone and it
is hard to
figure out by
looking at the
build what
should be
used.
We are going
to change how
the build work
with profiles,
not because we
don't use
profiles the
right way, but
because Maven
profile
activation is
not good
enough.
(activeByDefault
is broken, you
cannot have
flexible
activation,
etc...)
We still need
to use
profiles and
actually we
don't change
the current
profiles, what
we do change
is how their
activation is
done with a
simple and
important
change:
"Everything is
built by
default"
It means that
the command
"mvn install"
builds
everything
(all server
packaging,
docs,
examples,
etc...). This
guarantees
that release
plugin will
release
properly the
project.
Obviously we
need to
address
developer
productivity
and we do
provide a way
to perform a
build that
saves the most
time we can
when it is
activated in a
simple manner.
To achieve it
we use profile
activation
based on
properties:
the gatein.dev
property is
introduced to
do it.
When this
property is
not present,
the build
behaves as
said before :
it builds
everthing.
When it is
selected with
any value, it
means that the
build is done
for
development
purpose and it
skips some
parts of the
build
(examples,
docs, most of
packaging).
When it is
selected with
a server
value, it
build that
server only :
for instance
"mvn install
-Dgatein.dev=jetty"
. The possible
values are
- tomcat
- jbossas5
- jbossas6
- jbossas
- tomcat6
- tomcat7
- jetty
Another issue
to fix is the
selected
database for
running the
unit tests,
but I believe
it affects you
less because
most of you
are using
hsqldb tests.
To perform
tests with
MySQL, the
profile
-Pmysql5 can
be used.
Several things
to note:
- The README
file of GateIn
has been
updated with
the
information
- AS7 build is
not yet
finished and
is cut of the
build (which
means that
doing a
release would
not version
the AS7 poms)
Let me know if
you have any
issue with the
build.
Julien
_______________________________________________
gatein-dev
mailing list
gatein-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/gatein-dev
_______________________________________________
gatein-dev
mailing list
gatein-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/gatein-dev