You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@netbeans.apache.org by Eric Bresie <eb...@gmail.com> on 2020/03/07 16:13:29 UTC

Re: Building NetBeans with Gradle

+1

I suspect you've probable reviewed some of these (1), (2), (3) already but
thought it might be of  interest.

(1) https://docs.gradle.org/current/userguide/migrating_from_maven.html
(2) https://docs.gradle.org/current/userguide/maven_plugin.html
(3) https://gradle.org/maven-vs-gradle/

Eric Bresie
ebresie@gmail.com


On Sat, Feb 29, 2020 at 2:30 PM Scott Palmer <sw...@gmail.com> wrote:

>
>
> > On Feb 27, 2020, at 8:22 PM, Laszlo Kishalmi <la...@gmail.com>
> wrote:
> >
> > Dear all,
> >
> > I just would like to share the progress of my secret project: build
> NetBeans with Gradle
> >
> > I'm still not sure how far I would like to go with this experiment, but
> if nothing else it could be a good test data for the Gradle Support.
> >
> > I had the following milestones in my mind:
> >
> > M0: Done: Get the project dependencies straight, without having circular
> dependencies: Right now it has 813 sub-projects in the known clusters
> >
> > M1: Done: Get the modules in the Platform cluster (and the harness
> cluster) compileable.
> >
> > M2: TBD: Make the unit tests pass for the Platform Cluster.
> >
> > M3: TBD: Make the output of the Platform cluster actually runable.
> >
> > How it works:
> >
> > I have a specific NetBeans Gradle Plugin which reads the
> nbproject/clusters.properties and each module nbproject/project.xml file to
> get the dependency configuration. other configuration items are read from
> the nbproject.properties file. In theory we do not have to do any changes
> for an ordinary module it shall work out of the box without even having a
> build.gradle file. There are however some special cases where build.gradle
> file is required. Unfortunately there are some dependency tangles between
> the modules causing circular dependency in Gradle. In these cases I had to
> split up the modules between test and source projects.
> >
> > If anyone would like to have a look:
> >
> > please clone the gradle2 branch of my fork:
> https://github.com/lkishalmi/netbeans
> >
> > The Gradle build right now needs the help to fetch the external
> dependencies: ant download-all-extbins
> >
> > But after that one:
> >
> > ./gradlew buildPlatformCluster -x check
> >
> > shall work. (It currently requires JDK 11 or up)
>
>
> This is great.  Big +1.  Getting the official build transitioned to a
> modern build tool is an excellent idea.
>
> Scott
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
> For additional commands, e-mail: dev-help@netbeans.apache.org
>
> For further information about the NetBeans mailing lists, visit:
> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
>
>
>
>

Re: Building NetBeans with Gradle

Posted by Laszlo Kishalmi <la...@gmail.com>.
I wish, I knew what's wrong with the OSGI Bootstrap. Let me come up with 
a presentable case, I've just started to rebase my branch on NetBeans 12.2.

Generally the compilation of the platform packages works When it comes 
to testing (only unittests this time). As long as the tests does not 
involve starting up NetBeans they work. I guess one or more of the 
following happens:

- The test classpath is not complete
- Some system properties are missing
- Some metadata are not generated correctly
- Something else...

Thank you for showing interest in this work!

On 12/18/20 7:05 AM, Jaroslav Tulach wrote:
>> The Big Bad thing needs to be fixed is the OSGI bootstrap. So
> What's wrong with OSGi bootstrap? Gradle is about building the NetBeans
> bits, right? There is no invocation of OSGi when building NetBeans, I think.
> -jt
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
For additional commands, e-mail: dev-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists




Re: Building NetBeans with Gradle

Posted by Jaroslav Tulach <ja...@gmail.com>.
> The Big Bad thing needs to be fixed is the OSGI bootstrap. So

What's wrong with OSGi bootstrap? Gradle is about building the NetBeans
bits, right? There is no invocation of OSGi when building NetBeans, I think.
-jt

Re: Building NetBeans with Gradle

Posted by Sven Reimers <sv...@gmail.com>.
Hi all,

what is the problem you are experiencing?

Sven

On Sun, Dec 13, 2020 at 5:54 AM Laszlo Kishalmi <la...@gmail.com>
wrote:

