Project Home
Project Home
Trackers
Trackers
Documents
Documents
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
wiki2948: F27IntegrationDesignDoc

Overview#

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

Requirements#

  • IDE shall provide a source packages discovery mechanism within IDE to browse packages available to download from foundry27
  • IDE shall provide a command to import packages discovered on Foundry27 which creates fully functional IDE project(s)
  • IDE shall present the source packages in an easy to navigate manner (i.e. hierarchical, with filters or/and search)
  • User should be able to pick a package associated with particular software version or/and with SVN version (trunk, tag or branch symbolic name)
  • User shall be able to do SVN checkout. SVN checkout means that that user can get history, perform and update and commit changes back to SVN
  • IDE shall be able to create additional projects/files which are required for package, which are not part of SVN source tree, i.e. system builder project for BSP

Scenarios#

  • User opens "Import -> QNX Source Package and BSP" wizard
  • User select the import method - from F27 or from local archive file
  • If user select to import from F27:
    • User browses the remote F27 packages from the wizard panel, sees the selected package description, 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 project information page with project location, project prefix and working settings. User click "Next"
    • User click "Finish" to complete the wizard and invoke the import action
  • If user select to import from local archive file
    • User browser to select the local archive file
    • User sees from the next page the selected package information, click "Next"
    • User click "Finish" to complete the wizard and invoke the import action

Design overview#

U.I. - QNX remote source package wizard#

  • First panel has two radio buttons to select the import method - from Foundry27 SVN repository or from local archive file. Initially the import from F27 method is selected.
  • The panel also has a "File Name" text field and a "Browse..." button. Both the text field and button are disabled initially and are only enabled when user selects to import from local archive.
  • If user select the import from local archive file, he has to either input the file name to the "File Name" text field or use the "Browse..." button to select the archive file.
    • A BSP file parser validates the file selected to ensure it is a valid BSP archive file. If the file is not a valid BSP archive error message will present at the panel message field and the "Next" and "Finish" buttons are disabled.
  • Snapshot of the first panel:

F27IntegrationDesignDoc/Import_Method_Selection_Page.jpg

  • If user selects to import from F27
    • Second panel shows the F27 package in a tree structure; Packages are expandable if they contain sub-packages
    • Second panel has a "Search" field to search and filter packages based on name; a "Description" field showing the brief description of the selected package
    • Snapshot of the F27 package listing page:

F27IntegrationDesignDoc/Remote_Package_Listing_Page.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
    • User needs to setup the correct repository connection before he can proceed to the next panel
    • Snapshot of the SVN "New Repository Wizard":

F27IntegrationDesignDoc/f27_wizard_new_repository.jpg

  • If user selects to import from local archive file
    • Second panel shows the selected package information in a table viewer; table is read-only
    • Second panel has a "Description" field showing the brief description of the selected package
    • Snapshot of the local package information page:

F27IntegrationDesignDoc/Local_Package_Page.jpg

  • The last panel shows the projects name prefix to be created and the location of the project.
  • The last panel also has a "Add project to working set" control to allow user to setup working set and add project to it
  • Snapshot of the third panel:

F27IntegrationDesignDoc/Project_Settings_Page.jpg

Action#

  • The action is the extension to the SVN check-out 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]