On 2 March 2010 02:28, David Jencks <[email protected]>
wrote:
I've done most of what I think is needed for aries to be
basically
releasable. There are some bits left and possibly stuff I've
missed.
1. legal file review. There are a bunch of NOTICE files that
claim that
work from osgi is included. Really? license and notice files
are supposed
to apply to what is actually in an artifact or checkout. Are
some of our
source files copied from an osgi source? Also all the legal
files that end
up in binary artifacts need to be checked. Also we need to run
the rat
plugin: this should be configured in the default pom. Not sure
if I will
get to this.
2. actually using the eba-maven-plugn. I'm not entirely sure
how to make
sure that an eba is working so I didn't mess with this. I
think the plugin
itself is working well enough to use though.
2. ordering dependencies and dependency management. I find it
convenient to
have these alphabetized so I can find what I'm looking for, but
I haven't
done this in most poms. I'm not sure why there isn't a usable
tool for
doing this but I haven't found one. Dull but useful...
3. It would probably be a really good idea to run mvn
dependency:analyze and
look carefully at the results. The results from this can require
interpretation so its best if someone who is very familiar with
how the code
works does this.
4. before a release all snapshots need to be resolved to
released versions.
I don't know if there are any snapshots.
To summarize what I've tried to do:
1. default-parent has dependency management for the basic osgi
dependencies
that all projects are pretty sure to use including the pax
stuff used mostly
for testing.
2. each subproject has legal files in its checkout root
3. each subproject has an scm element in its pom, but no others
do.
4. each subproject has dependency management for everything
included in it.
In addition, it has its subprojects listed in dependency
management. (this
is bent slightly for the samples). This means that
(a) modules in a subproject don't need to include versions for
use of other
modules
(b) you can get dependency management for all the modules in a
subproject
by depending on the subproject pom with scope import. (see the
samples pom
for an example).
5. As a result of (4), modules don't have any versions in any
dependency
elements.
Release is going to involve...
releasing the parent
In trunk/parent I tried:
mvn -DdryRun=true release:prepare -Papache-release
Providing 0.1-incubating for the release version
Defaulting to parent-0.1-incubating for the SCM release tag
Defaulting to 0.2-incubating-SNAPSHOT for the new development
version
then when it builds the 'Top Parent POM' it outputs this:
[INFO] [INFO]
------------------------------------------------------------------------
[INFO] [INFO] Building Aries :: Top Parent POM
[INFO] [INFO] task-segment: [clean, verify]
[INFO] [INFO]
------------------------------------------------------------------------
[INFO] [INFO] [clean:clean]
[INFO] [INFO] Setting property: classpath.resource.loader.class =>
'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.
[INFO] [INFO] Setting property: velocimacro.messages.on =>
'false'.
[INFO] [INFO] Setting property: resource.loader => 'classpath'.
[INFO] [INFO] Setting property: resource.manager.logwhenfound =>
'false'.
[INFO] [INFO] [remote-resources:process {execution: default}]
[INFO] [INFO] [site:attach-descriptor]
[INFO] [INFO] [assembly:single {execution: source-release-
assembly}]
[INFO] [INFO] parent-1.0.0-incubating-SNAPSHOT/ already added,
skipping
[INFO] [INFO] parent-1.0.0-incubating-SNAPSHOT/LICENSE already
added, skipping
[INFO] [INFO] parent-1.0.0-incubating-SNAPSHOT/NOTICE already
added, skipping
[INFO] [INFO] Building zip:
C:\cygwin\home\hughesj\oss\aries\trunk\parent\target
\parent-1.0.0-incubating-SNAPSHOT-source-release.zip
[INFO] [INFO] parent-1.0.0-incubating-SNAPSHOT/ already added,
skipping
[INFO] [INFO] parent-1.0.0-incubating-SNAPSHOT/LICENSE already
added, skipping
[INFO] [INFO] parent-1.0.0-incubating-SNAPSHOT/NOTICE already
added, skipping
[INFO] [INFO] Preparing source:jar
[INFO] [WARNING] Removing: jar from forked lifecycle, to prevent
recursive invocation.
[INFO] [INFO] No goals needed for project - skipping
[INFO] [INFO] [source:jar {execution: attach-sources}]
[INFO] [INFO] [javadoc:jar {execution: attach-javadocs}]
[INFO] [INFO] Not executing Javadoc as the project is not a Java
classpath-capable package
[INFO] [INFO] [gpg:sign {execution: default}]
so it seems to be outputting 1.0.0 artifacts still. Any ideas?
Then stops at the gpg stage. I thought it would prompt me for my
key
passphrase at this point. Do I need gpg-agent to be running?
updating the parent version wherever it is used (all subproject
parents)
releasing the subprojects in an appropriate order and updating
their
versions wherever they are used.
It might be worthwhile changing the pom version to 0.1-
incubating-SNAPSHOT
(or something similar, 0.0-incubating-SNAPSHOT?) before doing
this because
then the versions plugin can be used to update use of a
subproject to the
newly released version of what it uses. Going from
1.0.0-incubating-SNAPSHOT to 0.1-incubating won't allow this.
As noted in the "root" pom, don't try to release the root pom
and don't try
release everything at once from the root pom.
thanks
david jencks
On Feb 24, 2010, at 11:55 PM, David Jencks wrote:
I started looking into cleaning up the build, and of course it
is taking
longer than I expected.
I'm seriously hampered by failing tests in a fresh checkout.
There are some projects in application that stop compiling if
you
alphabetize the dependencies. It looks like osgi 3 artifacts
are getting on
the maven classpath before osgi 4.2 artifacts. Adding
exclusions to the
dependencies seems to fix it if you can figure out where the
out of date
jars are coming from.
The build is already much closer to a multi-release model than
a single
release model.
I've diffed what I have so far and attached it to ARIES-173.
It includes
scm info and a lot of version corrections. Due to the failing
tests I'm not
too comfortable committing it.
Is anyone else seeing test failures locally?
thanks
david jencks
On Feb 24, 2010, at 1:50 PM, Lin Sun wrote:
Hi David,
It 'd be great if you are willing to fix these build issues,
since you
just went through a big release in Geronimo. :)
I know the maven release plugin isn't friendly to use some
cases, so
it is best we get these resolved to make our release process
a bit
easier.
EBA plugin would be a very nice add-on, if it comes in time
with the
release.
Thanks
Lin
On Tue, Feb 23, 2010 at 8:56 PM, David Jencks <[email protected]
>
wrote:
I would like to understand the problems you see better, but
I do not
have
the maven background you guys have, any chance you could
explain what
the
problems are, why they are problems and the solution at
some point?
The biggest immediate problem is that without correct svn
info you can't
do
a release with the release plugin. I'm pretty sure the way
its set up
now,
when you try, the tag will be under maven's apache pom, not
aries.
(you'll
fail unless you happen to be a maven committer too). You
definitely
don't
want to try to do a release without the release plugin.
Organizationally there's no way that for instance blueprint,
application,
and samples should always be released in synchrony. Any
time two of
them
happen to be ready for release at the same time it will be
purely
accidental. Right now everyone wants to get a milestone out
the door,
but
looking at the different projects their state of completion
is pretty
much
wildly different. A decision to release all of them at once
is not
based in
any way on them being equally complete. I'm suggesting that
since build
fixes are needed anyway, why not set up a maintainable
structure that
will
continue to work beyond this publicity release. The benefit
to users is
that aries will be able to release bits in a timely fashion;
otherwise
the
entire project will never be in a releasable state at once.
(I'm only
exaggerating a little bit :-)
What got me looking at this at all is what look like wild
gyrations that
don't really use maven properly to get an .eba (or some
artifact) out
the
door. This might be ok for one release but (a) I think this
can be done
directly with the assembly plugin short term and (b) an eba-
maven-plugin
seems like the obvious more long term solution.
I'm willing to fix the build and probably work on an eba
plugin, but
want to
be sure this is ok with everyone first.
thanks
david jencks
Thanks
Alasdair
On 23 Feb 2010, at 18:18, David Jencks <[email protected]
> wrote:
This discussion got me worried enough to take a look at
the aries
build.
Now I'm even more worried.
While it might feel good to try to push out a release as
fast as
possible
I'd prefer to see a sustainable build system in place
first. So far
it
looks to me as if aries is going to be a bunch of loosely
coupled
subprojects. Building them all at once is not going to
work for long.
I
think we should recognize that and put that in the build
system now.
To me
this means:
1. a parent pom that isn't at the root of the svn trunk.
2. each subproject has pom info sufficient so it can be
released
(mostly
svn info) (right now this is completely missing
everywhere as far as
I can
see, which will result in ares getting tagged into svn as
part of the
apache
pom)
We can still have a "fake" pom that builds everything, but
it won't be
part of any release procedure.
Having separately released subprojects does not prevent
having a
single
vote on all the releases.
I'd suggest a few other pom tweaks such as using resources
and
filtered-resources to distinguish when filtering is called
for.
In addition relevant to this particular bit of the thread,
we need an
eba-maven-plugin to assemble ebas. Getting this into a
first release
would
be a great idea IMO.
If there's general agreement I can spend some time playing
with the
build
and possibly working on the eba plugin.
thoughts?
thanks
david jencks
On Feb 22, 2010, at 2:01 PM, Joe Bohn wrote:
Jeremy Hughes wrote:
On 19 February 2010 13:09, Joe Bohn <[email protected]>
wrote:
I'd also like to see us release the sample applications
but I think
there is
at least one complication. Both Blog Sample and
AriesTrader
generate
EBAs
using different techniques - but both leverage the
maven-antrun-plugin
to
finally produce a file of type "eba".
I realised the .eba file generated in the blog-assembly
module
wasn't
being pushed into my local repo. I've made some changes
to the
pom.xml
in ARIES-198 to fix this. So now it uses antrun to
create the .eba
artifact and the build-helper-maven-plugin to push the
artifact to
the
local repo. I needed to add NOTICE and LICENSE files to
the .eba for
the ianal plugin in the verify phase to succeed.
I've not used the build-helper-maven-plugin before. Do
you know if
it
will work with the maven-release-plugin to push the eba
artifacts
when we do
a release? If so, then I should look at using the same
mechanism for
AriesTrader.
I think the result is that the eba will not be
available in a maven
repository.
One of the differences is that AriesTrader first
generates a jar
using
the
maven-assembly-plugin and then copies this to an eba.
The jar will
be
managed by maven and IIUC it should be deployable as an
"application"
even
with an extension of "jar" rather than "eba". If that
is correct
then
perhaps delivery of an application jar is an acceptable
approach
for
the 1st
release. Unfortunately I haven't actually setup my
equinox
assembly
to
deploy the eba yet - it still deploys all of the
individual
bundles.
Using the maven-assembly-plugin likely the preferred
approach long
term. Perhaps we could copy the artifact to .eba and use
the
build-helper-maven-plugin to remove the .jar artifact
from maven
control and add the .eba one?
I can give this a try for AriesTrader. If it doesn't
work out - is
there anything wrong with the approach I mentioned
earlier of just
using the
jar artifacts rather than the eba artifacts? Will the
current
application
support only look at *.eba archives?
Joe
Guillaume Nodet wrote:
I'd like to see at least those included:
* blueprint
* jmx
* jndi
* transaction
I don't think applications are really usable yet and I
haven't
really
looked at JPA yet, so can't tell about it.
The transaction component is functional and we've been
using it
mostly
unchanged since a long time in ServiceMix.
Do you have any particular concerns with it ? (I'm not
talking
about
declarative transactions for blueprint, note).
On Fri, Feb 19, 2010 at 04:19, Joe Bohn <[email protected]
> wrote:
Thanks for the response (even while on vacation!) ...
and for
volunteering
to be the release manager. Your response helps me
get a better
picture
of
the plans.
I was really just interested in the general
objectives and timing
since
it
hadn't been discussed yet. To get the release out in
Feb means
it
will
be
delivered next week. I'm afraid the hill might be a
little too
steep to
climb that quickly but I'm happy to be proven wrong.
The more communication the better. It's important to
get
everybody
thinking
and planning along the same lines (or understand
quickly if there
are any
differences of opinion). Knowing that you are
thinking of
creating
a
release candidate next week means that we should be
getting more
restrictive
on new content to avoid any unpleasant surprises.
I don't have any strong opinions on what should be in
or out -
but
in
general it doesn't make sense to release things that
aren't
functional.
At
the moment I'm not sure what those are - but I
suspect not all of
the
components are fully functional yet (for example
transaction).
Best Regards,
Joe
Jeremy Hughes wrote:
Hi Joe, sorry I started setting myself up tuesday
but am now out
on
vacation until monday.
Personally, I think the 0.1 release should serve to
get what we
have
right now in the respectable form the ASF requires.
So 'must
haves'
are to get the build in the right shape to create the
distribution
files that are acceptable to the IPMC. I think each
main area of
the
code deserves at least a README to describe what's
possible.
Since
this is the first release there are likely a few
unknowns -
w.r.t
timing I hope/expect to get the release out this in
feb. If
there
are
particular JIRAs or other issues you feel should be
included
please
say. I'd like to rename the current JIRA version 1.0
to 0.1 and
target
issues for 0.1 appropriately and issues not for 0.1
to target a
new
0.2 version. WDYT?
Cheers,
Jeremy
On 18 February 2010 15:39, Joe Bohn
<[email protected]> wrote:
Jeremy,
What are your current thoughts and goals regarding
the release
and
potential
target dates?
I think it would be good if you could summarize
your thoughts
in
an
email
or
perhaps on a page in the wiki that we can keep
updated as we
make
progress.
Of particular interest would be the content that we
would like
to
see
in
the first release (clarifying what we consider
"must have" from
"nice
to
have"), the current status of that content, target
dates for
the
release,
and the process that we plan to use to generate the
release.
Thanks,
Joe
Jeremy Hughes wrote:
On 12 February 2010 09:39, Guillaume Nodet <[email protected]
>
wrote:
Great, thanks a lot. Let us know if you need any
help.
I guess if you take some notes, it would be
interesting to
put
those
on the wiki.
Certainly will. It's been a while since I did one
and the
process
has
changed quite a bit :-)
On Fri, Feb 12, 2010 at 10:32, Jeremy Hughes
<[email protected]>
wrote:
Hi Kevan, thanks. I volunteer to be release
manager.
Jeremy
On 11 February 2010 16:38, Kevan Miller
<[email protected]>
wrote:
Sounds like the consensus is for a release with
all
components
at a
0.1
version number. Best to start with a simple
versioning
scheme,
IMO.
Personally, I don't view a 0.1 blueprint
release as an
issue.
Showing the ability to generate an Apache
release is an
important
step
for the community. Would definitely like to see
this
happen...
We'll need a release manager. Any volunteers?
--kevan
--
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com
--
Joe
--
Joe
--
Joe
--
Joe