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 >>>>>> >>>>>> >>> >>> >> >