> Well, I've checked that a few years ago. While it can generally work.
> There is real use to do that. You can regard it as a Gradle frontend to
> an Ant project. You can call the NetBeans with Gradle, but all the build
> mechanics would be driven by Ant.
>
> The complete transformation is not impossible though. I've got the
> platform modules at least compiling, some of the modules can be tested
> as well. The Big Bad thing needs to be fixed is the OSGI bootstrap. So
> if we could get that work, then it would not be that hard to do the rest
> of the work. Though that would require a Jaroslav Tulach caliber of
> knowledge...
>
> On 12/12/20 3:08 PM, Hector Espert wrote:
> > I'm testing Gradle ant support
> https://docs.gradle.org/current/userguide/ant.html to load the Netbeans
> ant build system and launch it from Gradle.
> https://github.com/apache/netbeans/pull/2590
> >
> > It isn't a radical change in the build system and it can allow us to
> improve the build system using the advantages of gradle without rewrite all.
> >
> > Laszlo, could you have a look in this and if it can help you?
> >
> >
> > On 2020/03/16 16:42:20, Laszlo Kishalmi <la...@gmail.com>
> wrote:
> >> Well, I was thinking about that as well, unfortunately there are some
> >> negative trade off-s with that I see right now. Maybe a way later down
> >> on the road, if it ever comes that we switch to Gradle as a main build
> >> system.
> >>
> >> So right now Gradle reads all 812 projects which gave a 8-10 seconds
> >> overhead at the initial build startup (on my system), I've optimized a
> >> bunch of things (rewrote the project.xml parsing in Java) and now it
> >> take 3-4s to read all modules and set up the dependencies between them,
> >> it also allows parallel module builds, so the pure platform (around 120
> >> modules) can be built in 25s.
> >>
> >> The build is clustered in a way that it has a build<cluster>Cluster task
> >> to build just a specific cluster. Right now I'm just dreaming of to be
> >> able to run anything (still fighting with some classpath issues running
> >> the Unit tests), but I can imagine to have a ./gradlew
> >> runPlatformCluster which builds and runs a barebone Platform and
> >> ./gradlew runPhpCluster for those who cares more of Php.
> >>
> >> On 3/16/20 8:45 AM, Jaroslav Tulach wrote:
> >>> Hello Laszlo,
> >>> when you are at it, you might make the build system more "cluster
> based".
> >>> It would be nice to
> >>> ```
> >>> cd platform
> >>> gradle run
> >>> ```
> >>> and get a running barebone NetBeans Platform. Or rather
> >>> ```
> >>> cd php
> >>> gradle run
> >>> ```
> >>> and get a PHP only distribution. We need to address this somehow as the
> >>> NetBeans codebase is starting to become as big as it used to be and it
> is
> >>> anoying to wait for compilation of all the features one doesn't really
> care
> >>> about.
> >>>
> >>> Just my 2 Kč idea. Best regards.
> >>> -jt
> >>>
> >>>
> >>>
> >>> so 7. 3. 2020 v 17:33 odesílatel Laszlo Kishalmi <
> laszlo.kishalmi@gmail.com>
> >>> napsal:
> >>>
> >>>> I read those, however not really in context of NetBeans. NetBeans has
> an
> >>>> Ant based build system with a bunch of custom tasks. On module level
> it
> >>>> is very effective, on cluster level it is not so.
> >>>>
> >>>> I'm doing this as of a personal challenge, fun and learn. If there
> would
> >>>> be anything useful coming from it, I'll share.
> >>>>
> >>>> On 3/7/20 8:13 AM, Eric Bresie wrote:
> >>>>> +1
> >>>>>
> >>>>> I suspect you've probable reviewed some of these (1), (2), (3)
> already
> >>>> but
> >>>>> thought it might be of  interest.
> >>>>>
> >>>>> (1)
> https://docs.gradle.org/current/userguide/migrating_from_maven.html
> >>>>> (2) https://docs.gradle.org/current/userguide/maven_plugin.html
> >>>>> (3) https://gradle.org/maven-vs-gradle/
> >>>>>
> >>>>> Eric Bresie
> >>>>> ebresie@gmail.com
> >>>>>
> >>>>>
> >>>>> On Sat, Feb 29, 2020 at 2:30 PM Scott Palmer <sw...@gmail.com>
> wrote:
> >>>>>
> >>>>>>> On Feb 27, 2020, at 8:22 PM, Laszlo Kishalmi <
> >>>> laszlo.kishalmi@gmail.com>
> >>>>>> wrote:
> >>>>>>> Dear all,
> >>>>>>>
> >>>>>>> I just would like to share the progress of my secret project: build
> >>>>>> NetBeans with Gradle
> >>>>>>> I'm still not sure how far I would like to go with this
> experiment, but
> >>>>>> if nothing else it could be a good test data for the Gradle Support.
> >>>>>>> I had the following milestones in my mind:
> >>>>>>>
> >>>>>>> M0: Done: Get the project dependencies straight, without having
> >>>> circular
> >>>>>> dependencies: Right now it has 813 sub-projects in the known
> clusters
> >>>>>>> M1: Done: Get the modules in the Platform cluster (and the harness
> >>>>>> cluster) compileable.
> >>>>>>> M2: TBD: Make the unit tests pass for the Platform Cluster.
> >>>>>>>
> >>>>>>> M3: TBD: Make the output of the Platform cluster actually runable.
> >>>>>>>
> >>>>>>> How it works:
> >>>>>>>
> >>>>>>> I have a specific NetBeans Gradle Plugin which reads the
> >>>>>> nbproject/clusters.properties and each module nbproject/project.xml
> >>>> file to
> >>>>>> get the dependency configuration. other configuration items are read
> >>>> from
> >>>>>> the nbproject.properties file. In theory we do not have to do any
> >>>> changes
> >>>>>> for an ordinary module it shall work out of the box without even
> having
> >>>> a
> >>>>>> build.gradle file. There are however some special cases where
> >>>> build.gradle
> >>>>>> file is required. Unfortunately there are some dependency tangles
> >>>> between
> >>>>>> the modules causing circular dependency in Gradle. In these cases I
> had
> >>>> to
> >>>>>> split up the modules between test and source projects.
> >>>>>>> If anyone would like to have a look:
> >>>>>>>
> >>>>>>> please clone the gradle2 branch of my fork:
> >>>>>> https://github.com/lkishalmi/netbeans
> >>>>>>> The Gradle build right now needs the help to fetch the external
> >>>>>> dependencies: ant download-all-extbins
> >>>>>>> But after that one:
> >>>>>>>
> >>>>>>> ./gradlew buildPlatformCluster -x check
> >>>>>>>
> >>>>>>> shall work. (It currently requires JDK 11 or up)
> >>>>>> This is great.  Big +1.  Getting the official build transitioned to
> a
> >>>>>> modern build tool is an excellent idea.
> >>>>>>
> >>>>>> Scott
> >>>>>>
> ---------------------------------------------------------------------
> >>>>>> To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
> >>>>>> For additional commands, e-mail: dev-help@netbeans.apache.org
> >>>>>>
> >>>>>> For further information about the NetBeans mailing lists, visit:
> >>>>>> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
> >>>> For additional commands, e-mail: dev-help@netbeans.apache.org
> >>>>
> >>>> For further information about the NetBeans mailing lists, visit:
> >>>> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
> >>>>
> >>>>
> >>>>
> >>>>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
> >> For additional commands, e-mail: dev-help@netbeans.apache.org
> >>
> >> For further information about the NetBeans mailing lists, visit:
> >> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
> >>
> >>
> >>
> >>
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
> > For additional commands, e-mail: dev-help@netbeans.apache.org
> >
> > For further information about the NetBeans mailing lists, visit:
> > https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
> >
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
> For additional commands, e-mail: dev-help@netbeans.apache.org
>
> For further information about the NetBeans mailing lists, visit:
> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
>
>
>
>

