Project Home
Project Home
Trackers
Trackers
Documents
Documents
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
wiki2948: F27IntegrationDesignDoc (Version 18)

Overview#

This is the design document for the "F27 Integration" feature.

Requirements#

  • IDE shall provide a source projects discovery mechanism to browse projects available to download from foundry27
  • IDE shall present the source projects hierarchically in an easy to navigate manner
  • IDE shall provide a command to create projects discovered on Foundry27 which would be build-able
  • IDE shall be able to import from a branch, a tag or from the trunk
  • IDE shall allow the user to select either a SVN checkout or export
  • IDE shall keep the SVN checked-out code "alive"; user shall be able to get history, perform an update and commit changes
  • IDE shall create System Builder project for BSPs

Scenarios#

Scenarios 1 - use "SVN Repositories" view and check-out directly from the source tree#

  • User sets up F27 repositories in the "SVN Repositories" view, browse the available source tree
  • User right-clicks on the source and select "QNX Checkout" from the context menu

Scenarios 2 - use IDE import wizard to locate and import remote packages on F27#

  • User opens "Import -> QNX Remote Source Package" wizard
  • User browses the remote F27 packages from the wizard panel, sees the selected package description, and chooses between a SVN "check-out" or "export"
  • User selects one package and click "Next"
  • If this is the first time the user checks out from F27, the SVN "New Repository Wizard" is invoke for the user to setup the new repository
  • User sees the dependent package(s) with warning message at the bottom of the panel that the package will not build if he does not check-out the dependencies
  • User makes the selection from the dependencies checkbox(s) and click "Next"
  • User sees the list of projects which will be created after the check-out. User can unselect any project from the list if he already has that project created in the workspace
  • User click "Finish" to complete the wizard and invoke the import action

Scenarios 3 - use a new "F27 view" to browse and check-out F27 packages#

  • User opens the "F27 View" and browses the hierarchical list of remote packages
  • User selects one package, right clicks to bring up the context menu and selects "checkout"
  • If this is the first time the user checks out from F27, he is shown with a login panel for the F27 user name and password
  • User is prompted with a list of dependent package(s) for him to select to checkout at the same time
  • User makes the selection and click "Ok" to invoke the checkout actoin.

Design for scenario 2#

Design overview#

U.I. - QNX remote source package wizard#

  • First panel shows the F27 package in a tree structure; Packages are expandable if they contain sub-packages
  • First panel has a "Location" field showing the URL of the selected package; a "Description" field showing the brief description of the selected package
  • Example of the tree in the first wizard panel:

F27IntegrationDesignDoc/f27_view_example_new.jpg

  • If this is the first time the user trying to checkout from a F27 repository, the SVN "New Repository Wizard" is invoked with the repository field pre-filled; The user needs to setup the correct repository connection before he can proceed to the next panel
  • Example the SVN "New Repository Wizard":

F27IntegrationDesignDoc/f27_wizard_new_repository.jpg

  • Second panel shows package dependencies in a hierarchical tree; the tree shows the complete dependency; user is allow to select which dependent package(s) to check-out at the same time
  • Example of the tree in the second wizard panel, packages with * are selected

F27IntegrationDesignDoc/f27_wizard_package_dependency.jpg

  • Third panel shows the projects (name and description) to be created when checkout is done; each project name is proceeded with a check-box to allow the user to de-select it
  • Third panel has a "Details" field at the bottom showing the detailed information about the projects
  • Example of the third panel:

F27IntegrationDesignDoc/f27_wizard_projects.jpg

  • The last panel allows user to define working set name, check-out directory and for BSP project - the prefix of the project
  • Example of the last panel:

F27IntegrationDesignDoc/f27_wizard_working_set.jpg

Action#

  • The action is the extension to the SVN check-out (or export) command
  • The action goes through the package dependency and recursively checks out depending source from F27
  • The action looks at the package meta data (module.tmpl?), creates correct type of project(s) and defines appropriate project dependency
  • The action sets up the required project properties (compiler options, build targets, etc.) so the projects are build-able after the checkout
  • The action should not change the source tree layout; this is to preserve the "live" status of the checked out source
  • The action should setup the "prebuilt" and "staging" areas for the project when necessary, and create the BSP mega project

Design details#

Add-on features#

A "F27 Welcome" page with community news, posted downloads and updated product marketing collaterial#

  • The welcome page is part of the Eclipse "welcome" perspective and is invoked from "Help -> Welcome"
  • The welcome page has links to remote F27 pages and to local help pages
  • The welcome and can have links to a F27 cheat sheet with action to perform F27 checkout

A notification mechanism to pull package update information from F27#

  • Based on what the user has checked out the notification displays package update, new downloads, new tag/branch for the source, etc.
  • Notification can be in the form of the Eclipse update notifier or an icon on the tool bar
  • There is a preference page to set the granularity of the notification (get all, get only new downloads, etc.), and allow user to disable the mechanism

Design Review#

Design review meeting minutes - Nov. 21st, 2008#

  • Attendants - Fred Plante, Elena Laskavaia, Andy Jin
  • Reviewed the proposed "F27 view".
  • Fred suggested a "F27 Welcome" page to promote the new feature and the F27 site
  • A new U.I. scenario is proposed - use the "QNX Source Package" import wizard, add remote package to the list of available packages to import
  • Discussed the notification mechanism. Proposed a preference page to tune its granularity and allow user to turn if off
  • For 6.4.1 release, we will go with the Scenarios 2 - use IDE import wizard to locate and import remote packages on F27.
  • Action item: Andy to updated the design doc to include new proposals and new scenarios - Done
Attachments:
Image Project_Settings_Page.jpg [F27IntegrationDesignDoc/Project_Settings_Page.jpg]
Image Remote_Package_Listing_Page.jpg [F27IntegrationDesignDoc/Remote_Package_Listing_Page.jpg]
Image Local_Package_Page.jpg [F27IntegrationDesignDoc/Local_Package_Page.jpg]
Image Import_Method_Selection_Page.jpg [F27IntegrationDesignDoc/Import_Method_Selection_Page.jpg]
Text f27.xml [F27IntegrationDesignDoc/f27.xml]
Image f27_wizard_new_repository.jpg [F27IntegrationDesignDoc/f27_wizard_new_repository.jpg]
Image f27_wizard_working_set.jpg [F27IntegrationDesignDoc/f27_wizard_working_set.jpg]
Image f27_wizard_projects.jpg [F27IntegrationDesignDoc/f27_wizard_projects.jpg]
Image f27_wizard_package_dependency.jpg [F27IntegrationDesignDoc/f27_wizard_package_dependency.jpg]
Image f27_view_example_new.jpg [F27IntegrationDesignDoc/f27_view_example_new.jpg]