Wouldn't these certified objectstore/viewer combos be called "assemblies"
(maven), "distributions" or "distros" (geeks & me) or "editions"
(marketeze), then?  Like, "Isis: JDO/Wicket Edition" and "Isis:
NoSQL/Scimpi Edition", etc.

Maven profiles could be used along with maven-assembly-plugin to produce
the editions, and there would be a one-to-one relationship between Maven
profile and edition.

-matthew


On Thu, Nov 29, 2012 at 8:36 AM, Dan Haywood
<[email protected]>wrote:

> This discussion post is mostly to the contributors, but cc:ing to user list
> for opinions also...
>
> ~~~
>
> At the moment it's a daunting task to fully verify all the components of
> the framework are working correctly prior to pushing out a release. I
> suppose that wouldn't be so much of a concern if we had better automated
> tests, but, hey, that's how things are.
>
> Moreover, frankly, some of the modules are best considered spikes and
> probably don't constitute something that we would consider
> production-ready. Or, at least, they haven't been used in a real-world
> context, so it's not possible to say whether they are really
> fit-for-purpose. I include here quite a lot of the stuff that I have worked
> on over the last few years, eg the wrapper-progmodel, the groovy progmodel,
> probably also the JUnit viewer and BDD viewer. Now that we are a top-level
> project, I'd like it that the code we put out is thought of as production
> ready.
>
> In order to make the framework easier to release, I propose that we use
> Maven profiles to be able to release subsets of modules, that a given
> contributor can stand behind and say: "yes, those modules are working and
> are fit for general consumption". Each release would consist of the certain
> core modules, along with selected additional viewers and object stores.
>
> For example, over time we might end up releasing:
>
> * v0.3.1 core + objectstore-jdo + viewer-wicket + viewer-restfulobjects
>  // a "wicket/jdo release" - eg tested and released by Dan
>
> * v0.4.0 core + objectstore-nosql + viewer-scimpi     // a "scimpi/nosql
> release" - eg tested and released by Rob
>
> * v0.5.0 core + objectstore-dflt + objectstore-xml + viewer-dnd     // a
> "dev env release" - eg tested and released by Rob
>
> * v0.6.0 core + objectstore-jdo + viewer-wicket + viewer-restfulobjects
> // another "wicket/jdo release"
>
> * v0.7.0 core + objectstore-sql + viewer-html     // a "html/sql release" -
> eg tested and released by Kevin
>
> * v0.8.0 core + objectstore-jdo + viewer-wicket + viewer-restfulobjects
> // another "wicket/jdo release"
>
> Whenever a release goes out, we would update our website to indicate the
> most recent version of the components.
>
> Now, when I say "release", what I actually mean here is the deployment of
> binary artifacts up to the Maven central repo. This, after all, is what
> most users/would-be users in the community would use and consider a
> release. However, Apache's own formal definition of "release" is actually
> the source code release ... this is what the [VOTE] mechanism is for. I
> don't see this changing... the vote basically says that the software
> complies with all the legal license stuff etc. The whole codebase is tagged
> with that release number, and the generated src.zip is a zip of this
> release.
>
> One benefit of this is that it allows the deployment of other modules to be
> performed "after the fact". For example, suppose that I (Dan) puts out the
> v0.3.1 release as above, and then Rob later on tests the scimpi viewer in
> that tag and finds it works well. He can (I think) push the release of the
> scimpi viewer up to Maven central repo.
>
> As I see things there are several benefits to this scheme:
>
> a) (as already noted) the user community will only see binary releases that
> are known to be of production ready. This should mitigate the "is it safe
> to use this component" worry
> b) (as hinted at) it should be possible for individual contributors to put
> out releases of their modules more rapidly
> c) we get visibility of which modules aren't being released; for example,
> we might say that if a module hasn't been released by anyone for 18 or 24
> months, say, then it's probably time to remove it from the codebase.
>
> ~~~
>
> In order to support the above scheme, I propose that we rearrange some of
> the modules so that they can be more easily included within Maven
> modules.  I've
> created a page on our wiki [1] which shows my proposed rearrangement.  It
> also repeats the above discussion text by way of context.
>
>
> Opinions welcome!
>
> Thx
>
> Dan
>
>
> [1]
>
> https://cwiki.apache.org/confluence/display/ISIS/Make+releases+easier+and+more+frequent
>



-- 
mailto:[email protected] <[email protected]>
skype:matthewadams12
googletalk:[email protected]
http://matthewadams.me
http://www.linkedin.com/in/matthewadams

Reply via email to