By Petr Dvorak on Nov 15, 2009
A story of a young boy's dream...
When I was a young boy, I wanted to be a NetBeans developer. Since the age of five, I dreamt of writing my first line of the NetBeans code. (Well, when I was five, there was no NetBeans nor Java but since I am trying to advertise a bit, the story doesn't really have to make sense, right?)
I had to wait until I was 23 before the guys from the NetBeans team picked me for a tester, and half a year more before they allowed me to touch the code ("Hey, you, could you fix that typo in the message there? I am having a lunch and I don't want to touch my keyboard..."). Now, I am trying to learn how to write a code without hearing smart boys' (translate as "Jesse Glick's") remarks on what strange thing my code does - I am trying to become a good occasional NetBeans programmer...
the wonderful time I spent in the NetBeans team so far, I learned
almost all the stuff around the NetBeans community and majority of the
NetBeans related processes. I learned how to submit an issue with a
description that actually makes sense (hopefully, no developer reads
this...) and how to work with the IDE's sources. I slowly got
accustomed to the ancient idea of mailing lists and I happily observed
how we introduced the forums integrated with them. I almost started to
understand why we have a wiki that looks completely different from the
website. I became a young but already a bit gray NetBeans wolf... Well
- now, these days of beautiful complexity are gone...
Beautiful simplicity of Kenai
Since our website is now Kenai-smart (after the months of nervous devil's engineering, we managed to do that), anyone who is interested in the participation in NetBeans community can achieve in about one hour (maybe I should add "depending on the connection speed") what I achieved in more than a year and a half. Let me share with you how to submit bugs for the NetBeans IDE and how to get the NetBeans IDE sources right from the NetBeans IDE.
But first - to give you better insight - everything starts here: https://netbeans.org/api
NetBeans.org website is actually a "smart website", defining the
description of the components/projects of the NetBeans IDE using the Kenai API.
One could say that this approach blurs the border between a project and
its website as those two things are now tightly connected.
the NetBeans IDE includes the support for the Kenai API, it is not
surprising you can work with the NetBeans IDE components using the
NetBeans IDE itself. One of the big positives is that the NetBeans team
"eats its own dog food" - we work on the infrastructure that we try to
Getting started - Connect with the NetBeans website
So - ready to find out about the new NetBeans infrastructure? Here is what you need to get started:
- Download the development version of the NetBeans IDE (this thing is implement just recently - you can try it while it's hot)
- Start the NetBeans IDE and open the Services view (Ctrl+5) - you should see a new node Kenai Instances
- Right-click the Kenai Instances node and choose Add Instance
- Fill in the name ("NetBeans.org"), server ("https://netbeans.org" - mind it's HTTPS) and confirm the dialog
- Right-click the new instance and invoke Set As Default - the NetBeans.org node get's bold
Understand the structure, get started...
... with sources
I tell you how to work with the sources and so on, I will describe how
the NetBeans sources physically look. This should help you to
understand some choices we made while designing Kenai projects on
The NetBeans sources consist of many modules. Each module provides a part of the NetBeans IDE functionality. However, the modules are not very useful on their own - they make sense only with the rest of the modules (or - at least - with a relatively large subset of the modules, such as openide modules, API support modules, project or editor infrastructure modules, etc.). Therefore, there is not any direct mapping of the NetBeans functionalities (for example Ruby or Java support) to unique set of the NetBeans modules (both Java and Ruby support use editor and projects infrastructure modules, for example, and doesn't work without those).
Accordingly, if you are not a NetBeans expert (which I am still not) and if you need to get the NetBeans sources for playing with them a bit, you should get it all or nothing. Also - if you think you are a NetBeans expert and you want to get just partial sources, this will disappoint you - as we use the Mercurial for versioning, you have no other choice: you can clone the whole repository or nothing...
Because of above mentioned points, it makes no sense to have sources under all Kenai projects on NetBeans.org (cloning the sources for project Java would clone the same repository as cloning the sources for project Ruby). Instead, all NetBeans repositories are located under a single project, called simply "IDE".
Conclusion: If you need to get the NetBeans sources, you will find them in the IDE project. No matter which specific repository you need...
So - let's do it:
- Make sure the Mercurial is installed on your machine - if not, install it and restart the NetBeans IDE (... sorry for the inconvenience...)
- Open the Kenai dashboard (Ctrl+8)
- Click the button for opening a new Kenai project and wait until featured projects load. You should see the IDE project right at the top - open it...
- A new project should show up in the Kenai dashboard (Ctrl+8) - expand it's Sources node (it can take a while)
- Find main-golden repository (this is the one we use for the daily builds) and click "get" link
- Specify a location for the clone and click Get From Kenai button - a clone should start, you can see the progress in the lower right corner or in the Output view (Ctrl+4). Clone should take some time depending on the connection speed - do not be impatient. Keep on reading this post while waiting! :)
- Set up your environment and build the NetBeans sources (you need to use Java5 and give some more memory to ant and javac).
- The most important step: develop the code + enter issues with your patches attached (you won't be able to push code changes directly into the repository).
This is how you became a NetBeans community developer...
... with issues
contrast to how we have dealt with the sources, it makes a perfect
sense to submit an issue for example for the Java support, as issues
are specific for given functionality. Therefore, every Kenai project on
NB.org has an issue tracker associated with it. The "IDE" project also
has an issue tracker - use this one if you are not sure where to report
Try to open some other project, for example a project for the Kenai infrastructure support:
- Invoke the Open Kenai Project dialog again
- Search for "ConnectedDeveloper" (write it as a one word, note the list of all projects can be found on http://netbeans.org/projects).
- Expand the Issues node - it takes a bit (30s) for the very first time (then it's fast). You should see a link for finding an issue or for submitting a new report. Also, if you are a registered member of the NetBeans.org community already, you can login and see the issues you submitted (in the case, you will see a link "My Issues" too).
- Try searching for the issues using the "Fins issues" link, submitting issues will work for you only if you are registered on NetBeans.org website (for obvious reasons...).
OK - this was a pretty brief startup for the NetBeans community tester... Once you register on NetBeans, you can do my job from the comfort of your home;-)!
... with other features, just to keep you posted
You can review the details of any project by clicking the "Details" link in the Kenai dashboard - this opens a view with Kenai project details.
Try it for the "ConnectedDeveloper" project you just opened or for some
other nice project - for example the project for Japanese speaking
community members called "ja" :) - this one even has a project picture
and it's own wiki...
The project details view provides a nice and comprehensive access to all Kenai project features, even to those that cannot be directly accessed via the NetBeans IDE, such as the wikis, mailing lists or downloads. This view should help you to find the good ways to keep in touch with what is going on in the particular project. But please note that project mailing lists are usually more about receiving the information (notification about the project issues or commits, for example) and you should not post to them directly. If you want to complain on how horrible the NetBeans IDE is (in any areas) or ask a question related to NetBeans, please use the public mailing lists that are all available under project WWW. List "NBUsers" is probably the right one for you (mailing lists are still integrated with forums on http://forums.netbeans.org/)...
By commenting on the mailing lists, you will give us a valuable feedback and you will become a community commentator;)...
the Kenai support in the NetBeans IDE works pretty well in our
opinions, we are still looking for the community feedback and for some new ideas on how to improve it.
Generally speaking, you can improve the way the NetBeans+Kenai marriage
works in 2 ways: by participating in the NetBeans community or by
participating in the Kenai community. I think it is worth the try one
of those, even if it wasn't your dream when you were five... :)