520 likes | 688 Views
ALM ToDo UCM and Buildforge demo IBM Internal only. Stuart Poulin stuart.poulin@us.ibm.com 206-686-9824. Disclaimer and Non-Disclosure. IBM Rational Plans are subject to change Nothing in this document is intended to create any representations or warranties
E N D
ALM ToDo UCM and Buildforge demoIBM Internal only Stuart Poulin stuart.poulin@us.ibm.com 206-686-9824
Disclaimer and Non-Disclosure • IBM Rational Plans are subject to change • Nothing in this document is intended to create any representations or warranties • IBM Rational warranties are contained in the applicable license agreements
Demo to Present • ALM Baseline and Build tools • UCM, NonUCM, and Combined UCM/NonUCM collaboration in ALM • Describe ALMBaseline and BTBuild (Build) records • Describe tie into ALMActivities • Describe reference to ALMTasks and Requests • Show in-the-box UCM integration as it works with ALM • Demo an example of how BuildForge can be used to drive and populate ALM baseline and build data
Audience • Release Engineers • Program Managers • Developers and Managers • Quality Engineers
Prerequisites • View a CQ ALM demo explaining the overall high level ALM work flow and features.
Release Engineer • Integrate and build delivered changes • Create baselines • Developer • Work on activities • Develop and deliver changes • Team Lead • Assigns activities to complete tasks • QE Lead • Ensure quality of delivered changes to releases • Tester • Works on activities • Test changes in baselines What is CQ-ALM?Brief introduction • Out-of-box ALM Solution for ClearQuest (schema and packages) • Process model focused on Requests being submitted for a Release of a Project • Requests are planned as Tasks and performed as Activities • Workload can be balanced across Phases and Iterations of a Project • Each project team can customize the configuration • Baseline and Build records track progress of activities • Submitter • Submits request for change • (Validate release) Change performed in the context of Request Project Category Task • Change Control Mgr • Triage requests • Assigns tasks to projects Release Activity Project and Plan definition Work and Delivery definition Baseline Build
Builds and Baselines Activity Activity Activity Baseline Project Build Baselines capture the set of completed activities Builds track the status of the build Testers use these to determine what to test
Putting it all together Group User Security-context Role prev / next prev / next super / sub prev / next Project Iteration Phase • Assess • Plan • Design • Implement • Test • Deploy Release Category super / sub Project definition • This demo will focus on ALM: • Activities • Baselines • BTBuilds (Builds) Request Task Activity related related related Failed_in Validated_in Fixed_in • Defect • Enhancement • New Feature Baseline BTBuild Work and Delivery definition
Optional: Activities are UCM enabled Contributors Scenarios • Assign, performand deliver work activities • Monitor buildsand quality • Collaborate UI / Forms • Task types • Activities • Task actions
Baseline Choose Project 1 Identify UCM stream 2 Identify PVOB or Location 3 List completed activities (Diff Baselines) 4 Automate the creation of the Baseline and Build records as part of your build process ALM Baselines provide instant knowledge of Status, Disposition, and location of Activity artifacts in UCM and non-UCM baselines and builds.
Activities can be tracked in Baselines Contributors Scenarios • Assign, performand deliver work activities • Monitor buildsand quality • Collaborate UI / Forms • Task types • Activities • Task actions
Baseline/Build scripts provided with ALM • Designed to interface UCM and NonUCM Change Management (CM) systems to ALM • Written in RATLPerl. Released as source to allow you to extend for your own process if needed • All explained in ALM documentation and have a commandline –help for addition information.
Baseline/Build scripts provided with ALM • Scripts supplied and presented in this demo • Create_baseline_record.pl • Creates an ALMBaseline record from the commandline • Create_build_record.pl • Given an ALMBaseline record creates a BTBuild record off it • Update_baseline_record.pl • Updates an existing ALMBaseline record from UCM or supplied commandline • Update_build_record.pl • Update an existing BTBuild record from the commandline • Runbasicquery.pl • Runs a CQ stored query given commandline params for filters and saves the output to a file.
BTBuilds are created off Baselines Choose Project 1 Set Build Type and Build Status 2 Choose Baseline 3 Automate the creation of the Baseline and Build records as part of your build process
Examples Projects supplied with ALM • UCM examples • Project_ToDo • Agile, • Create Activities when needed. All will be tracked with UCM • Default “Task” and “Request” for project • Project_ToDoNAS • NAS = “Not Authorized to Submit” • Example of a more strict project where ALMActivities must be assigned to a dev before they can work them in UCM • Project_ToDoOffering • “Offering” or “Product” level project • Uses Composite Baselines to group components into an offering
Example Projects continued • NonUCM examples • Project_ToDoNonUCM_Component • Time based rules to find activities completed since last Baseline • Mixed UCM and NonUCM • Project_ToDoNonUCM_Offering • Uses Composite ALMBaseline record to group UCM and NonUCM components together
ALM_Project_ToDo • Happy path scenario using ALM and UCM • Activities can be created and assigned first in ALM • Will show up in ClearCase UCM drop down choice • Activities can be created by the Dev as needed • Setting a default project will set the default Task and Request • Or, another Task created or selected as needed • Project setting of Default task allows for quick and unimpeded checkouts. • Activity can be reassigned to a more appropriate task at a later time
Project_ToDo • Demonstrates standard workflow in ALM and UCM • DEMO Steps • Checkout in ClearCase UCM • Standard, “in-the-box” UCM integration is used to tie ClearCase UCM to the ALMActivity • Prompting for “Activity” to use • Option 1: Use an existing assigned activity • Option 2: New -> ALMActivity – create an activity as needed. • Show setting the default Project – log off and on will reset this • Modify File. • Checkin – Use same Activity • Deliver to Default • Imagine scenario is repeated by many developers during the day.
Build Forge Project • O1_ALM_Project_ToDo • Start the Build • Review Build steps • UCM mkbl – Standard UCM Baseline is made • Create_Baseline_Record • Runs a diffbl between this new baseline and the last ALMBaseline record stored in ALM. • Minimal extra information need be supplied as script can gather information from both ALM and ClearCase UCM • Mock source build – builds a web page example • Create_Build_Record • Given the above Baseline, one or more builds may be created • ALM reuses BTBuild record • Review in ALM the new Baseline, Activities in the Baseline, BTBuild • Run Query <Bob to name>
When to create Baseline and Build records • Your choice on when to do a source build, create an ALMBaseline, and ALMBuild • Not every UCM baselines needs an ALMBaseline • Only “significant” baselines need be tracked. • For example: You may want to not create baseline or build records unless source builds successfully
Build Forge Environments for ALM demo UCM • 00_ALM_Global • Login, DB info, and pointers to standard ALM queries used by all the ALM the projects • Sections are Marked for what you should edit for your site__EDIT_VARS_BELOW__ • 00_ALM_UCM • Edit Section: __EDIT_VARS_BELOW__ • Provide: PVOB, Stream Names, and integration View names • Project ID’s will be filled out from 00_ALM_Setup_ENV project • RUN THIS FIRST – RUN IT ONLY ONCE (Next slide) • 01_ALM_Project_ToDo • Does nothing • .include 00_ALM_UCM • Setup just for consistency: When we get to NonUCM we will need to track more variables
Build Forge Environments for ALM demo UCM • 02_ALM_Project_ToDoNAS • .include 00_ALM_UCM • 03_ALM_Project_ToDoOffering • .include 00_ALM_UCM • Stores Baselines and streams used in Composite for reference
NonUCM • 00_ALM_NonUCM • Stores variables and pointers to queries used by NonUCM projects • 04_ALM_Project_ToDoNonUCM_Component • .include 00_ALM_NonUCM • 05_ALM_Project_ToDoNonUCM_Offering • .include 00_ALM_NonUCM • .include 00_ALM_UCM (both) • Stores PVOB/Location and Baseline names from contributing components
Build Forge Project: • 00_ALM_Setup_ENV • Runs an ALM query looking for “Project_ToDo%” • Fills out ENV variables with these project IDs • Environments: • 00_ALM_UCM • 00_ALM_NonUCM • Creates “Seed” Baselines • Needed to diffbl against for the next baseline created. • UCM Issue: Imported Baselines report their originating stream. ALM allows us to override this with the stream the baseline has been imported to. Diffbl therefore finds a consistent stream. • Option is to use Foundation Baselines • Seed Baselines created for NonUCM to use as “Time References” for next baseline in.
Project_ToDoNAS • 02_Project_ToDoNas • Requires ALMActivities be assigned and activated before developer can check out using them. • Attempt by developer to create Activity results in: The entity's Validation Hook failed, the error message is: You are not approved for this action on the current ALMProject • Instead, check out using an Activity from the Drop down menu • Rest of steps are identical to Project_ToDo • Checkin, Deliver to default • Run Buildforge 02_Project_ToDoNAS • Creates Baseline and Build records for Project_ToDo_NAS • This baseline and baseline from 01_Project_ToDo will be used in a composite baseline in the next step
03_ALM_ProjectToDo_Offering • Start BF Build • Creates a UCM Composite Baseline • Create a ALM Baseline off this UCM Baseline • The Baseline is automatically discovered to be a Composite Baseline • “Composed of Baselines” field on ALMBaseline record is filled out • Project_ToDo and Project_ToDoNAS baselines are used in the composite but imagine that many components may be used • Minimal information need be passed to create_baseline_record as it can ask ClearCase UCM for information • Extra steps are for UCM Rebasing the Offering stream to pickup new baselines from components • mkbl, create_baseline_record, and create_build_record are same a previous UCM projects
04_Project_ToDoNonUCM_Component • UCM is not used in this example • Create_baseline_record options change: • “Location” needs to be passed since there is no UCM PVOB, • Example: This could be repository for your CM system, or a directory • Option to pass Location is –pvob <location> • Field on ALMBaseline record is “PVOB or Location” • Adding Activities to ALMBaseline record • Since there is no “UCM diffbl” a query is run to find ALMActivities that are completed since the last ALMBaseline was created • Create_baseline_record has added option “-from” to allow activities to be read from a file and placed on the baseline record. • Create_build_record remains the same
04_Project_ToDoNonUCM_Component continued • Create ALMActivities for this project • Complete them • Run this BF project • Query will run and populate $BF_ROOT/Activities.txt • This will be read in from create_baseline_record • Navigate to new ALMBaseline record
05_ALM_ToDoNonUCM_Offering • Run this project and navigate to new ALMBaseline and BTBuild records • Example of how to combine both UCM and Non-UCM baseline records into a single composite type baseline in ALM • Inputs baselines from Project_ToDo and Project_ToDoNonUCM_Component • Projects to use for Baselines are stored in BF Env • Query is run to find latest baselines from these ALMProjects • No UCM - can’t ask UCM for what’s in the Composite, we construct ALM composite with added options to create_baseline_record: • -add_composed_of_baseline <existing_ALMBaselines> • -add_pvob_or_location <pvob_or_location> • Can be abbreviated –add_comp –add_pvob • “Composed of Baselines” on ALMBaseline will populate with component baselines
Using Demo BF for your own env • Stu Note: Add this in
Additional Information Details on UCM/ALM integration
Brief Overview of ALM UCM Integration • What is a UCM Activity • How does this tie into ALM • ALM Activity record • How do UCM Activities end up in a UCM Baseline? • Direct delivery • Alternate Delivery • Composite Baselines • Interproject Rebase • Baseline Delivery • How do UCM Activities relate to ALM Activities. • When the UCM integration is turned on for a UCM Project, all UCM activities get tracked by ALM Activity records. • How do ALM Activities end up in a ALM Baseline Record? • A UCM Activity is delivered to the UCM Project Integration Stream, the corresponding ALM Activity is Completed.
Create_baseline_record.pl script • Create_Baseline_Record script runs a modified ClearCase diffbl against previously stored ALM Baseline record. • Diffbl walks contributed UCM Activities to find actual UCM Activities delivered or rebased to a stream. • Create_Baseline_Record script creates references to ALM Activities on the ALM Baseline record. • Not all UCM Baselines need an ALM Baseline record – only a significant UCM baseline needs an ALM Baseline record.
How do ALM Activities end up in an BTBuild record in ALM? • Create_build_record creates a reference from the BTBuild record in ALM to the ALM Baseline record.
How do BTBuild references show up on an ALM Activity record? • Fixed_In_Baseline field on the ALM Activity record displays which ALM Baselines and BTBuilds the ALM Activity is part of. • For each found ALM Baseline record there may be several BTBuild records found
How does the Task relate to Activity, Baseline, Build ? • The ALM Activity record already references the ALM Task record. • The “Activities” field of the ALM Task record queries which Fixed in Baselines and BTBuilds the ALM Activity participates in. This in essence is the BTBuild the UCM and ALM activity can be found in.
How are Composite Baselines tracked? • 2.8.1. UCM Composite Baselines are Baselines that are “composed” of other baselines. The UCM Composite Baseline groups member baselines under a single baseline. To create a UCM Composite Baseline, UCM baseline dependencies are first set, the top level UCM Component that will house the Composite baseline is set to depend on member baselines. • In this example, the offering_rootless UCM component is set to depend on baselines from the comp01 and comp02 UCM components
How are Composite Baselines tracked • When a baseline is made in the offering_rootless component it will be composed of baselines from the components it depends on.
How Composites are tracked • 2.8.2. Detection of composite baselines is automatically done by the create_baseline_record script. If the UCM Baseline includes “member” baselines it is determined to be a UCM Composite Baseline. The member baselines of the UCM composite baseline will be placed into the “Composed of Baselines” field on the ALM Baseline record.
Only Composite Baselines of Ordinary Baselines are currently supported. Composite of Composite baselines are not currently supported
It is required that any Composite ALM Baseline record you want to include into another Composite first be decomposed into ordinary ALM Baseline records, then a Composite of these ordinary ALM Baselines be made.
Methods to decompose Composite baselines • In UCM • Set foundation baselines, and baseline dependencies to point to the originating ordinary baselines for the composite baseline • Can be time consuming and will likely need another project • In ALM • Use the options to create_baseline_record.pl-add_composed_of_baseline <baseline>-add_pvob <pvob>Must be supplied in pairs.Supply one pair for each originating baseline
How do ALM Activities from Composed of Baselines (UCM Member Baselines) appear on the ALM Task records? • An ALM BTBuild record is created off the ALM Baseline Record. • Each BTBuild record has a unique ALM ID. The display of ALM Activities on the ALM Task record will include a header of Composite.BTBuild.Build_System_ID. Entries in this column will display the ALM Build_System_ID (name) of the BTBuild created off the ALM Composite Baseline.