This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 225753 - Move o.apache.tools.module.ant outside of java cluster
Summary: Move o.apache.tools.module.ant outside of java cluster
Status: STARTED
Alias: None
Product: installer
Classification: Unclassified
Component: Code (show other bugs)
Version: 7.3
Hardware: Macintosh Mac OS X
: P3 normal (vote)
Assignee: Libor Fischmeistr
URL:
Keywords: UI
Depends on:
Blocks: 225750
  Show dependency tree
 
Reported: 2013-02-05 15:26 UTC by Jan Becicka
Modified: 2014-02-10 14:16 UTC (History)
14 users (show)

See Also:
Issue Type: TASK
Exception Reporter:


Attachments
Step #1 (5.50 KB, application/octet-stream)
2013-02-08 14:41 UTC, Jan Becicka
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Becicka 2013-02-05 15:26:12 UTC
Ant builder should be usable also for non-java building tasks. 

PhoneGap support uses ant for building html and javascript based applications. And we don't want to depend on whole java cluster. Let's move o.apache.tools.module.ant outside of java cluster into (for instance) ide cluster, or maybe into completely new cluster (together with some more modules?).
Comment 1 Jan Becicka 2013-02-05 15:30:15 UTC
Please review this inception
Comment 2 Jaroslav Tulach 2013-02-06 10:35:39 UTC
Rather than continuing the endless growth of ide cluster, I'd like to propose a "fat reduction" procedure. Let's keep ide cluster slim, containing only common APIs needed by the IDE and let's move the implementations (including Ant) into some other, "common" cluster.

I believe stuff like yaml, html, javascript, etc & Ant. should be moved to such "common" cluster.

When deciding what should be in ide cluster, we should be driven by needs of all distribution (like CND) and put there only technologies that are really shared among all of them.
Comment 3 Petr Jiricka 2013-02-06 11:01:30 UTC
Sounds good, but I would see that as a separate step, distinct from the discussion about o.apache.tools.module.ant. 

I agree that the ide cluster should only contain things shared by all distributions, but it's not clear to me what exactly would be the role of the new "common" cluster? Would it be shared by all distributions except C++? Or some other set of distributions? Note we already have the webcommon cluster which is shared by all distributions except C++ and Java SE (i.e. it is used by Java EE, PHP and All).
Comment 4 Tomas Zezula 2013-02-06 15:39:19 UTC
I fully agree with Jarda, the non infrastructure modules should be moved outside the IDE cluster.
Comment 5 Vladimir Voskresensky 2013-02-06 16:06:33 UTC
I also support Jarda's wish to make ide cluster slim. Although "common" is not
the best choice - sounds as something needed. What about "extide" or something
like this? Should be more appropriate name for modules we currently exclude
from ide cluster (like javascript, etc).
Ideally in "ide" should be the intersection of modules needed by all main
distros.
Comment 6 Petr Jiricka 2013-02-06 16:24:43 UTC
Vladimir, it sounds like the C++ team is the main "customer" of the extide cluster (in the sense that the C++ distribution would exclude it). Can you please enumerate what functionality that's currently in the ide cluster you are NOT interested in?

> Ideally in "ide" should be the intersection of modules needed by all main distros.

I agree, we already started in this direction by creating the webcommon cluster.
Comment 7 Vladimir Voskresensky 2013-02-06 16:57:24 UTC
Petr, I had a look at cluster.properties and would say the list is tooo long to enumerate :-)

Btw, I'd like to clarify that C++ team is responsible for number of GUI components in Studio product => we exclude different parts (we exclude some CND modules as well). I can attach platform.properties of i.e. DxbTool - which is C/C++/Fortran visual debugger if needed.

If you ask about pure C++ NB distro => looks like NOT needed by default:
- CSL, GSF
- CSS
- HTML
- JavaScript
- Manifest
- Yaml
- Mylin
- Web*
- XML

Btw, versioning impl modules worth to be extracted into separate "versioning" clster from ide...
Comment 8 Petr Jiricka 2013-02-07 13:51:29 UTC
It sounds like we are converging - so should we create the extide cluster, which would be excluded from the C++ distribution? I am cc'ing Jirka and Petr G, as introducing a new cluster will require changes in the build infrastructure and installers.
 