-- 
Sven Reimers

* Java Champion
* Apache NetBeans PMC: http://netbeans.apache.org
* JUG Leader JUG Bodensee: https://www.meetup.com/JUG-Bodensee
* Duke's Choice Award Winner 2009 & 2018

* LinkedIn: http://www.linkedin.com/in/svenreimers

Re: Building NetBeans with Gradle

Posted by Laszlo Kishalmi <la...@gmail.com>.
Well, I've checked that a few years ago. While it can generally work. 
There is real use to do that. You can regard it as a Gradle frontend to 
an Ant project. You can call the NetBeans with Gradle, but all the build 
mechanics would be driven by Ant.

The complete transformation is not impossible though. I've got the 
platform modules at least compiling, some of the modules can be tested 
as well. The Big Bad thing needs to be fixed is the OSGI bootstrap. So 
if we could get that work, then it would not be that hard to do the rest 
of the work. Though that would require a Jaroslav Tulach caliber of 
knowledge...

On 12/12/20 3:08 PM, Hector Espert wrote:
> I'm testing Gradle ant support https://docs.gradle.org/current/userguide/ant.html to load the Netbeans ant build system and launch it from Gradle. https://github.com/apache/netbeans/pull/2590
>
> It isn't a radical change in the build system and it can allow us to improve the build system using the advantages of gradle without rewrite all.
>
> Laszlo, could you have a look in this and if it can help you?
>
>
> On 2020/03/16 16:42:20, Laszlo Kishalmi <la...@gmail.com> wrote:
>> Well, I was thinking about that as well, unfortunately there are some
>> negative trade off-s with that I see right now. Maybe a way later down
>> on the road, if it ever comes that we switch to Gradle as a main build
>> system.
>>
>> So right now Gradle reads all 812 projects which gave a 8-10 seconds
>> overhead at the initial build startup (on my system), I've optimized a
>> bunch of things (rewrote the project.xml parsing in Java) and now it
>> take 3-4s to read all modules and set up the dependencies between them,
>> it also allows parallel module builds, so the pure platform (around 120
>> modules) can be built in 25s.
>>
>> The build is clustered in a way that it has a build<cluster>Cluster task
>> to build just a specific cluster. Right now I'm just dreaming of to be
>> able to run anything (still fighting with some classpath issues running
>> the Unit tests), but I can imagine to have a ./gradlew
>> runPlatformCluster which builds and runs a barebone Platform and
>> ./gradlew runPhpCluster for those who cares more of Php.
>>
>> On 3/16/20 8:45 AM, Jaroslav Tulach wrote:
>>> Hello Laszlo,
>>> when you are at it, you might make the build system more "cluster based".
>>> It would be nice to
>>> ```
>>> cd platform
>>> gradle run
>>> ```
>>> and get a running barebone NetBeans Platform. Or rather
>>> ```
>>> cd php
>>> gradle run
>>> ```
>>> and get a PHP only distribution. We need to address this somehow as the
>>> NetBeans codebase is starting to become as big as it used to be and it is
>>> anoying to wait for compilation of all the features one doesn't really care
>>> about.
>>>
>>> Just my 2 Kč idea. Best regards.
>>> -jt
>>>
>>>
>>>
>>> so 7. 3. 2020 v 17:33 odesílatel Laszlo Kishalmi <la...@gmail.com>
>>> napsal:
>>>
>>>> I read those, however not really in context of NetBeans. NetBeans has an
>>>> Ant based build system with a bunch of custom tasks. On module level it
>>>> is very effective, on cluster level it is not so.
>>>>
>>>> I'm doing this as of a personal challenge, fun and learn. If there would
>>>> be anything useful coming from it, I'll share.
>>>>
>>>> On 3/7/20 8:13 AM, Eric Bresie wrote:
>>>>> +1
>>>>>
>>>>> I suspect you've probable reviewed some of these (1), (2), (3) already
>>>> but
>>>>> thought it might be of  interest.
>>>>>
>>>>> (1) https://docs.gradle.org/current/userguide/migrating_from_maven.html
>>>>> (2) https://docs.gradle.org/current/userguide/maven_plugin.html
>>>>> (3) https://gradle.org/maven-vs-gradle/
>>>>>
>>>>> Eric Bresie
>>>>> ebresie@gmail.com
>>>>>
>>>>>
>>>>> On Sat, Feb 29, 2020 at 2:30 PM Scott Palmer <sw...@gmail.com> wrote:
>>>>>
>>>>>>> On Feb 27, 2020, at 8:22 PM, Laszlo Kishalmi <
>>>> laszlo.kishalmi@gmail.com>
>>>>>> wrote:
>>>>>>> Dear all,
>>>>>>>
>>>>>>> I just would like to share the progress of my secret project: build
>>>>>> NetBeans with Gradle
>>>>>>> I'm still not sure how far I would like to go with this experiment, but
>>>>>> if nothing else it could be a good test data for the Gradle Support.
>>>>>>> I had the following milestones in my mind:
>>>>>>>
>>>>>>> M0: Done: Get the project dependencies straight, without having
>>>> circular
>>>>>> dependencies: Right now it has 813 sub-projects in the known clusters
>>>>>>> M1: Done: Get the modules in the Platform cluster (and the harness
>>>>>> cluster) compileable.
>>>>>>> M2: TBD: Make the unit tests pass for the Platform Cluster.
>>>>>>>
>>>>>>> M3: TBD: Make the output of the Platform cluster actually runable.
>>>>>>>
>>>>>>> How it works:
>>>>>>>
>>>>>>> I have a specific NetBeans Gradle Plugin which reads the
>>>>>> nbproject/clusters.properties and each module nbproject/project.xml
>>>> file to
>>>>>> get the dependency configuration. other configuration items are read
>>>> from
>>>>>> the nbproject.properties file. In theory we do not have to do any
>>>> changes
>>>>>> for an ordinary module it shall work out of the box without even having
>>>> a
>>>>>> build.gradle file. There are however some special cases where
>>>> build.gradle
>>>>>> file is required. Unfortunately there are some dependency tangles
>>>> between
>>>>>> the modules causing circular dependency in Gradle. In these cases I had
>>>> to
>>>>>> split up the modules between test and source projects.
>>>>>>> If anyone would like to have a look:
>>>>>>>
>>>>>>> please clone the gradle2 branch of my fork:
>>>>>> https://github.com/lkishalmi/netbeans
>>>>>>> The Gradle build right now needs the help to fetch the external
>>>>>> dependencies: ant download-all-extbins
>>>>>>> But after that one:
>>>>>>>
>>>>>>> ./gradlew buildPlatformCluster -x check
>>>>>>>
>>>>>>> shall work. (It currently requires JDK 11 or up)
>>>>>> This is great.  Big +1.  Getting the official build transitioned to a
>>>>>> modern build tool is an excellent idea.
>>>>>>
>>>>>> Scott
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
>>>>>> For additional commands, e-mail: dev-help@netbeans.apache.org
>>>>>>
>>>>>> For further information about the NetBeans mailing lists, visit:
>>>>>> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
>>>> For additional commands, e-mail: dev-help@netbeans.apache.org
>>>>
>>>> For further information about the NetBeans mailing lists, visit:
>>>> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
>>>>
>>>>
>>>>
>>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
>> For additional commands, e-mail: dev-help@netbeans.apache.org
>>
>> For further information about the NetBeans mailing lists, visit:
>> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
>>
>>
>>
>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
> For additional commands, e-mail: dev-help@netbeans.apache.org
>
> For further information about the NetBeans mailing lists, visit:
> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
For additional commands, e-mail: dev-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists




Re: Building NetBeans with Gradle

Posted by Hector Espert <he...@gmail.com>.
I'm testing Gradle ant support https://docs.gradle.org/current/userguide/ant.html to load the Netbeans ant build system and launch it from Gradle. https://github.com/apache/netbeans/pull/2590

It isn't a radical change in the build system and it can allow us to improve the build system using the advantages of gradle without rewrite all.

Laszlo, could you have a look in this and if it can help you?


On 2020/03/16 16:42:20, Laszlo Kishalmi <la...@gmail.com> wrote: 
> Well, I was thinking about that as well, unfortunately there are some 
> negative trade off-s with that I see right now. Maybe a way later down 
> on the road, if it ever comes that we switch to Gradle as a main build 
> system.
> 
> So right now Gradle reads all 812 projects which gave a 8-10 seconds 
> overhead at the initial build startup (on my system), I've optimized a 
> bunch of things (rewrote the project.xml parsing in Java) and now it 
> take 3-4s to read all modules and set up the dependencies between them, 
> it also allows parallel module builds, so the pure platform (around 120 
> modules) can be built in 25s.
> 
> The build is clustered in a way that it has a build<cluster>Cluster task 
> to build just a specific cluster. Right now I'm just dreaming of to be 
> able to run anything (still fighting with some classpath issues running 
> the Unit tests), but I can imagine to have a ./gradlew 
> runPlatformCluster which builds and runs a barebone Platform and 
> ./gradlew runPhpCluster for those who cares more of Php.
> 
> On 3/16/20 8:45 AM, Jaroslav Tulach wrote:
> > Hello Laszlo,
> > when you are at it, you might make the build system more "cluster based".
> > It would be nice to
> > ```
> > cd platform
> > gradle run
> > ```
> > and get a running barebone NetBeans Platform. Or rather
> > ```
> > cd php
> > gradle run
> > ```
> > and get a PHP only distribution. We need to address this somehow as the
> > NetBeans codebase is starting to become as big as it used to be and it is
> > anoying to wait for compilation of all the features one doesn't really care
> > about.
> >
> > Just my 2 Kč idea. Best regards.
> > -jt
> >
> >
> >
> > so 7. 3. 2020 v 17:33 odesílatel Laszlo Kishalmi <la...@gmail.com>
> > napsal:
> >
> >> I read those, however not really in context of NetBeans. NetBeans has an
> >> Ant based build system with a bunch of custom tasks. On module level it
> >> is very effective, on cluster level it is not so.
> >>
> >> I'm doing this as of a personal challenge, fun and learn. If there would
> >> be anything useful coming from it, I'll share.
> >>
> >> On 3/7/20 8:13 AM, Eric Bresie wrote:
> >>> +1
> >>>
> >>> I suspect you've probable reviewed some of these (1), (2), (3) already
> >> but
> >>> thought it might be of  interest.
> >>>
> >>> (1) https://docs.gradle.org/current/userguide/migrating_from_maven.html
> >>> (2) https://docs.gradle.org/current/userguide/maven_plugin.html
> >>> (3) https://gradle.org/maven-vs-gradle/
> >>>
> >>> Eric Bresie
> >>> ebresie@gmail.com
> >>>
> >>>
> >>> On Sat, Feb 29, 2020 at 2:30 PM Scott Palmer <sw...@gmail.com> wrote:
> >>>
> >>>>> On Feb 27, 2020, at 8:22 PM, Laszlo Kishalmi <
> >> laszlo.kishalmi@gmail.com>
> >>>> wrote:
> >>>>> Dear all,
> >>>>>
> >>>>> I just would like to share the progress of my secret project: build
> >>>> NetBeans with Gradle
> >>>>> I'm still not sure how far I would like to go with this experiment, but
> >>>> if nothing else it could be a good test data for the Gradle Support.
> >>>>> I had the following milestones in my mind:
> >>>>>
> >>>>> M0: Done: Get the project dependencies straight, without having
> >> circular
> >>>> dependencies: Right now it has 813 sub-projects in the known clusters
> >>>>> M1: Done: Get the modules in the Platform cluster (and the harness
> >>>> cluster) compileable.
> >>>>> M2: TBD: Make the unit tests pass for the Platform Cluster.
> >>>>>
> >>>>> M3: TBD: Make the output of the Platform cluster actually runable.
> >>>>>
> >>>>> How it works:
> >>>>>
> >>>>> I have a specific NetBeans Gradle Plugin which reads the
> >>>> nbproject/clusters.properties and each module nbproject/project.xml
> >> file to
> >>>> get the dependency configuration. other configuration items are read
> >> from
> >>>> the nbproject.properties file. In theory we do not have to do any
> >> changes
> >>>> for an ordinary module it shall work out of the box without even having
> >> a
> >>>> build.gradle file. There are however some special cases where
> >> build.gradle
> >>>> file is required. Unfortunately there are some dependency tangles
> >> between
> >>>> the modules causing circular dependency in Gradle. In these cases I had
> >> to
> >>>> split up the modules between test and source projects.
> >>>>> If anyone would like to have a look:
> >>>>>
> >>>>> please clone the gradle2 branch of my fork:
> >>>> https://github.com/lkishalmi/netbeans
> >>>>> The Gradle build right now needs the help to fetch the external
> >>>> dependencies: ant download-all-extbins
> >>>>> But after that one:
> >>>>>
> >>>>> ./gradlew buildPlatformCluster -x check
> >>>>>
> >>>>> shall work. (It currently requires JDK 11 or up)
> >>>> This is great.  Big +1.  Getting the official build transitioned to a
> >>>> modern build tool is an excellent idea.
> >>>>
> >>>> Scott
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
> >>>> For additional commands, e-mail: dev-help@netbeans.apache.org
> >>>>
> >>>> For further information about the NetBeans mailing lists, visit:
> >>>> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
> >>>>
> >>>>
> >>>>
> >>>>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
> >> For additional commands, e-mail: dev-help@netbeans.apache.org
> >>
> >> For further information about the NetBeans mailing lists, visit:
> >> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
> >>
> >>
> >>
> >>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
> For additional commands, e-mail: dev-help@netbeans.apache.org
> 
> For further information about the NetBeans mailing lists, visit:
> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
> 
> 
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
For additional commands, e-mail: dev-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists




