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)

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to