John, thanks for working through this. Great suggestions! Anthony
> On Feb 10, 2016, at 8:21 AM, John Blum <[email protected]> wrote: > > Following up... > > I spent a few extra cycles researching the *Apache Geode* dependencies > further. > > Looking at the POM file > <https://repo1.maven.org/maven2/org/apache/geode/gemfire-core/1.0.0-incubating.M1/gemfire-core-1.0.0-incubating.M1.pom> > [0] > (for gemfire-core) for the M1 release of *Apache Geode* in Maven Central, > it appears the Repository declarations were removed (+1). > > However, you still want to clean up the Repository declarations on develop > as much as possible. Certainly, we should remove mavenLocal(), > mavenCentral() and all *Spring repo* declarations (here > <https://github.com/apache/incubator-geode/blob/develop/build.gradle#L46-L52> > [1]). > mavenCentral() is redundant. mavenLocal() is dangerous. And, all *Spring* > dependencies (e.g. *Spring Data GemFire*), at least versions that *Apache > Geode* should depend on (i.e. "GA" versions; or > major.minor.maint.*RELEASE*) are > all available in Maven Central (e.g. here > <http://search.maven.org/#search%7Cga%7C1%7Cspring-data-gemfire> [2]). > > But... > > With respect to *Apache Geode* dependencies, you really have to decide > whether the POM file will be used to "*build* *Apache Geode"*, or rather, > just resolve dependencies required by *Apache Geode* to "*build* and *run* > applications". This is a significant difference, and in most cases, you > want the later, especially since *Apache Geode* already has an elaborate > "build" developed with Gradle. > > So, this means a developer should not see things like "test" dependencies > in the POM resolved from Maven Central (e.g. powermock (yikes), > mockito/jmock or even junit for that matter), especially when the user's > application (test) dependencies may be quite different. > > Even dependencies such as Jetty should not appear (i.e. OPTIONAL) in the > POM, since technically, this is a dependency for other Geode services that > only come into play if the service is enabled (e.g. Management's HTTP > service hosting Pulse or the Management REST API that tunnels *Gfsh* calls > through HTTP rather than JMX RMI). Other good examples include Netty or > MX4J. > > As an example, compare the dependencies defined by *Spring Data GemFire's* > build > <https://github.com/spring-projects/spring-data-gemfire/blob/master/build.gradle#L64-L104> > [3] > as compared to *Spring Data GemFire's* POM > <https://repo1.maven.org/maven2/org/springframework/data/spring-data-gemfire/1.7.2.RELEASE/spring-data-gemfire-1.7.2.RELEASE.pom> > [4] > file. > > In general, the fewer dependencies a user has to pick up in order to build > an application using *Apache Geode*, the better! Often times, developers > concern themselves unnecessarily with JAR file size when it is actually the > number of JAR files that really matters. Moving more towards a more > modular architecture (similar to the core *Spring Framework*) will go a > long ways in helping to control the dependencies at appropriate times and > places. > > Hope this helps clarify my point and the reason for GEODE-27. > > Thanks! > John > > > [0] - > https://repo1.maven.org/maven2/org/apache/geode/gemfire-core/1.0.0-incubating.M1/gemfire-core-1.0.0-incubating.M1.pom > [1] - > https://github.com/apache/incubator-geode/blob/develop/build.gradle#L46-L52 > [2] - http://search.maven.org/#search%7Cga%7C1%7Cspring-data-gemfire > [3] - > https://github.com/spring-projects/spring-data-gemfire/blob/master/build.gradle#L64-L104 > [4] - > https://repo1.maven.org/maven2/org/springframework/data/spring-data-gemfire/1.7.2.RELEASE/spring-data-gemfire-1.7.2.RELEASE.pom > > On Tue, Feb 9, 2016 at 7:23 PM, John Blum <[email protected]> wrote: > >> Technically, GEODE-27 <https://issues.apache.org/jira/browse/GEODE-27> [0] >> was less about the format and more about fixing the POM so it is correct. >> >> Revising my earlier comments (in the JIRA), the repository declarations >> <https://github.com/apache/incubator-geode/blob/develop/build.gradle#L45-L54> >> [1], >> especially if publishing to *Maven Central* should be removed altogether. >> The dependencies needed to be cleaned up so that they are appropriately >> marked as either OPTIONAL, or not, with the appropriate SCOPE (e.g. test, >> runtime, etc) and exclusions to avoid conflicts, etc. >> >> Previously, Geode was pulling in the world and I at least ran into 1 >> conflict while working on the Spring Session GemFire adapter, for which I >> needed to add exclusions... >> >> >> https://github.com/jxblum/spring-session/blob/sgf373-apachegeode/spring-session-data-gemfire/build.gradle#L11-L16 >> >> This may have been cleaned up for the release (1.0.0-incubating.M1), >> though I am not certain since I have not checked recently (well, after the >> release) and have since then moved onto other things. >> >> -John >> >> [0] - https://issues.apache.org/jira/browse/GEODE-27 >> [1] - >> https://github.com/apache/incubator-geode/blob/develop/build.gradle#L45-L54 >> >> >> On Tue, Feb 9, 2016 at 4:03 PM, Dan Smith <[email protected]> wrote: >> >>> This seems like a pretty reasonable list to me. Maybe add in GEODE-818 to >>> M2 as well? GEODE-27 talks about cleaning up the pom, but it's more about >>> fixing the format. GEODE-818 is about removing uneeded dependencies. >>> >>> -Dan >>> >>> On Tue, Feb 9, 2016 at 8:23 AM, Anthony Baker <[email protected]> wrote: >>> >>>> I walked through JIRA this morning. There’s a lot of really interesting >>>> stuff we should consider for M2. However, I think we should err on the >>>> conservative side given that we already have a lot of work in flight >>> (e.g. >>>> Pulse, Modules, WAN, CQ, etc) and we don’t want to run too long before >>> our >>>> next release. Given the new code additions, I would expect 2-3 RC’s >>> will >>>> be needed. >>>> >>>> I’ve grouped and stack ranked the tickets that seem relevant to M2 >>> below. >>>> This is just IMO and I would appreciate community input on this. >>>> >>>> Tests: >>>> GEODE-944 (Test failure when ISP intercepts DNS failure) >>>> RC2 test failures from Brian Dunlap [1] >>>> ----- ^ M2 ^ ----- >>>> >>>> Security: >>>> GEODE-562 (Remove or upgrade commons-collections) >>>> ----- ^ M2 ^ ----- >>>> >>>> IP: >>>> GEODE-906 (Cleanup source headers) >>>> GEODE-905 (Source headers) >>>> GEODE-901 (Source headers) >>>> GEODE-907 (Remove JSON code from pulse) >>>> GEODE-903 (Copyright date on footer) >>>> GEODE-914 (NOTICE) >>>> GEODE-904 (LICENSE) >>>> GEODE-918 (Add license header to generated pom) >>>> ----- ^ M2 ^ ----- v M3 v ----- >>>> GEODE-835 (remove gemfire-joptsimple) >>>> GEODE-629 (JSON parser) >>>> GEODE-868 (Autogenerate NOTICE) >>>> >>>> Maven: >>>> GEODE-26 (remove mavenLocal) >>>> GEODE-917 (rename artifacts to geode) >>>> GEODE-27 (Maven POM) >>>> GEODE-946 (maven artifacts) >>>> ----- ^ M2 ^ ----- v M3 v ----- >>>> GEODE-919 (Don’t checksum signature files) >>>> >>>> Docs: >>>> GEODE-945 (Javadoc warning) >>>> GEODE-54 (javadocs) >>>> GEODE-887 (README) >>>> GEODE-884 (README) >>>> GEODE-876 (Add README to binary distro) >>>> GEODE-874 (COMPILING / RUNNING) >>>> ----- ^ M2 ^ ----- v M3 v ----- >>>> GEODE-33 (example code) >>>> >>>> Other: >>>> GEODE-12 (Pulse) >>>> ----- ^ M2 ^ ----- v M3 v ----- >>>> GEODE-25 (crypto audit) >>>> GEODE-786 (Update SDG to 1.7.2) >>>> GEODE-543 (Upgrade jline and spring shell) >>>> GEODE-57 (Update library versions) >>>> GEODE-52 (@author) >>>> GEODE-37 (package renaming) >>>> GEODE-36 (Rename gfsh) >>>> >>>> >>>> Anthony >>>> >>>> [1] >>>> >>> http://mail-archives.apache.org/mod_mbox/incubator-geode-dev/201601.mbox/%3ccafdh8_1cuvs36a7yppjod9b4k1cip_p8kepkxn+wbxe4kzq...@mail.gmail.com%3e >>>> >>>> >>>>> On Feb 5, 2016, at 3:39 PM, Nitin Lamba <[email protected]> wrote: >>>>> >>>>> Thanks Dan! >>>>> We should perhaps discuss this topic in detail during our next Geode >>>> Clubhouse. >>>>> >>>>> @Mike, agree 100% with your prioritization though WAN and CQ have >>>> already been merged with develop. So unless any testing/ performance >>> issues >>>> pop-up, we'll get those included as part of the next milestone release >>>> automatically. >>>>> >>>>> - Nitin >>>>> >>>>> ________________________________________ >>>>> From: Dan Smith <[email protected]> >>>>> Sent: Thursday, February 4, 2016 1:46 PM >>>>> To: geode >>>>> Subject: Re: [DISCUSS] Next Release Scope - version >>> 1.0.0-incubating.M2 >>>>> >>>>> I added the bugs listed above, and a some others, to the M2 wiki page >>> so >>>> we >>>>> don't lose track of them. We can discuss if some of these need to get >>>>> pushed out of M2. >>>>> >>>>> I also created some subtasks for GEODE-823. >>>>> >>>>> On Mon, Feb 1, 2016 at 7:09 AM, Michael Stolz <[email protected]> >>> wrote: >>>>> >>>>>> I'd like to see the focus on docs and dependencies first. >>>>>> Then incorporation of WAN and CQ features. >>>>>> >>>>>> -- >>>>>> Mike Stolz >>>>>> Principal Engineer, GemFire Product Manager >>>>>> Mobile: 631-835-4771 >>>>>> >>>>>> On Fri, Jan 29, 2016 at 12:26 PM, Nitin Lamba <[email protected]> >>> wrote: >>>>>> >>>>>>> Thought of starting a separate thread to discuss next release >>> scope. So >>>>>>> far we have the following suggestions: >>>>>>> >>>>>>> Dan: >>>>>>> - GEODE-823 - remove gemfire-joptsimple, gemfire-json, rename to >>>> geode-, >>>>>>> other misc issues >>>>>>> - GEODE-818 - clean up dependencies >>>>>>> - GEODE-572 - generate public javadocs (part of GEODE-54) >>>>>>> - GEODE-33 - create project examples >>>>>>> >>>>>>> John: >>>>>>> - GEODE-27 - fix POM dependencies - related to RC feedback above >>>>>>> (GEODE-818) >>>>>>> >>>>>>> Few left-over from prior discussions: >>>>>>> >>>>>>> - GEODE-386 - fixing xsd namespace to Apache >>>>>>> - GEODE-36 - fixing gfsh cli (Removing GemFire references) >>>>>>> - GEODE-37 - package re-naming >>>>>>> >>>>>>> Some of these are big ticket items so we may have to space these out >>>>>>> across Milestones. >>>>>>> >>>>>>> ACTION: Please suggest on this thread OR edit the wiki page[1] so >>> that >>>>>>> JIRA [2] can be prioritized accordingly. >>>>>>> >>>>>>> Thanks, >>>>>>> Nitin >>>>>>> >>>>>>> [1] >>>>>>> >>>>>> >>>> >>> https://cwiki.apache.org/confluence/display/GEODE/1.0.0-incubating.M2+%28Second%29+Release >>>>>>> [2] >>>>>>> >>>>>> >>>> >>> https://issues.apache.org/jira/secure/RapidBoard.jspa?rapidView=92&view=planning >>>>>>> >>>>>>> >>>>>> >>>> >>>> >>> >> >> >> >> -- >> -John >> 503-504-8657 >> john.blum10101 (skype) >> > > > > -- > -John > 503-504-8657 > john.blum10101 (skype)
signature.asc
Description: Message signed with OpenPGP using GPGMail
