If the general consensus is that we don't need to worry about having release dependencies buildable using JDK7 then I'm happy to just do releases for parent, util, blueprint-core and blueprint bundle (being the things we actually want to release right now). It's definitely a lot less work.
Tim Ward ------------------- Apache Aries PMC member & Enterprise OSGi advocate Enterprise OSGi in Action (http://www.manning.com/cummins) ------------------- > Date: Tue, 7 May 2013 16:33:49 +0100 > Subject: Re: [CANCELLED] [VOTE] Apache Aries release parent-1.1.0 > From: holly.k.cumm...@googlemail.com > To: dev@aries.apache.org > > Hi Tim, > > Thanks for the comments. I think I understand the scenario you're trying to > support better. I've trimmed context and added further comments inline ... > > > > Our maven build very deliberately always depends on 'minimum required' > > > released versions, unless there's a functional requirement for a snapshot > > > dependency. > > > > This is true. > > > > > So if we want to release util, and util depends on testsupport, > > > my understanding is that the new Java-7 compatible util will have a > > > dependency on the old non-Java-7-compatible testsupport. > > > > I believe that this is the currently open question. We could do it this > > way, but it prevents you being able to do an end to end source build with > > JDK 7. > > > > I think this is only slightly true. :) We probably want to clarify what our > goal is, and what we mean by end to end builds for a heavily modularised > project. At the moment, I'd argue you can't really do an end to end source > build of Aries full stop, no matter what JDK you're using. Obviously, at > the moment, you can check trunk out, and build it, and that will work (as > long as you're not using Java 7). If we switch to using the > java-7-compatible-java5-parent, you'll be able to check trunk out, build it > using either Java 6 or Java 7, and have everything work. > > So what's missing? Well, in both scenarios, you didn't build all of the > bundles you're using from source. All of the bundles you built have > snapshot versions. Many of these snapshot bundles depend on released > bundles, and you haven't built these bundles - maven just automagically > pulled them into the maven repo for you. So in your local repo, for most > bundles, you'll have a version you built, and another version that you're > actually using. So what if you want to build them yourself? No problem, you > can go find the source associated with the level maven pulled down, build > it locally, and then the version in your maven repo will have been built > locally by you. The limitation we currently have is that you can't rebuild > these already-released bundles using Java 7. I think this is a reasonable > limitation. After all, these bundles may also fail to build with Java 8 or > Java 9 - they're historical artefacts and they have limitations because of > the context in which they were originally created. > > What I think you're proposing, Tim, is to re-release things so that the > conscientious would have the capability to rebuild dependencies from > source, for the currently released levels. Since this wouldn't fix the > historical releases, I do think the use case for it is small; consumers > like Karaf would most likely still be using the older releases, so we > wouldn't be helping them rebuild from source on Java 7. I also suspect the > cross-over between people who're obsessive enough to rebuild released > artefacts from source and people who need to be able to build using Java 7 > is small. :) (On the other hand, maybe generating Java-7-built artefacts > is one of the main use cases for rebuilding released artefacts from > source??) > > I guess the other scenario for rebuilding everything from source with Java > 7 is to verify that Java7-built-bundles do actually work, but I think this > use case is covered by the snapshot-dependencies build. > > > > > > > If we wanted to > > > build the old Java-7-incompatible testsupport from source, rather than > > just > > > pulling the released version into our local Maven repo, we could still do > > > that. We'd download the old testsupport source, and build it, and it > > would > > > build ok, because the old testsupport would depend on the the old > > > java5-parent. > > > > This would not work with JDK 7 because it uses the old java5-parent. This > > is why I'm saying that it wouldn't be possible to do an end-to-end source > > build using JDK7 unless we re-release dependencies with this update. > > > > You're right, we'd have to build it with Java 6, but I think this is a > reasonable limitation for a historical artefact, given that we can never > actually *fix* the old artefacts, only supercede them. > > > > > > > So in the scenario where you started with a clean maven repo > > > and built the 'current' util release and its dependencies, from source, > > > your maven repo at the end would contain a new and and an old version of > > > java5-parent, but everything you tried to build would have built > > > successfully. (I think!) > > > > > > As I say above, this is only possible if you don't use JDK7 for at least > > some part of the build. > > > > > > > > > If we want to check everything works end to end with the current > > versions, > > > we'd use the build-with-snapshot-dependencies build. This build verifies > > > that the 'current' util builds and runs fine with the 'current' > > > testsupport. (This happens automatically in the nightly build.) > > > > > > I actually think I'm very lost about what we're trying to achieve. If we > > > did release both util and testsupport (say), what minimum version of > > > testsupport would new util depend on? My assumption is that 'new' until > > > would 'depend' on and require new testsupport, even though new > > testsupport > > > is actually binary-compatible with old testsupport? (Otherwise we > > wouldn't > > > bother re-releasing new testsupport, if it wasn't actually required.) But > > > if the built archives of new testsupport are binary-compatible with the > > old > > > testsupport, it seems semantically wrong to me that we'd prevent the new > > > util bundle from resolving against the old testsupport bundle. > > > > > > I see what you're getting at, but I think that you're conflating the > > versions of the maven artifacts with the versions of the packages that end > > up in the manifests. Changes in > > > You're right, I am. :) > > > > versions of the released modules don't necessarily imply that the versions > > of any packages have changed. If we look, for example, at proxy-api, the > > new maven module will have exactly the same exported packages at exactly > > the same versions. > > So for the example you have given, the new util bundle would resolve with > > either the new or old test support. The same is true of everything I have > > found so far (e.g blueprint's dependency on proxy-api). We can safely > > ignore micro version number changes because we configure the maven bundle > > plugin (in default-parent) not to use them when generating imports. > > > > My assumption was that there were probably at least a few places where we'd > updated a package version without bumping the maven dependency level of all > consumers. If there any of those places, we'd be incorrectly increasing the > minimum package import. However, I didn't actually check that, and I guess > it hasn't been that long since we moved to 1.0.0, so maybe none of the API > packages have had 'stealth' version changes. If so, you're right that > nothing would change semantically. In this case my point about effort still > stands, but not my point about any semantic incorrectness. > > I'm also not sure that supporting the use case where people pull down the > source for every bundle and build it for the current release (but not any > earlier releases) on Java 7 is worth the disruption to the build that a > mass non-incremental release would cause. I think people building from > trunk is probably the more common scenario to support, even if the > disruption is only for a few weeks. Others may have different views! > > > > > > > > > Because the maven dependencies directly impact the minimum OSGi import > > > ranges, doing a mass-adjustment of the dependency levels and a > > mass-release > > > could actually be semantically incorrect and counter-productive, rather > > > than just time-consuming. > > > > I would prefer not to have to do a mass release too, and I agree that we > > need to be careful, but so far I've found nothing that would create a > > different manifest (other than a bump to the micro version of the bundle). > > Do you have an example of something that would be changed? > > > > No, so I suspect you're right that my concern may have been theoretical > rather than something we'd actually see. > > Holly > > > > > > > > What I'd prefer to see is an update of all the 'current' snapshot POMs to > > > depend on the freshly released java5-parent, but no mass adjustment of > > our > > > carefully crafted minimum dependency levels. However, I assume I'm > > missing > > > something! Does the java7 compatibility affect the binary compatibility > > of > > > the built archives? > > > > > > We could do this, but it will mean that you can't build all Aries modules > > completely from source using JDK7. If we're happy to tell people that they > > have to use JDK6 for parts of the dependency tree then this would be an > > option. > > > > > > > > > > > Holly > > > > > > > > > > > > On Tue, May 7, 2013 at 11:07 AM, Timothy Ward <timothyjw...@apache.org > > >wrote: > > > > > > > Hi Jeremy, > > > > Changing the version of the maven-compiler plugin really needs to be > > done > > > > in default-parent (which is where we define most of the top-level > > compiler > > > > config). This new version of default-parent then needs to be the > > parent of > > > > new versions of java5-parent and java6-parent. > > > > Assuming we want people to be able to do end-to-end source builds using > > > > JDK7 then we need to update each Aries module to use these new parent > > poms, > > > > but importantly we also need to update the aries internal dependencies > > to > > > > be ones that can be built using JDK7. > > > > Take util as an example. > > > > util depends on java5-parent (as its parent pom), and on > > > > org.apache.aries.testsupport.unit. It also depends on osgi core and > > > > compendium. > > > > In order to do a full source build for util you need to: > > > > a) build osgi core and compendium from source and install them into > > your > > > > maven repob) build java5-parentc) build aries test supportd) build util > > > > If we were only to release things on an as/when basis (e.g. we have > > some > > > > util fixes we need to push out), then we would release the new > > > > java5-parent, update util to use the new parent, and release it. This > > would > > > > work, but it wouldn't be possible to use JDK7 for a full source build > > of > > > > util (the current testsupport dependency doesn't build using JDK7). > > > > In order to flush through all of these dependencies we need to > > re-release > > > > everything and update dependency versions as we go. For me it's quite > > > > important that you can do a full rebuild from source, hence I feel we > > need > > > > to do the leg-work and fix the JDK7 build issue properly, rather than > > > > outputting releases that can only partially be built using JDK7. > > > > I realise that this probably isn't the way most people think about > > > > releases, but I believe it is the way Apache thinks about them. That's > > why > > > > the release votes are primarily about verifying what's in the source > > zips. > > > > Tim Ward > > > > ------------------- > > > > Apache Aries PMC member & Enterprise OSGi advocate > > > > Enterprise OSGi in Action (http://www.manning.com/cummins) > > > > ------------------- > > > > > > > > > > > > > From: jpjhug...@gmail.com > > > > > Date: Tue, 7 May 2013 09:19:35 +0100 > > > > > Subject: Re: [CANCELLED] [VOTE] Apache Aries release parent-1.1.0 > > > > > To: dev@aries.apache.org > > > > > > > > > > Hi Tim, > > > > > > > > > > On 6 May 2013 20:42, Timothy Ward <timothyjw...@apache.org> wrote: > > > > > > General consensus is that we should upgrade the > > maven-compiler-plugin > > > > to 3.1. > > > > > > I will start to ripple changes through trunk so that it is > > possible to > > > > build everything from source using JDK 7. This will mean that > > *everything* > > > > has to be re-released (much like when we did 1.0.0). > > > > > > > > > > You might be right but can you explain why? Can't we change the > > > > > version of the referenced parent pom as necessary. Is using v3.1 of > > > > > the maven-compiler-plugin an all or nothing situation for the whole > > of > > > > > trunk? > > > > > > > > > > > I'm volunteering to do changes and releases for most of the "base" > > > > modules, namely: > > > > > > parent > > > > > > testsupportutilproxyjndiblueprint > > > > > > As I'm doing this in my spare time I may need somebody to take over > > > > for a while after that. > > > > > > I know that it will be a bit disruptive to trunk, but the release > > > > cycle will be much faster if we do projects in batches. This will mean > > that > > > > some projects won't build when checked out from trunk for the duration > > of > > > > the release vote (only the ones in that release that depend on other > > things > > > > being released at the same time). > > > > > > I know that releasing from branches is another possibility, but > > we've > > > > been asked not to do that again because of the problems we caused in > > the > > > > git mirroring. > > > > > > Are people prepared to put up with some disruption to save several > > > > weeks of release voting? > > > > > > > > > > > > Tim Ward > > > > > > ------------------- > > > > > > Apache Aries PMC member & Enterprise OSGi advocate > > > > > > Enterprise OSGi in Action (http://www.manning.com/cummins) > > > > > > ------------------- > > > > > > > > > > > > > > > > > >> From: david.bosscha...@gmail.com > > > > > >> Date: Mon, 6 May 2013 15:51:22 +0100 > > > > > >> Subject: Re: [VOTE] Apache Aries release parent-1.1.0 > > > > > >> To: dev@aries.apache.org > > > > > >> > > > > > >> +1 from me too. > > > > > >> > > > > > >> David > > > > > >> > > > > > >> > > > > > >> On 4 May 2013 05:29, Tang Yong <tangy...@cn.fujitsu.com> wrote: > > > > > >> > > > > > >> > forgot to say about vote, > > > > > >> > > > > > > >> > +1(updating maven-compiler-plugin to 3.1) > > > > > >> > > > > > > >> > Thanks > > > > > >> > --Tang > > > > > >> > > > > > > >> > Tang Yong wrote: > > > > > >> > >> 2) updating org.osgi.core to 4.3.1 because of an issue using > > jdk7 > > > > > >> > > about the point, if updating org.osgi.core to 5.0.0, building > > is > > > > also OK. > > > > > >> > > > > > > > >> > > Thanks > > > > > >> > > --Tang > > > > > >> > > > > > > > >> > > Tang Yong wrote: > > > > > >> > >> Tim,John, > > > > > >> > >> > > > > > >> > >>> I will try to build the whole aries project and see what > > will > > > > happen. > > > > > >> > >> I have commented on ARIES-1006, and finally, I built the > > whole > > > > project > > > > > >> > >> successfully using jdk7. > > > > > >> > >> > > > > > >> > >> In summary, in order to build using jdk7, > > > > > >> > >> > > > > > >> > >> 1) updating maven-compiler-plugin to 3.1 > > > > > >> > >> 2) updating org.osgi.core to 4.3.1 because of an issue using > > jdk7 > > > > > >> > >> pl. seeing > > > > > >> > http://blog.osgi.org/2012/10/43-companion-code-for-java-7.html > > > > > >> > >> > > > > > >> > >> 3) Since jdk7, some java core classes added some new apis, > > > > > >> > >> eg.javax.sql.CommonDataSource, this has effect on aries jpa > > > > module. > > > > > >> > >> So, needing to implement these new apis by simply > > implementing > > > > these > > > > > >> > >> apis if having not more complex logic. > > > > > >> > >> > > > > > >> > >> Thanks > > > > > >> > >> --Tang > > > > > >> > >> > > > > > >> > >> Tang Yong wrote: > > > > > >> > >>> John, Tim, > > > > > >> > >>> > > > > > >> > >>> I made a confirmation by specifying version 3.1 (latest > > > > release) of the > > > > > >> > >>> maven-compiler-plugin in parent/default-parent/pom.xml, and > > both > > > > > >> > >>> subsystem-core and util are built successfully. > > > > > >> > >>> > > > > > >> > >>> John, whether you have modified util/util/pom.xml liking > > > > following, > > > > > >> > >>> > > > > > >> > >>> <parent> > > > > > >> > >>> <groupId>org.apache.aries</groupId> > > > > > >> > >>> <artifactId>java5-parent</artifactId> > > > > > >> > >>> <version>1.1.1-SNAPSHOT</version> > > > > > >> > >>> <relativePath /> > > > > > >> > >>> </parent> > > > > > >> > >>> > > > > > >> > >>> BTW: I suggest util/util and util/util-r42's parent pom is > > set > > > > as > > > > > >> > >>> util/pom rather than java5-parent. > > > > > >> > >>> > > > > > >> > >>> I will try to build the whole aries project and see what > > will > > > > happen. > > > > > >> > >>> > > > > > >> > >>> Thanks > > > > > >> > >>> --Tang > > > > > >> > >>> > > > > > >> > >>> John W Ross wrote: > > > > > >> > >>>> Specifying version 3.1 (latest release) of the > > > > maven-compiler-plugin > > > > > >> > in > > > > > >> > >>>> parent/default-parent/pom.xml fixes the subsystem-core > > build > > > > issue on > > > > > >> > java > > > > > >> > >>>> 7 (jdk1.7.0_21). I suspect it will also fix the same > > issue, and > > > > > >> > perhaps > > > > > >> > >>>> others, for other projects. > > > > > >> > >>>> > > > > > >> > >>>> Unfortunately, this does not fix the issue in util. An > > > > explicit cast > > > > > >> > to > > > > > >> > >>>> BundleWiring is still needed in the R43Worker class. The > > > > 3.2-SNAPSHOT > > > > > >> > >>>> version of maven-compiler-plugin has the same issue. So it > > > > looks like > > > > > >> > >>>> proceeding with this vote may be the only option for util. > > > > > >> > >>>> > > > > > >> > >>>> John > > > > > >> > >>>> > > > > > >> > >>>>> RE: [VOTE] Apache Aries release parent-1.1.0 > > > > > >> > >>>>> > > > > > >> > >>>>> +1 for upgrading the maven-compiler-plugin > > > > > >> > >>>>> > > > > > >> > >>>>> I've been trying to build using maven-compiler-plugin 3.1 > > as > > > > an > > > > > >> > exercise > > > > > >> > >>>>> for the past hour but can't figure out how to get it to > > stop > > > > using > > > > > >> > 2.0.2. > > > > > >> > >>>>> > > > > > >> > >>>>> John > > > > > >> > >>>>> > > > > > >> > >>>>>> RE: [VOTE] Apache Aries release parent-1.1.0 > > > > > >> > >>>>>> > > > > > >> > >>>>>> After doing some further digging I've found we're using a > > > > very old > > > > > >> > >>>>>> (2.0.2) version of the maven-compiler-plugin. This is > > over 6 > > > > years > > > > > >> > >>>>>> old and predates Java 7. Apparently nobody (including me) > > > > thought to > > > > > >> > >>>>>> try upgrading it. > > > > > >> > >>>>>> The release we have here does work, in that it prevents a > > > > compiler > > > > > >> > >>>>>> warning that was being interpreted as an error. On the > > other > > > > hand > > > > > >> > >>>>>> there are still other warnings that break the build. I'm > > > > happy do do > > > > > >> > >>>>>> some rework/respin upgrading the maven-compiler plugin, > > or > > > > to go > > > > > >> > >>>>>> with the solution we have. > > > > > >> > >>>>>> Tim Ward > > > > > >> > >>>>>> ------------------- > > > > > >> > >>>>>> Apache Aries PMC member & Enterprise OSGi advocate > > > > > >> > >>>>>> Enterprise OSGi in Action ( > > http://www.manning.com/cummins) > > > > > >> > >>>>>> ------------------- > > > > > >> > >>>>>> > > > > > >> > >>>>>> > > > > > >> > >>>>>>> Date: Fri, 3 May 2013 23:44:55 +0900 > > > > > >> > >>>>>>> From: tangy...@cn.fujitsu.com > > > > > >> > >>>>>>> To: dev@aries.apache.org > > > > > >> > >>>>>>> Subject: Re: [VOTE] Apache Aries release parent-1.1.0 > > > > > >> > >>>>>>> > > > > > >> > >>>>>>> after confirming poms, +1 > > > > > >> > >>>>>>> > > > > > >> > >>>>>>> Timothy Ward wrote: > > > > > >> > >>>>>>>> This is a vote for the release of the aries parent > > poms at > > > > > >> > >>>>>> version 1.1.0. This is a significant fix, and is the > > first > > > > step in > > > > > >> > >>>>>> getting Aries building properly with JDK 7. Individual > > > > projects will > > > > > >> > >>>>>> need to be updated to use these poms before they can be > > > > successfully > > > > > >> > >>>>>> built using Java 7. > > > > > >> > >>>>>>>> The staging area is available here: https:// > > > > > >> > >>>>>> > > > > repository.apache.org/content/repositories/orgapachearies-167/ > > > > > >> > >>>>>>>> Tags: > > > > https://svn.apache.org/repos/asf/aries/tags/parent-1.1.0 > > > > > >> > >>>>>>>> > > > > > >> > >>>>>>>> > > > > > >> > >>>>>>>> Note that this project only contains poms. Please > > verify > > > > the > > > > > >> > >>>>>> source release for parent and the pom files for > > > > default-parent, > > > > > >> > >>>>>> java5-parent and java6-parent > > > > > >> > >>>>>>>> This vote will remain open for at least 72 hours. > > > > > >> > >>>>>>>> > > > > > >> > >>>>>>>> > > > > > >> > >>>>>>>> Tim Ward > > > > > >> > >>>>>>>> ------------------- > > > > > >> > >>>>>>>> Apache Aries PMC member & Enterprise OSGi advocate > > > > > >> > >>>>>>>> Enterprise OSGi in Action ( > > http://www.manning.com/cummins) > > > > > >> > >>>>>>>> ------------------- > > > > > >> > >>>>>>>> > > > > > >> > >>>>>>> -- > > > > > >> > >>>>>>> −−−−−−−−−−−−−−−−−−−−−− > > > > > >> > >>>>>>> Tang Yong > > > > > >> > >>>>>>> Senior Engineer > > > > > >> > >>>>>>> Glassfish Team Developer(OSGi&OSGi-JavaEE) > > > > > >> > >>>>>>> OSGi Alliance Supporter > > > > > >> > >>>>>>> Blog: http://osgizone.typepad.com/tangyong/ > > > > > >> > >>>>>>> > > > > > >> > >>>>>>> Nanjing Fujitsu NanDa Software Tec CO.,LTD > > > > > >> > >>>>>>> http://www.fujitsu.com/cn/fnst > > > > > >> > >>>>>>> Tel: +86-25-86630566-8310 > > > > > >> > >>>>>>> Fax: +86-25-83317685 > > > > > >> > >>>>>>> −−−−−−−−−−−−−−−−−−−−−− > > > > > >> > >>>>>>> > > > > > >> > > > > > > > >> > > > > > > >> > -- > > > > > >> > −−−−−−−−−−−−−−−−−−−−−− > > > > > >> > Tang Yong > > > > > >> > Senior Engineer > > > > > >> > Glassfish Team Developer(OSGi&OSGi-JavaEE) > > > > > >> > OSGi Alliance Supporter > > > > > >> > Blog: http://osgizone.typepad.com/tangyong/ > > > > > >> > > > > > > >> > Nanjing Fujitsu NanDa Software Tec CO.,LTD > > > > > >> > http://www.fujitsu.com/cn/fnst > > > > > >> > Tel: +86-25-86630566-8310 > > > > > >> > Fax: +86-25-83317685 > > > > > >> > −−−−−−−−−−−−−−−−−−−−−− > > > > > >> > > > > > > >> > > > > > > > > > > > > > > > > > > >