Hello Sebastian, On Mon, 18 May 2020 at 02:53, seba.wag...@gmail.com <seba.wag...@gmail.com> wrote:
> HI Maxim, > > sry I'm kind of distinguish in my build time and parameters between local > and on Jenkins. I think both matters. > > Local: I think we all agree it needs to run quickly. > Ability to run inside Eclipse embedded Tomcat: > - This was always difficult because of Red5. Now its just an Apache > Wicket webapp. So it should get easier. > We are using non-standard Maven layout, so I doubt it will be easy > - It might be easier for new developers to learn this, like using > existing IDE functionality to deploy/run-debug quickly > - Maybe Tomcat/Eclipse integration also got better over last 5+ years :) > I think I'm keen to explore this a bit over the coming weeks. > great :) > > But I'm really also looking at Jenkins build time. Reasons: > - If we want to get more PR requests and contributions from new > committers we need to efficiently be able to quickly assess them > - Nobody wants to wait 45min to 1+ hour to figure out your build has > passed > Build time can be reduced by providing weaker source for SecureRandom Another way to speed up things: to create one WicketTester for multiple UI tests (currently the whole application server is created before test and shutdown after) But this is low priority to me Too much efforts and ~zero profit .... > - We should be adding more automated unit AND UI end-to-end tests. But if > the build starts to take 45min to 1h+, then developers get reluctant to see > the value in automated tests. As they probably can do a manual test faster > than doing an automated one and wait for the build to complete. So in order > to make sure the value in automated testing is understood, keeping build > time low on Jenkins/CI-CD really matters too > The value of automated test - to ensure there is no regressions Almost nobody can write 100% bullet-proof code, developer usually check the area he/she fixing/modifying, and easily can break something else > So I think both matters. If we want to scale up the process for more > developers, more automated tests, than adding some efficiency in local and > automated tests will help us to grow the project. > > Cheers > Seb > > Sebastian Wagner > Director Arrakeen Solutions > http://arrakeen-solutions.co.nz/ > > <https://www.youracclaim.com/badges/da4e8828-743d-4968-af6f-49033f10d60a/public_url> > <https://www.youracclaim.com/badges/b7e709c6-aa87-4b02-9faf-099038475e36/public_url> > > > On Tue, 12 May 2020 at 00:23, Maxim Solodovnik <solomax...@gmail.com> > wrote: > >> >> >> On Sun, 10 May 2020 at 06:06, seba.wag...@gmail.com < >> seba.wag...@gmail.com> wrote: >> >>> We are using some tricks like -pl modules builds. However it is still a >>> bit of a waiting game. And hard to understand for anybody new and >>> would-like-to-be contributor. >>> >> >>> I think its good we removed some of the unused references to red5-libs. >>> >> >> this is done already >> And I doubt it takes significant time (and usually not being built with >> `quick` profile) >> >> >>> >>> But are there more things we can do to speed up build time? >>> >>> Looking at: >>> >>> https://builds.apache.org/view/M-R/view/OpenMeetings/job/openmeetings/3200/ >>> >>> *openmeetings-utils roughly 9min* >>> I don't quite understand why openmeetings-utils takes ~9min ? What is it >>> doing? It only runs 1 test. Is it trying to fetch the -SNAPSHOT >>> dependencies and timing out on each ? >>> >> >> The time is consumed by SecureRandom initializing in tests >> this can be reduced by using fast >> `-Djava.security.egd=file:/dev/./urandom` >> Tests can be skipped al together while developing ... >> >> >>> >>> *openmeetings-web tests 19min* >>> I think we can't sacrifice tests. We should in fact add more not less. >>> But is there any ideas how we can cut down the execution time ? >>> Is there any re-use between tests using AbstractWicketTester and >>> restarts of OpenMeetings instances ? >>> >> >> `-DskipTests` >> No need to modify build for this >> >> >>> >>> *Any maven-modules that can become stand-alone jars* >>> Like openmeetings-webservices. Seems rather stable and hardly ever >>> changes. Could this be an actual repository and own build and managed as >>> dependency. Rather then being in same repo ? >>> Or other packages that hardly get touched like openmeetings-install or >>> openmeetings-db? >>> Or other ways of splitting it. >>> I understand there is some advantage in having it all in Eclipse >>> Project. But practically some of those modules are not touched for months. >>> And they just chew up another 3,4,5 minutes on every build you sit there >>> waiting. >>> >> >> You can skip unnecessary modules with quick build >> Most changes are applied with `hot-code-replace` while Eclipse is >> attached and doesn't require any re-builds >> >> Most probably it is possible to find faster way using internal web server >> integrated into IDE, but I haven't investigate this for a long time ... >> >> >>> >>> Cheers >>> Seb >>> >>> Sebastian Wagner >>> https://www.linkedin.com/in/sebastianwagner/ >>> >>> <https://www.youracclaim.com/badges/da4e8828-743d-4968-af6f-49033f10d60a/public_url> >>> <https://www.youracclaim.com/badges/b7e709c6-aa87-4b02-9faf-099038475e36/public_url> >>> >> >> >> -- >> Best regards, >> Maxim >> > -- Best regards, Maxim