Hi Everyone,

Thank you all for your support and kinds words. This is truly a wonderful
atmosphere and I am lucky, honoured, and privileged to work with you all on
this project.

My patch is almost done, but definitely there is a lot of work to be done
which includes the following:
- I have one failing test out of 889 that I need to dig through, maybe you
guy can help
- I want to change / delete / add some tasks
- Documentation needs to be updated in multiple areas
- Testing, testing, testing, testing, testing, testing, testing, testing,
testing

So the plan of action is as follows:
- I will continue the discussion on this thread for a few questions that I
need an answer for.
- I will issue a JIRA to hold the patch and everything else

Please consider helping, this is something that definitely needs a team,
more than one brain! If you are working on something not urgent, please
consider dropping it for a while and jump along for help.

I will post another email soon with the JIRA details and list of questions
I need answer for.

Again, thank you, you guys rock, I love OFBiz and this community!

Regards,

Taher Alkhateeb



On Tue, Jun 21, 2016 at 12:49 PM, Nicolas Malin <[email protected]>
wrote:

> I'm in over for these technical aspects but the motivation and enthusiasm
> for many PMC and commiter tells me that seems a good way.
>
> So now I will learn gradle ;) and I'm in favor to realize this change
> directly on trunk
>
> Thks Taher to your engine energy on this subject !
>
> Nicolas
>
>
>
> Le 21/06/2016 10:43, Jacques Le Roux a écrit :
>
>> As Gavin mentioned, Gradle can run Ant so no worries using only Gradle
>>
>> https://docs.gradle.org/current/userguide/ant.html
>>
>> Jacques
>>
>>
>> Le 21/06/2016 à 09:59, Michael Brohl a écrit :
>>
>>> I have no strong opinion for/against Gradle (I simply have no experience
>>> with it) but I agree that it should be either Ant or Gradle.
>>> Running two build tools in parallel would make it too complex an gain
>>> nothing.
>>>
>>> I'm in favor for learning new things so Gradle sounds fine for me :-)
>>>
>>> Regards,
>>>
>>> Michael
>>>
>>>
>>> Am 21.06.16 um 08:11 schrieb Taher Alkhateeb:
>>>
>>>> Hi Deepak,
>>>>
>>>> Ant would be removed completely for the following reasons:
>>>>
>>>> - First to resolve the ASF issue about the libraries mentioned by Sharan
>>>> below without expending effort on both build systems.
>>>> - Ant is an obstacle to refactoring the framework. If we keep both
>>>> systems
>>>> side by side we gain nothing, actually we lose value because the builds
>>>> become more complex. For example, we will not be able to intrduce the
>>>> unit
>>>> tests, and we will have two build outputs, and we will have two ways of
>>>> running the framework (java -jar ofbiz.jar and gradlew ofbiz) and we
>>>> will
>>>> have other incompatibility issues.
>>>>
>>>> With that being said, we will not make the switch before a thorough and
>>>> full testing. That is why we ask everyone who is willing to please help
>>>> us
>>>> out to make this transition smooth by testing and providing feedback and
>>>> comments.
>>>>
>>>> Taher Alkhateeb
>>>>
>>>> On Tuesday, 21 June 2016, Deepak Dixit <[email protected]>
>>>> wrote:
>>>>
>>>> +1 for Gradle.
>>>>>
>>>>> Are we going to remove ant from framework completely or planning to
>>>>> keep
>>>>> both ant and gradle?
>>>>>
>>>>>
>>>>>
>>>>> Thanks & Regards
>>>>> --
>>>>> Deepak Dixit
>>>>> www.hotwaxsystems.com
>>>>>
>>>>> On Mon, Jun 20, 2016 at 6:20 PM, Sharan Foga <[email protected]
>>>>> <javascript:;>> wrote:
>>>>>
>>>>> Hi Everyone
>>>>>>
>>>>>> This is the second of two emails to inform the community about what
>>>>>> has
>>>>>> been happening around how we are planning to handle external
>>>>>> dependencies
>>>>>> in the trunk. Two weeks ago the community discussed and agreed to the
>>>>>> use
>>>>>> of Gradle to help us put together a unit test framework. While trying
>>>>>> to
>>>>>> get this set up while Ant remained as our build tool became very
>>>>>>
>>>>> difficult.
>>>>>
>>>>>> This was because our Ant scripts:
>>>>>>
>>>>>>     - are massive and contain a lot of code
>>>>>>     - are complex
>>>>>>     - are very brittle and make it very hard to change things
>>>>>>     - have no dependency management
>>>>>>     - need everything to be declared
>>>>>>
>>>>>> We realised very quickly that the re-factoring issues and limitations
>>>>>> we
>>>>>> are facing are because of our build tool – Ant.
>>>>>>
>>>>>> Ant is verbose so it needs everything to be declared. We did a brief
>>>>>> assessment of Maven and found it better than Ant but not a good fit
>>>>>> for
>>>>>> OFBiz because it has strict requirements for the
>>>>>> convention-over-configuration rules to work. Instead we decided to
>>>>>> take a
>>>>>> closer look at Gradle.
>>>>>>
>>>>>> So why Gradle?
>>>>>> As Taher was already looking at Gradle for unit testing, we decided to
>>>>>> look at what we would need to do to totally replace Ant with Gradle.
>>>>>> We
>>>>>> received some great support and feedback from David, who is already
>>>>>> using
>>>>>> Gradle with Moqui.
>>>>>>
>>>>>> After some preliminary tests we found that Gradle has some very good
>>>>>> features such as:
>>>>>>
>>>>>>     - a much shorter code base (e.g. one single file of around 250
>>>>>> lines
>>>>>>
>>>>> of
>>>>>
>>>>>> code replaces all the build.xml files and thousands of lines of code)
>>>>>>     -  Programming is DSL based and links in well with Groovy (e.g.
>>>>>> the
>>>>>> script is short because despite heavy custom requirements for OFBiz,
>>>>>> two
>>>>>> small functions took care of the complex directory structure)
>>>>>>     - It handles all the external jar files by downloading any
>>>>>>
>>>>> dependencies
>>>>>
>>>>>> directly via internet
>>>>>>     - Jars can be upgraded by simply changing a string
>>>>>>     - It has matured a lot and has a high level of support in
>>>>>> tools,IDEs,
>>>>>> books, documentation
>>>>>>     - It also has a lot of plugins which means that it works with
>>>>>> pretty
>>>>>> much all build systems, supports multiple programming languages, and
>>>>>> many
>>>>>> other features (e.g. OSGi)
>>>>>>
>>>>>> We understand that it can help us make OFBiz more modular and also
>>>>>>
>>>>> setting
>>>>>
>>>>>> up a framework for managing addons would be a lot easier.
>>>>>>
>>>>>> So what's been done?
>>>>>> Taher has been working very hard on a patch for the trunk that
>>>>>> completely
>>>>>> replaces Ant with Gradle.  (Huge thanks to David for providing some
>>>>>>
>>>>> example
>>>>>
>>>>>> scripts to help us get started!) The patch is now ready to be applied
>>>>>> to
>>>>>> the trunk and includes the following:
>>>>>>
>>>>>>      - java -jar ofbiz.jar is now replaced with -> gradlew 'ofbiz
>>>>>> --whatever-options-here'
>>>>>>      - In addition to gradlew 'ofbiz' we also have gradlew 'ofbizDebug
>>>>>> --whatever'. What does that mean? It means we can run debug on ALL
>>>>>> ofbiz
>>>>>> commands, not just start
>>>>>>      - If we decide to change the source directory structure in
>>>>>> components
>>>>>> say from /src to /src/main, it would literally be a change of 5
>>>>>>
>>>>> characters
>>>>>
>>>>>> in the build script
>>>>>>      - We can immediately move all jar files if we want to a unified
>>>>>> location in /lib for example
>>>>>>      - We can delete most of the jars and declare them as dependencies
>>>>>> saving space and resources
>>>>>>      - We can automate the creation of the .classpath file so when we
>>>>>> update libraries no need to do this manually (under development)
>>>>>>      - We can ignore components that are not define in the xml files
>>>>>> for
>>>>>> loading (under development)
>>>>>>      - We can introduce unit tests with about 10 minutes of work
>>>>>>
>>>>>> We are finding that the flexibility and control we are getting with
>>>>>>
>>>>> Gradle
>>>>>
>>>>>> is truly amazing. We know that Gradle will be a major change to the
>>>>>>
>>>>> project
>>>>>
>>>>>> but we think that it will significantly improve the project by
>>>>>> removing a
>>>>>> lot of build complexity and take care of that essential dependency
>>>>>> management that we need to comply with.
>>>>>>
>>>>>> Our next steps will be to apply the patch to the trunk and then
>>>>>> continue
>>>>>> the re-factoring work. We will need to organise some knowledge
>>>>>> transfer
>>>>>>
>>>>> so
>>>>>
>>>>>> that all our committers understand what the changes are and how they
>>>>>>
>>>>> would
>>>>>
>>>>>> need to work in the future.
>>>>>>
>>>>>> The PMC are very, very excited about having Gradle as part of future
>>>>>> of
>>>>>> OFBiz and we hope that the community will think so too. As always,
>>>>>>
>>>>> feedback
>>>>>
>>>>>> welcome.
>>>>>>
>>>>>> Thanks
>>>>>> Sharan
>>>>>>
>>>>>>
>>>
>>>
>>
>

Reply via email to