Dan

1. A quick look at Eclipse and I'm struggling to see any seemingly random placing. All my components are together and so on. What I do have though is very long names as the group ids are also showing. This is set up in the Eclipse plug-in settings. That said I'd rather have shorter project names, and after making the change to shorter name everything is all over the place. I'm happy with the proposed naming convention as I prefer the benefit of the ordering. That said, the core modules will still appear randomly.

2 & 3. My previous expectations were that the core would be released at a particular point and the components would then be released independently to work against the core, and would probably be re-released again against the same core as they get improved. So the components would evolve more quickly than the core and the core would be improved in the background. (Although isolated fixes to the core would be made without causing the components any concern.)

WRT the parenting, are we expecting the core modules to stay in step - all released each time - or will specific modules be release as they needed? An alternative strategy to the two options you suggested would be for the parent pom to be released as part of the core, that way it would always be ready for the components. Generally, though, I'm still trying to get my head around how this could/would/should work. Maybe a skype call, were share our thoughts, might be worth while at this stage.

3. Such numbering makes a lot of sense. And as you say a large number is just a large number.

Regards

Rob




On 12/10/12 20:17, Dan Haywood wrote:
All,

Following on from the previous discussion thread relating to renaming of
artifacts etc, I've been doing some further work on the release process, up
to and including have now pushed our isis-core up to the Nexus staging
repo.  Won't be calling a vote, just wanted to see if it all worked using
git (which it does, after a few modifications).

Anyway, we have a few alternatives in some of the detail; if you have an
opinion on any of this, please respond...


1. artifactId names: eg isis-jdo-objectstore vs isis-objectstore-jdo

This point came up in the previous thread, and at the time I was ambivalent
as to which way we went on it.  Now, though, I think we should use the
"reverse polish notation", ie "isis-objectstore-jdo".

The reason is mostly this: if a developer imports the entire project from
the root aggregator pom (oai:isis-all) into Eclipse, then the project name
will (by default at least) be based on the artifactId.  This means that
artifacts appear pretty randomly in the Eclipse workspace.

Of course, the same argument applies if listing a directory, eg ls
WEB-INF/lib.

Opinions?


2. Should our releasable modules (core and each of the 20-ish components)
have a separate org.apache.isis:isis-parent as their parent (which defines
the maven-release-plugin configuration etc), or should they all use
org.apache.isis.core:isis as their parent.

The benefit of the former (and the code is mostly organized this way) is
that, well, it seems to follow what many other maven projects do.  But the
downside is that we would need to release this isis-parent artifact first,
and we might tend to forget about it and not update it.

The benefit of the latter is we will always re-release it whenever there is
a new release of core, and - as a bonus - all the child modules will
inherit version definitions by way of <dependencyManagement>.

Put another way: do we think that the lifecycle of our release process
itself  be decoupled from the lifecycle of releases of Isis core?  If yes,
we should have a separate org.apache.isis:isis-parent.  If no, we should
just use org.apache.isis.core:isis as the parent of all releasable modules.

Opinions?


3. What should our version numbers be?

This is quite a big one, possibly worth its own thread, but I was wondering
if we should adopt semantic versioning [1].  Thus, this first release will
be v1.0.0 of the core; any bug fixes would be 1.0.1, 1.0.2, any backwardly
compatible enhancements (to the APIs) would be 1.1.0, 1.2.0, any breaking
changes to the APIs would be 2.0.0, 3.0.0, etc.

There's an argument that things aren't quite stable enough in core to do
this; the counter argument is that they are just numbers; if we end up with
isis-core v 12.0.0 in two years time because of a succession of breaking
API changes, so what?

Opinions?


Thanks
Dan

PS: fyi, I'm hoping to be in a position to put a release out of isis core
for voting by the end of this week or beginning of next, latest.


[1] http://semver.org.


Reply via email to