Re: Building NetBeans with Gradle

Posted by Laszlo Kishalmi <la...@gmail.com>.
Well, I was thinking about that as well, unfortunately there are some 
negative trade off-s with that I see right now. Maybe a way later down 
on the road, if it ever comes that we switch to Gradle as a main build 
system.

So right now Gradle reads all 812 projects which gave a 8-10 seconds 
overhead at the initial build startup (on my system), I've optimized a 
bunch of things (rewrote the project.xml parsing in Java) and now it 
take 3-4s to read all modules and set up the dependencies between them, 
it also allows parallel module builds, so the pure platform (around 120 
modules) can be built in 25s.

The build is clustered in a way that it has a build<cluster>Cluster task 
to build just a specific cluster. Right now I'm just dreaming of to be 
able to run anything (still fighting with some classpath issues running 
the Unit tests), but I can imagine to have a ./gradlew 
runPlatformCluster which builds and runs a barebone Platform and 
./gradlew runPhpCluster for those who cares more of Php.

On 3/16/20 8:45 AM, Jaroslav Tulach wrote:
> Hello Laszlo,
> when you are at it, you might make the build system more "cluster based".
> It would be nice to
> ```
> cd platform
> gradle run
> ```
> and get a running barebone NetBeans Platform. Or rather
> ```
> cd php
> gradle run
> ```
> and get a PHP only distribution. We need to address this somehow as the
> NetBeans codebase is starting to become as big as it used to be and it is
> anoying to wait for compilation of all the features one doesn't really care
> about.
>
> Just my 2 Kč idea. Best regards.
> -jt
>
>
>
> so 7. 3. 2020 v 17:33 odesílatel Laszlo Kishalmi <la...@gmail.com>
> napsal:
>
>> I read those, however not really in context of NetBeans. NetBeans has an
>> Ant based build system with a bunch of custom tasks. On module level it
>> is very effective, on cluster level it is not so.
>>
>> I'm doing this as of a personal challenge, fun and learn. If there would
>> be anything useful coming from it, I'll share.
>>
>> On 3/7/20 8:13 AM, Eric Bresie wrote:
>>> +1
>>>
>>> I suspect you've probable reviewed some of these (1), (2), (3) already
>> but
>>> thought it might be of  interest.
>>>
>>> (1) https://docs.gradle.org/current/userguide/migrating_from_maven.html
>>> (2) https://docs.gradle.org/current/userguide/maven_plugin.html
>>> (3) https://gradle.org/maven-vs-gradle/
>>>
>>> Eric Bresie
>>> ebresie@gmail.com
>>>
>>>
>>> On Sat, Feb 29, 2020 at 2:30 PM Scott Palmer <sw...@gmail.com> wrote:
>>>
>>>>> On Feb 27, 2020, at 8:22 PM, Laszlo Kishalmi <
>> laszlo.kishalmi@gmail.com>
>>>> wrote:
>>>>> Dear all,
>>>>>
>>>>> I just would like to share the progress of my secret project: build
>>>> NetBeans with Gradle
>>>>> I'm still not sure how far I would like to go with this experiment, but
>>>> if nothing else it could be a good test data for the Gradle Support.
>>>>> I had the following milestones in my mind:
>>>>>
>>>>> M0: Done: Get the project dependencies straight, without having
>> circular
>>>> dependencies: Right now it has 813 sub-projects in the known clusters
>>>>> M1: Done: Get the modules in the Platform cluster (and the harness
>>>> cluster) compileable.
>>>>> M2: TBD: Make the unit tests pass for the Platform Cluster.
>>>>>
>>>>> M3: TBD: Make the output of the Platform cluster actually runable.
>>>>>
>>>>> How it works:
>>>>>
>>>>> I have a specific NetBeans Gradle Plugin which reads the
>>>> nbproject/clusters.properties and each module nbproject/project.xml
>> file to
>>>> get the dependency configuration. other configuration items are read
>> from
>>>> the nbproject.properties file. In theory we do not have to do any
>> changes
>>>> for an ordinary module it shall work out of the box without even having
>> a
>>>> build.gradle file. There are however some special cases where
>> build.gradle
>>>> file is required. Unfortunately there are some dependency tangles
>> between
>>>> the modules causing circular dependency in Gradle. In these cases I had
>> to
>>>> split up the modules between test and source projects.
>>>>> If anyone would like to have a look:
>>>>>
>>>>> please clone the gradle2 branch of my fork:
>>>> https://github.com/lkishalmi/netbeans
>>>>> The Gradle build right now needs the help to fetch the external
>>>> dependencies: ant download-all-extbins
>>>>> But after that one:
>>>>>
>>>>> ./gradlew buildPlatformCluster -x check
>>>>>
>>>>> shall work. (It currently requires JDK 11 or up)
>>>> This is great.  Big +1.  Getting the official build transitioned to a
>>>> modern build tool is an excellent idea.
>>>>
>>>> Scott
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
>>>> For additional commands, e-mail: dev-help@netbeans.apache.org
>>>>
>>>> For further information about the NetBeans mailing lists, visit:
>>>> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
>>>>
>>>>
>>>>
>>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
>> For additional commands, e-mail: dev-help@netbeans.apache.org
>>
>> For further information about the NetBeans mailing lists, visit:
>> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
>>
>>
>>
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
For additional commands, e-mail: dev-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists




