NBSupportForNbOrgMigration

Kenai support in NetBeans IDE and netbeans.org migration

Migrated netbeans.org setup

The netbeans.org site is going to migrate to Kenai infrastructure, there will be a new Kenai instance with the following setup:

  • Set of mercurial repositories and their clones - external in terms of Kenai infrastructure (unchanged hg.netbeans.org).
  • There will be an artificial NetBeans IDEproject listing all the repositories, possibly also host wikis not specific to any project.
  • Permission to hg repository and Bugzilla is global (per user), not per project.
  • Bugzilla instance with data migrated from IssueZilla. It has various specifics over standard Bugzilla (different names of categories, custom fields, etc).
  • Set of migrated and restructured projects corresponding to top-level components in Bugzilla.
  • An individual project may have some of the hg repositories set as an external repository (probably hg.netbeans.org/main, or a team repository, or both). But now it seems the individual projects will not specify the hg repository at all. So likely the projects will have no notion of sources.
  • All projects will have chat rooms. But initially there will be no instant messaging available on the site.
  • Developers are members of the projects where they want to 1) subscribe for mails from Buzilla and hg, and possibly 2) use project chat rooms. On the web they can also use wikis and other mailing lists.
  • The roles will be migrated from existing netbeans.org projects, the role mapping is pretty straightforward.
  • Due to reducing the number of top-level projects some projects will have multiple commit and issues mailing lists, roughly corresponding to subcomponents in Bugzilla.

Goal

The goal is to enable NetBeans developers to use the Kenai features in the IDE to work also on netbeans.org projects, despite the specific setup and differences from kenai.com. While this is not absolutely necessary and people may use the IDE as so far only for SCM, the additional features can improve people's productivity and we may get a lot of useful feedback from extensive usage of the features.

Secondarily, we want to enable external people to be able to get and open NetBeans sources easily in the IDE.

What should work in the IDE

  1. (P1) All basic bugtracking features should be available (querying, creating, editing issues).
  2. (P1) Should be possible to change a product (component), i.e. move issues between projects.
  3. (P2) Additional navigation features in bugtracking (navigation to issues from code, commit logs, chat; clickable stacktraces).
  4. (P2) Simplified work with patches in issues (attaching, applying).
  5. (P1) When committing a change be able to find/select an issue to close with the commit.
  6. (P2) Access issues per netbeans.org project (in Kenai dashboard for individual projects), create saved queries.
  7. (P1) Possibility to create and save queries over multiple projects (multiple Bugzilla components).
  8. (P2) In Kenai dashboard show locally available NBM projects for given netbeans.org project and allow to jump to them.
  9. (P2) Navigation from NBM project (Projects explorer) to corresponding netbeans.org project in Kenai dashboard.
  10. (P2) Easy to file an issue for a NBM project or file - the IDE automatically selecting component/subcomponent.
  11. (P2) See presence status of colleagues and be able to start chat with individual people.
  12. (P2) Use project chat rooms for team chat.

Needed changes due to differences from standard Kenai.com setup

  • The hg repositories are external (from Kenai site point of view). We need to handle hg.netbeans.org repositories as belonging to the site (so the IDE recognizes them as belonging to the kenai projects).
  • There's one SCM repository for all projects, no per-project repositories. There is no obvious mapping for a place in repository to the corresponding netbeans.org project (and vice versa).
  • Features 8, 9, 10 need the mapping. (Features 4 and 5 partially.)
  • When searching for an issue in the commit dialog, without the mapping the search would work but would have to run on the entire Bugzilla database. It is highly desirable to limit the scope to component at least, or even subcomponent.
  • Also an external developer interested in code of a specific projects would want some guidance rather than obtaining a full clone of everything... (If projects had at least hg.netbeans.org/main specified and we had the mapping to corresponding areas in source code, then we could provide the get sources option on the project level and after cloning offer to open just the relevant NBM projects.)
  • People should not be able to create new netbeans.org projects from the IDE.
  • Until the IM server is installed, the chat features should be somewhat disabled.

Notes

There's an idea to use .hgmail file for mapping parts of repository to netbeans.org projects. It contains mapping of repository areas to mailing lists (used by mercurial to actually send mails about integrations). The lists will be hosted on the netbeans.org projects, so will include the project name in the address. This still does not give us finer mapping to Bugzilla subcomponents. (Some projects may have more commit lists which in fact may correspond to subcomponents, but that likely won't be many.)

The advantage of .hgmail mapping is in that it will be naturally kept up-to-date with new projects or changes because people want the mails to be delivered correctly. If we create a separate file with the mappings (also e.g. to include the subcomponents), it will tend to run out of sync.

Changes in bugtracking

  • Image:yes_NBSupportForNbOrgMigration.png Need support for custom fields - the NB Bugzilla doesn't use the severity field, it has custom field cf_issue_type instead, moreover on a prominent location.
  • Different field labels - e.g. product -> component - we probably should be able to use the values returned from Bugzilla. (Partially done)
  • Image:yes_NBSupportForNbOrgMigration.png New fields - qa_contact and status-whiteboard. (Done)
  • Create queries over multiple Bugzilla components: minimalistic solution would be to have a NB Bugzilla repository in the Services tab and call such queries from there. Better would be to allow this even on queries created for individual netbeans.org projects from Kenai dashboard.
  • Image:yes_NBSupportForNbOrgMigration.png Allow to change the component - was not supported even for a non-Kenai Bugzilla repository in 6.7.

Required work, variants

Several variants being considered within 6.8 timeframe. The scope can be quite different for the next release.

  • Only Bugtracking: Enable bugtracking integration only, no Kenai features.
  • Minimal: IDE will accept startup switch "
    -J-Dkenai.com.url=https://netbeans.org
    " which will redirect all WS API calls to netbeans.org instance. All UI will still show "Kenai" everywhere, but working against netbeans.org. Minimal attempts to adapt to the netbeans.org site specifics, so some features would not work.
  • Will require more initial setup from people and may expose some strange things in UI which makes it less usable and acceptable for our developers.
  • Regular: IDE will alow to switch between Kenai instances (e.g. kenai.com, netbeans.org, java.net), but always working with one at a time.
  • User will be able to select the Kenai instance either in some dialog invoked from Team menu or in Options. Probably have kenai.com and netbeans.org preconfigured.
  • Accommodated to netbeans.org specifics. Solved sources-project mapping. New project creation disabled. Chat disabled until available on netbeans.org.
  • All occurences of string "Kenai" in the IDE replaced by parametr (so e.g. "NetBeans.org" appears instead).
  • Maximal: IDE will allow co-existence and parallel connection to multiple Kenai instances. Clearly out of scope for now.
Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo