News, updates, tips, tricks NetBeans Core QA

Thursday Nov 06, 2008

It seems that it repeats every release. The worst bugs appear a second before the end of the release cycle. I always think "did we forget to test this situation?". the answer is "No". We did our best. Unfortunately, we are not able to cover all the different configurations and usages that the users can create. As written in various books and papers it's mission impossible

We have a P1 in NetBeans 6.5 FCS candidate that looks really serious. The IDE starts to delete users' files on the disc. Real stopper, right?
Fortunately, it isn't easy to get into this situation. When you could face it? You need a project in a version control system (most likely SVN) then you have to "too many open files". It means exceed the limit for open files in your system. The it can happen that the IDE goes mad and deletes some of the files.

Good news is that we have fix and we are testing it. It will take a time... The fix is in Filesystems which is one of the core IDE functionalities. Everybody builds on it.

UPDATE: thank you to all who helped with the final testing of the latest fixes in NetBeans 6.5! We are done. No regressions, no new stoppers.

Wednesday Nov 05, 2008

When you are developing a code in NetBeans repository then you should provide a tests that prove that your code works, of course. When you run your tests then it will generate the test result for you. But these test results are in XML which is not as readable as you'd expect.
There is a way how to convert the XML results to HTML. You can use junitreport task in your ant script. And to make it even more convenient for developers and testers we added new target test-generate-html to the common.xml that is used in all netbeans projects.
You should run this target after your tests. It will provide you more readable results. The html results are also generated after commit validation tests (commit-validation target) in NB build.

Friday Oct 17, 2008


We are testing another build of candidate for Release Candidate 1. There were some stoppers that had to be fixed however it seems that we are finally close to the right build. If everything will go fine AND no new stopper will be found then we will publish the RC1 early next week.
Update1: there is maven cluster in the build AND it shouldn't be. That means another re-built. And one build takes 5-6 hours. What it all means together in Friday afternoon -> we'll finish it no Monday.

Note: the RC1 candidate build isn't available for download yet. We don't publish the candidates for candidates because we don't want to confuse our users with "several RC1 builds". When RC1 will be ready then it will be published on netbeans.org site and mailing lists.

Wednesday Oct 15, 2008

Release engineers create mercurial clone for the NetBeans 6.5 release. It is available at http://hg.netbeans.org/release65. It means that the stabilization of NetBeans release has been moved to separate clone a the trunk is again open for commits for NetBeans.next.

There is High Resistance mode active for the release65 clone. Read the rules - http://wiki.netbeans.org/NB65Rules.

What will be the name of the next release? 7.0? 6.5.1? 6.6? What do you think?

Friday Oct 03, 2008

My college Jirka Prox wrote a nice summarization of the new Compile on Save feature of NetBeans 6.5. It describes what is it, what it is not and also the most common examples when the CoS feature isn't for you.

If you are confused about the CoS or maybe not sure about the right behavior you should read it. This is wiki therefore it describes the most current behavior because the feature was/is evolving.

Tuesday Sep 30, 2008

What is freeform?

Freeform is a NetBeans project type that allows you to use Ant build script supplied with your sources. Typical usecase can be that you have already some sources, you are developing them "in you own way" (other IDE, or using VI, or...) and you want to work on them using NetBeans. Other common usecase for free-form can be that you check out some opensource project and you want to work on it in NetBeans IDE.
Let's take a look at some example. For a simple project, let's assume you have structure like this:
  • my_project
    • src
    • - contains Java sources
    • build
    • - this is where you build script puts *.class files
    • lib
    • - some JAR libraries you depend on
    • javadoc
    • - here is generated output from javadoc target in build.xml
    • tests
    • - tests for your sources
    • other
    • - misc stuff
    • >build.xml
    • - you own build script