Re: Building NetBeans with Gradle

Posted by Jaroslav Tulach <ja...@gmail.com>.
Hello Laszlo,
when you are at it, you might make the build system more "cluster based".
It would be nice to
```
cd platform
gradle run
```
and get a running barebone NetBeans Platform. Or rather
```
cd php
gradle run
```
and get a PHP only distribution. We need to address this somehow as the
NetBeans codebase is starting to become as big as it used to be and it is
anoying to wait for compilation of all the features one doesn't really care
about.

Just my 2 Kč idea. Best regards.
-jt



so 7. 3. 2020 v 17:33 odesílatel Laszlo Kishalmi <la...@gmail.com>
napsal:

> I read those, however not really in context of NetBeans. NetBeans has an
> Ant based build system with a bunch of custom tasks. On module level it
> is very effective, on cluster level it is not so.
>
> I'm doing this as of a personal challenge, fun and learn. If there would
> be anything useful coming from it, I'll share.
>
> On 3/7/20 8:13 AM, Eric Bresie wrote:
> > +1
> >
> > I suspect you've probable reviewed some of these (1), (2), (3) already
> but
> > thought it might be of  interest.
> >
> > (1) https://docs.gradle.org/current/userguide/migrating_from_maven.html
> > (2) https://docs.gradle.org/current/userguide/maven_plugin.html
> > (3) https://gradle.org/maven-vs-gradle/
> >
> > Eric Bresie
> > ebresie@gmail.com
> >
> >
> > On Sat, Feb 29, 2020 at 2:30 PM Scott Palmer <sw...@gmail.com> wrote:
> >
> >>
> >>> On Feb 27, 2020, at 8:22 PM, Laszlo Kishalmi <
> laszlo.kishalmi@gmail.com>
> >> wrote:
> >>> Dear all,
> >>>
> >>> I just would like to share the progress of my secret project: build
> >> NetBeans with Gradle
> >>> I'm still not sure how far I would like to go with this experiment, but
> >> if nothing else it could be a good test data for the Gradle Support.
> >>> I had the following milestones in my mind:
> >>>
> >>> M0: Done: Get the project dependencies straight, without having
> circular
> >> dependencies: Right now it has 813 sub-projects in the known clusters
> >>> M1: Done: Get the modules in the Platform cluster (and the harness
> >> cluster) compileable.
> >>> M2: TBD: Make the unit tests pass for the Platform Cluster.
> >>>
> >>> M3: TBD: Make the output of the Platform cluster actually runable.
> >>>
> >>> How it works:
> >>>
> >>> I have a specific NetBeans Gradle Plugin which reads the
> >> nbproject/clusters.properties and each module nbproject/project.xml
> file to
> >> get the dependency configuration. other configuration items are read
> from
> >> the nbproject.properties file. In theory we do not have to do any
> changes
> >> for an ordinary module it shall work out of the box without even having
> a
> >> build.gradle file. There are however some special cases where
> build.gradle
> >> file is required. Unfortunately there are some dependency tangles
> between
> >> the modules causing circular dependency in Gradle. In these cases I had
> to
> >> split up the modules between test and source projects.
> >>> If anyone would like to have a look:
> >>>
> >>> please clone the gradle2 branch of my fork:
> >> https://github.com/lkishalmi/netbeans
> >>> The Gradle build right now needs the help to fetch the external
> >> dependencies: ant download-all-extbins
> >>> But after that one:
> >>>
> >>> ./gradlew buildPlatformCluster -x check
> >>>
> >>> shall work. (It currently requires JDK 11 or up)
> >>
> >> This is great.  Big +1.  Getting the official build transitioned to a
> >> modern build tool is an excellent idea.
> >>
> >> Scott
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
> >> For additional commands, e-mail: dev-help@netbeans.apache.org
> >>
> >> For further information about the NetBeans mailing lists, visit:
> >> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
> >>
> >>
> >>
> >>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
> For additional commands, e-mail: dev-help@netbeans.apache.org
>
> For further information about the NetBeans mailing lists, visit:
> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
>
>
>
>

