Also as Michael mentioned : "So it would be really helpful to break down the todos in smaller pieces to be assigned to contributors. " It will help other contributors to pick tasks and help in this effort.
Thanks -- Divesh Dutta. On Tue, Jun 21, 2016 at 2:32 PM, Divesh Dutta < divesh.du...@hotwaxsystems.com> wrote: > Thanks for detailed email Sharan. It was very informative. After reading > all the details it totally makes sense that why should we move to Gradle > from Ant. Overall work going in community to improve OFBiz is really > amazing and I am really excited about this. > > Thanks > -- > Divesh Dutta. > > On Mon, Jun 20, 2016 at 6:20 PM, Sharan Foga <sharan.f...@gmail.com> > 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 >> > >