I would suggest to start by moving the o.apache.tools.module.ant module to this new cluster, and other changes (suggested by Vladimir) should be done later in step 2.
Comment 9 Tomas Zezula 2013-02-07 13:57:50 UTC
Just small comment, the CSL is infrastructure module (the base for "scripting" languages like PHP, JS, Ruby, Scala, etc). It probably belongs to IDE cluster as any language can depend on it.
Comment 10 Vladimir Voskresensky 2013-02-07 14:11:02 UTC
Thanks for the comment Tomas. I'm fine to have any needed infra modules in ide (btw, most probably Makefile support in C++ is based on CSL as well)
Comment 11 Jan Becicka 2013-02-07 14:36:14 UTC
Just minor comment:
Ant has it's options under Java category. Should it be moved to Misc?
Comment 12 Jan Becicka 2013-02-08 14:40:52 UTC
> I would suggest to start by moving the o.apache.tools.module.ant module to this
> new cluster, and other changes (suggested by Vladimir) should be done later in
> step 2.

OK. See attached patch. It is step 1. 
Java Options module also moved to new extide module. Java Options module does not contain any real code. It only defines "Java" category in Tools | Options.

Any objections?
Comment 13 Jan Becicka 2013-02-08 14:41:56 UTC
Created attachment 131153 [details]
Step #1