Of course this is just en example structure, and let's say ideal ;-). So if you want to set up this project as NetBeans project, you have to do something like this:
  1. Invoke New project wizard (File | New project | Java > Java Free-form project)
  2. Name and location panel
    • Location
    • - here you specify general location of your project. In this example you would browse for my_project folder
    • Build script
    • - if it's found under the project's folder, field gets populated automatically. Otherwise browse for your build.xml
    • Project name
    • - gets auto-populated from build.xml, feel free to change it if you wish
    • Project folder
    • - this is where your NetBeans project metadata will be stored. You will later open it in IDE using this project folder. It is possible to place it to other location than location of your project folder (my_project)
  3. Build and Run Actions panel
    • Here you just bind Ant targets to IDE actions. IDE tries to guess some of them. Modify as you wish.
  4. Source Packages Folders panel
    • Add here src folder as Source packages and tests as Test packages.
    • Hit Includes/Excludes button, it brings up dialog where you can setup what do you want to have in you source root visible. If you have e.g. HTML files mixed together with Java files in package folders, you may wish to exclude those HTML files, so that IDE's projects view won't display them.
  5. Java Sources panel
    • You need to set up project dependencies here. If you on know which JAR libraries your project depends, you can add them right now. Usually they are placed in lib folder, or similar, and are distributed together with project. Ideal case. If you have no idea, leave this empty, you can set up this later using Project properties dialog.
    • In the same way you set up dependencies for sources, set up also for tests.
  6. Project output panel
    • Here comes the tricky part. You need to bind here source folders you added on Source Packages Folders panel with binaries (JAR or folder with *.class files), that are produced from those sources. However, currently you don't have probably any, because you have only sources and you did not build anything. So for now invoke Finish, you'll get back to this later.
  7. Busting error badges
    • If you haven't set up all dependencies correctly, you see probably a lot of error badges on your project file. The only way how to get rid of them is to add libraries on Java source classpath (this is acessible from project properies). The correct way how to do this is to take a look into build.xml file to examine classpath. Another approach is to look at import statements in *.java files, and try to match them with content of lib folder (and add those matching JARs to Java source classpath). After a few iterations of adding library JAR files to Java source classpath should be red error badges gone.
  8. Binding project output
    • Invoke Build. If you set up target binding correctly, build action should be invoked on Ant script and should produce binaries. In our sample case are *.class files compiled under build folder. Go to project properties, and set build folder as output for your sourceroot. This is an important thing, if you are going to use debugging or you want some other project depend on your project.
      Now your project should be set up correctly. Note that this is not any generic manual how to set up every existing project as NetBeans free-form project. But it should get some insight of possible workflow during setting thing up for newbies :)
There is new feature in NetBeans 6.5 that you can set up formatting settings per project. In previous releases there used to be only one formatting setting for whole IDE. Now you can work on several projects with different formatting. Or even better, you can share the settings with the whole team because it is saved in the nbproject/project.properties file of your project. This file is versioned by your version control system as it is part of the project.

If you want to set the "setting for specific project":
  • Open Project properties
  • Click Formating category
  • Select the "Use project specific options" radio button
  • Don't forget to click OK when closing the dialog to save the settings ;)
setting for specific project


Samle of properties that appears in your project.properties
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.expand-tabs=true
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.indent-shift-width=4
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.spaces-per-tab=4
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.tab-size=4
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width=80
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.usedProfile=project
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.classDeclBracePlacement=NEW_LINE
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.expand-tabs=true
Note: this is available from NetBeans 6.5!

Thursday Sep 25, 2008

You've probably noticed the change it NetBeans 6.5 schedule already, right? However for those that haven't let me cite Jirka Kovalsky (NetBeans Technical Community Manager ).

Hello developers,

based on the current quality dashboard and feedback from community, a change to the NetBeans 6.5 release schedule [1] has been made. We went through all problematic areas and investigated how much time is needed to meet the FCS quality and according to our findings 4 more weeks will be required.
This in particular means that Code Freeze moves to October 13th and FCS to November 12th.

[1] http://wiki.netbeans.org/NB65Milestones

It is not easy to postpone the release date but we simply want to address recent community feedback coming for example via this mailing list or via bugs that were submitted at high rate of ~400 issues weekly.
However, we believe it will pay off in the end because quality is also a feature, isn't it? :-)

Thanks for your understanding and support!


And we all believe that it will help to release NetBeans 6.5 as more stable product. I will not repeat myself - listen to podcast ;)

Wednesday Sep 24, 2008

It can happen that you changed the layout of windows in NetBeans IDE in a way that you are not able to use it anymore. Every change makes it even worse. Or maybe your layout just screw up for unknown reason (yes, bugs happen).
Then there is an action in Reset Windows in Window menu. It will set the layout of all windows to default positions. The IDE will look as you started it for the first time.

Friday Sep 05, 2008

There was recently a very hot thread on nbusers mailing list, discussing performance of upcoming release of NetBeans 6.5. To prove that we really care about voices from community NetBeans team contacted users, that were suffering with performance issues, and were willing to help us identify weak areas.
NetBeans team appreciates such feedback and cooperation from those users. And very big thanks to people, who shared their projects with us! It's really helpful, not all bugs are reproducible in "helloworld" project with a few classes, sometimes is needed huge application with large sourceroots. Whole this action resulted into couple of serious performance bugs, which are being evaluated/fixed.
Two cent's from Core QA Team to this action so far:
...and lot of others (performance unrelated), that would be really hard to reproduce without big projects provided by users.

Wednesday Sep 03, 2008

When you try the latest development builds of NetBeans IDE 6.5 then you can be surprised that the Build action is NOT grey anymore on java project (a little recall for those who are lost). How come? Well, we are listening to our users. They liked the Compile on Save feature but they were confused that they cannot Build their project anymore. The solution was simple - provide users a dialog with an explanation.


This dialog will notice you that your project is already compiled. So why are you compiling it again then, right? You can either switch the Compile On Save off in project properties or you run Clean&Build in your project.

The Clean action is enabled again too. It will clean your [project]/build directory.

Wednesday Aug 27, 2008

There is plenty of mailing lists about the NetBeans IDE. You can look at the (in)complete list. Last week there started new view to these mailing lists. You can see them as forums now. It means that you don't have to receive hundreds of emails into your mailbox. Read what you want ;)

Oh, yes there always was such options. You could use public mailing list archives as Gmane or Nabble. And of course the official NetBeans' archive of the mailing lists but it has horrible user interface. And it isn't easy to find.



Somebody at a mailing list pointed me to http://markmail.org/. I'm starting to like it.

Monday Aug 25, 2008

Jirka Kovalsky(Technical Community Manager) just announced the winners of the NetBeans Innovators Grants. I tried some of the projects. Some of the ideas seems were interesting.

Congratulation to all the winners! Well deserved money!

I'm glad to see my friend Karel Herink that used to work on NetBeans Mobility project in the list of winners. His support for Project Darkstar in Mobility moves game development in Java ME in new direction. It is pity that you haven't won a Golden or Silver award, Karel. Maybe you didn't solved the idea very well? I'd like to be interested if you used it in a real game?

My attention took CashForward and Cube°n. NetBeans' as financial software, interesting. And Anuradha's tasks integration. There might be a place for enhancement. It should work with the NetBeans issuezilla. Unfortunately, there isn't any easy access to the bug database :(

Thursday Aug 21, 2008

This is copy of email that I sent to nbusers and nbdev. We are looking forward for your feedback.

Dear developers,

we are trying to keep the NetBeans platform and NetBeans IDE backward compatible as much as possible. However the testing of the backward compatibility is not easily achievable and thus we would appreciate if you could help us with this task. It allows us to improve the quality of NetBeans RCP. And also keep its backward compatibility among the releases. If you develop an application based on NetBeans RCP or a module for NetBeans IDE then this testing is unique opportunity to let us know about the bugs that you have noticed already or you might notice when you'll switch to newer version of NetBeans IDE or the NetBeans platform. There is still time to fix such bugs in the coming NetBeans 6.5.

The whole process and the steps required from your side are described at http://wiki.netbeans.org/BackwardCompatibilityTesting The modules/application should be tested with NetBeans 6.5 Beta or later. Deadline for your results is August 31st 2008.

We organized a similar program during NetBeans 6.1 development and all participants appreciated the chance to influence compatibility of the NetBeans APIs. We evaluated all reported problems and you can find the results at http://wiki.netbeans.org/NB61BackwardCompatibilityTestingReport

Please, note that we are also interested in test results with older releases therefore you can join the testing even if your application/module is based on some older release than the latest final release NetBeans 6.1.

Are you interested in this unique opportunity?

Thanks to all who drop us an e-mail with their test results to compatibility@platform.netbeans.org!
Lukas.
We are close to finishing of testing of next patch for the NetBeans 6.1. It seems that the patch doesn't cause any regressions and fixes the bugs that it promised. Unfortunately, some of the bugs are almost unverifiable because they appear only in some unknown conditions. Anyway, we haven't found any regression during the testing that could be caused by the fixes.

The patch should be released on August 27 if there won't be any other issues reported by other teams. If you are not patient then you can try the patch now. On your own risk, of course. Add new update center and set up the URL field to this link. The updates will appear in the Plugin manager or in bubble.

Please, be aware of this bug when you are installing a patch - Bubble can install different set of update than via Plugins.