Re: Building NetBeans with Gradle

Posted by Laszlo Kishalmi <la...@gmail.com>.
I read those, however not really in context of NetBeans. NetBeans has an 
Ant based build system with a bunch of custom tasks. On module level it 
is very effective, on cluster level it is not so.

I'm doing this as of a personal challenge, fun and learn. If there would 
be anything useful coming from it, I'll share.

On 3/7/20 8:13 AM, Eric Bresie wrote:
> +1
>
> I suspect you've probable reviewed some of these (1), (2), (3) already but
> thought it might be of  interest.
>
> (1) https://docs.gradle.org/current/userguide/migrating_from_maven.html
> (2) https://docs.gradle.org/current/userguide/maven_plugin.html
> (3) https://gradle.org/maven-vs-gradle/
>
> Eric Bresie
> ebresie@gmail.com
>
>
> On Sat, Feb 29, 2020 at 2:30 PM Scott Palmer <sw...@gmail.com> wrote:
>
>>
>>> On Feb 27, 2020, at 8:22 PM, Laszlo Kishalmi <la...@gmail.com>
>> wrote:
>>> Dear all,
>>>
>>> I just would like to share the progress of my secret project: build
>> NetBeans with Gradle
>>> I'm still not sure how far I would like to go with this experiment, but
>> if nothing else it could be a good test data for the Gradle Support.
>>> I had the following milestones in my mind:
>>>
>>> M0: Done: Get the project dependencies straight, without having circular
>> dependencies: Right now it has 813 sub-projects in the known clusters
>>> M1: Done: Get the modules in the Platform cluster (and the harness
>> cluster) compileable.
>>> M2: TBD: Make the unit tests pass for the Platform Cluster.
>>>
>>> M3: TBD: Make the output of the Platform cluster actually runable.
>>>
>>> How it works:
>>>
>>> I have a specific NetBeans Gradle Plugin which reads the
>> nbproject/clusters.properties and each module nbproject/project.xml file to
>> get the dependency configuration. other configuration items are read from
>> the nbproject.properties file. In theory we do not have to do any changes
>> for an ordinary module it shall work out of the box without even having a
>> build.gradle file. There are however some special cases where build.gradle
>> file is required. Unfortunately there are some dependency tangles between
>> the modules causing circular dependency in Gradle. In these cases I had to
>> split up the modules between test and source projects.
>>> If anyone would like to have a look:
>>>
>>> please clone the gradle2 branch of my fork:
>> https://github.com/lkishalmi/netbeans
>>> The Gradle build right now needs the help to fetch the external
>> dependencies: ant download-all-extbins
>>> But after that one:
>>>
>>> ./gradlew buildPlatformCluster -x check
>>>
>>> shall work. (It currently requires JDK 11 or up)
>>
>> This is great.  Big +1.  Getting the official build transitioned to a
>> modern build tool is an excellent idea.
>>
>> Scott
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
>> For additional commands, e-mail: dev-help@netbeans.apache.org
>>
>> For further information about the NetBeans mailing lists, visit:
>> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
>>
>>
>>
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
For additional commands, e-mail: dev-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists