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

Overview#

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

References:#

  • MRD - tdb

Requirements#

  • R1: Introduce a UI to discover and show packages available on Foundry27 for checkout
  • R2: Available for download could be:
    • R2-0: Source code for projects
    • R2-1: Specific stable, milestone, integration or nightly builds
    • R2-2: Latest builds of the above categories
    • R2-3: Trunk
  • R3: In all cases, the import is simply an SVN check-out code from a branch, a tag or trunk. The link with SVN is "alive" (can get history, update, etc...)
  • R4: BSPs are just a specialization of the above where a System Builder Project is created in addition to the other projects
  • R5: Source package are hierarchical; e.g. One can pick only a subsystem of a parent package (e.g. System from Core OS)

Scenarios#

Use one of the following mechanisms to check-out packages from F27#

  • Add F27 source locations to the "SVN Repositories" view and check-out directly from the source trees
  • Launch the IDE import wizard "Import -> QNX Source Package" to locate and import remote packages on F27
  • Open a new "F27 view" to browse F27 packages, or use an embedded browser to connect to F27 packages tree page

Add-on features#

  • A "F27 Welcome" page with community news, posted downloads and updated product marketing collaterial
  • A notification mechanism to pull package update information from F27
  • Get source update from foundry use SVN repository synchronization and update

Design#

General#

  • A UI to show available F27 packages browse-able in a tree structure
  • An action to check out F27 packages and create build-able projects

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

UI design overview#

Action design overview#

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

UI design overview#

Action design overview#

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

UI design overview#

  • A "F27 View" is added to a QNX perspective. The view is the front-end interface for user to browse and checkout F27 packages
  • The data provider for the view comes from a meta info record which feeds the data on F27 packages
  • The record is hosted on F27. The view dynamically queries the record so the data is always up to date
  • The view lays out the data in a hierarchical manner, presents in a project specific structure.
Example of the view:

F27ViewExample/f27_view_example_small.jpgClick to enlarge

  • The view distinguishes the checked-out package in different color (or dim the package) so the user won't accidentally check-out the same package twice
  • The view hides the technical details of the F27 packages thus saves the user complicated setup steps
  • The view should be headless wherever possible; only interacts with the user when necessary
  • The view should be dynamic - querying the F27 periodically for update so the user always sees the live package status
  • The view should have notification mechanism built-in so the user will be notified (in the status bar) when there is update available

Action design overview#

  • The action is invoked from the view context menu and from the view cool bar
  • The action is the extension to the SVN check-out command with added QNX logic
  • The action goes through the package dependency and recursively checks out depending source code 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 without manual tune up
  • The action should not change the source tree layout; this is to preserve the "live" status of the checked out source
  • The action should take some special steps to setup the "prebuilt" and "staging" areas for the project whenever necessary

Add-on feature 1 - F27 Welcome page#

  • A welcome page with community news, posted downloads and updated product marketing collaterial

Add-on feature 2 - Client side notification mechanism#

  • User gets notification when there is update avilable to the F27 project(s) he has checked out

Add-on feature 3 - Get source update from F27#

  • User sees the project being "live" as he can get history, synchronize, update and commit changes to F27
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]



Active Tab Versions Inactive Tab - left sideAssociations Inactive Tab - left sideAttachments (10) Inactive Tab - left sideBack LinksInactive Tab - right side