Please ignore all cordova* modules.
Comment 14 Theofanis Oikonomou 2013-02-08 15:07:45 UTC
(In reply to comment #11)
> Just minor comment:
> Ant has it's options under Java category. Should it be moved to Misc?

Well if the plan is to separate ant from java then I guess that the options' Ant tab should be moved from Java category into Misc.

(In reply to comment #12)
> OK. See attached patch. It is step 1. 
> Java Options module also moved to new extide module. Java Options module does
> not contain any real code. It only defines "Java" category in Tools | Options.
> 
> Any objections?

If what is described in comment 11 happens then I think there is no reason to move the options.java module from the java cluster into the extide cluster.
Comment 15 Milos Kleint 2013-02-11 13:08:23 UTC
(In reply to comment #14)
> (In reply to comment #11)
> > Just minor comment:
> > Ant has it's options under Java category. Should it be moved to Misc?
> 
> Well if the plan is to separate ant from java then I guess that the options'
> Ant tab should be moved from Java category into Misc.


I believe this discussion is entirely orthogonal to the cluster configuration.
But if ant is moved back to misc, then maven should go there as well, maybe more?

> 
> (In reply to comment #12)
> > OK. See attached patch. It is step 1. 
> > Java Options module also moved to new extide module. Java Options module does
> > not contain any real code. It only defines "Java" category in Tools | Options.
> > 
> > Any objections?
> 

why is the kit module missing the dependency on the moved module now?


BTW what is PhoneGap? is it part of some standard distributions?
Comment 16 Jan Becicka 2013-02-11 14:13:06 UTC
> I believe this discussion is entirely orthogonal to the cluster configuration. But if ant is moved back to misc, then maven should go there as well, maybe more?

Probably not entirely orthogonal. We are talking about modules and clusters. If we want to keep current UI untouched, we need to move Java Options module together with ant.

> why is the kit module missing the dependency on the moved module now?

Good question! I thought, that kit module should not cross cluster boundaries. I was probably wrong. 

> BTW what is PhoneGap? is it part of some standard distributions?

It will be part of standard distribution. This is why I requested such change. See related issue 225750
Comment 17 Theofanis Oikonomou 2013-02-11 14:32:25 UTC
(In reply to comment #16)
> > I believe this discussion is entirely orthogonal to the cluster configuration. But if ant is moved back to misc, then maven should go there as well, maybe more?
> 
> Probably not entirely orthogonal. We are talking about modules and clusters. If
> we want to keep current UI untouched, we need to move Java Options module
> together with ant.

adding uireviews in cc as moving the ant,maven etc tabs from Java into Misc category in options window requires some more thought.
Comment 18 Jan Becicka 2013-02-12 13:19:36 UTC
I've created a new branch for this issue:
http://hg.netbeans.org/jet-main/changeset/12caa06a2c5e

What's implemented:
1. No UI Change (we don't want any UI change, right?)
2. Ant and java.options moved to brand new cluster extide
3. All distributions except CND depends on extide cluster

TODO:
Move more modules to extide
Check if everything builds and works
Comment 19 Jan Becicka 2013-02-14 15:49:41 UTC
OK. Some tests failed. See http://deadlock.netbeans.org/hudson/job/prototypes-extide-225753/36/
I'd like to ask for help:
1.
 
found a VERSION.txt in /space/workspace/prototypes-extide-225753/nbbuild/netbeans/extide
Stacktrace

junit.framework.AssertionFailedError: found a VERSION.txt in /space/workspace/prototypes-extide-225753/nbbuild/netbeans/extide
	at org.netbeans.core.validation.ValidateModulesTest.clusterVersions(ValidateModulesTest.java:175)

I have no idea what is wrong

2. 
org.netbeans.modules.ide.ergonomics.FilesAndAttributesCheck.testCheckAllTemplatesReal (from org.netbeans.modules.ide.ergonomics.DynamicVerifyTest)

Is this real failure? Or just test needs to be updated?

3.
org.netbeans.modules.ide.ergonomics.OptionsCheck.testCheckKeywordsReal (from org.netbeans.modules.ide.ergonomics.DynamicVerifyTest)
Does anybody knows what is wrong with keywords?

Thanks
Comment 20 Petr Jiricka 2013-02-14 16:11:40 UTC
I would guess you need to create ide.ergonomics/extide.properties, but I am not sure if that's sufficient.
Comment 21 Jan Becicka 2013-02-14 17:10:59 UTC
(In reply to comment #20)
> I would guess you need to create ide.ergonomics/extide.properties, but I am not
> sure if that's sufficient.

Thanks. It will fix probably 2 and 3
http://hg.netbeans.org/jet-main/rev/64df1741388c
Comment 22 Jan Becicka 2013-02-14 20:49:30 UTC
(In reply to comment #19)
> OK. Some tests failed. See
> http://deadlock.netbeans.org/hudson/job/prototypes-extide-225753/36/
> I'd like to ask for help:
> 1.
> 
> found a VERSION.txt in
> /space/workspace/prototypes-extide-225753/nbbuild/netbeans/extide
> Stacktrace
> 
> junit.framework.AssertionFailedError: found a VERSION.txt in
> /space/workspace/prototypes-extide-225753/nbbuild/netbeans/extide
>     at
> org.netbeans.core.validation.ValidateModulesTest.clusterVersions(ValidateModulesTest.java:175)
> 
> I have no idea what is wrong

BTW there is not  VERSION.txt in nbbuild/netbeans/extide


> 3.
> org.netbeans.modules.ide.ergonomics.OptionsCheck.testCheckKeywordsReal (from
> org.netbeans.modules.ide.ergonomics.DynamicVerifyTest)
> Does anybody knows what is wrong with keywords?


It passes locally. I have no idea what is wrong on deadlock
Comment 23 Jan Becicka 2013-02-18 08:28:18 UTC
problem is, that some tests do not see extide cluster
http://deadlock.netbeans.org/hudson/job/prototypes-extide-225753/45/testReport/junit/org.netbeans.core.validation/ValidateModulesTest/testConsistency/

 Current Directory       = /space/workspace/prototypes-extide-225753
  User Directory          = /space/workspace/prototypes-extide-225753/o.n.core/build/test/qa-functional/work/userdir2
  Cache Directory         = /space/workspace/prototypes-extide-225753/o.n.core/build/test/qa-functional/work/userdir2/var/cache
  Installation            = /space/workspace/prototypes-extide-225753/nbbuild/netbeans/harness
                            /space/workspace/prototypes-extide-225753/nbbuild/netbeans/ide
                            /space/workspace/prototypes-extide-225753/nbbuild/netbeans/java
                            /space/workspace/prototypes-extide-225753/nbbuild/netbeans/nb
                            /space/workspace/prototypes-extide-225753/nbbuild/netbeans/profiler
                            /space/workspace/prototypes-extide-225753/nbbuild/netbeans/websvccommon
                            /space/workspace/prototypes-extide-225753/nbbuild/netbeans/platform
  Boot & Ext. Classpath   = 

So where should I add extide? Thanks
Comment 24 Jan Becicka 2013-02-18 09:06:54 UTC
I see ... clusters are hardcoded in tests.
Comment 25 Jan Becicka 2013-02-18 12:07:28 UTC
ant module moved 
http://hg.netbeans.org/jet-main/rev/f1c512420d02
Comment 26 Jiri Rechtacek 2013-02-19 14:38:09 UTC
I'm going to adjust the installer part on 'extide' cluster.