Collaborative ALM
Free SaaS for open source projects on Amazon EC2
         
Git Workshop by Clearvision
Version 11 (diff)   (Feb 02 04:29 by aron.gombas) | 4 comments and attachments   (Feb 01 11:10 by aron.gombas) | No child pages
Tags:   No tags associated yet.
All Tags...
Planned server maintenance: Every day at 20:00-21:00 GMT
Limited or no service will be available that time.

Members
Members: 33 (14586)
Administrators:
- adam.berkes
- aron.gombas
- j.koppany
- support

Intland Blog - Feed
Webinar: How to optimize your software development processes with codeBeamer and Git/Mercurial
Aug 25 10:58
Intland Software joined the Eclipse Foundation
Aug 10 07:54
codeBeamer 5.5 is on the way
Jul 14 08:06
Webinar: Working with codeBeamer and JavaForge
Jul 07 04:50
Working on the beach with Eclipse, Mylyn and Mercurial
Jun 11 05:53
Intland at Eclipse Embedded Day Stuttgart 2010
Jun 07 03:39
Webinar: Eclipse & Mercurial - how to use Mercurial from Eclipse
Jun 02 07:18
MercurialEclipse 1.6.0: Enterprise Codebases with Ease
May 11 02:06
codeBeamer Eclipse Studio: Collaborative workspaces can now go offline
May 06 02:39
Presentation: Integration of a Holistic Application Lifecycle Management Approach with ITIL V3
Mar 24 10:52

dzone.com: latest front page - Feed

dzone.com: fresh links for developers
Top 3 Performance Problems in Custom Microsoft CRM Applications
Today 17:54
How to use JMS for Synchronous Communication
Today 17:46
7 Things About Java 7 (Video)
Today 17:35
Mongrel2 1.0 ready for your glorious consumption
Today 16:22
IT Salaries: Want to Earn More? Fire People
Today 16:02
Java Synchronization (Mutual Exclusion) Benchmark
Today 16:02
Daily Dose - Release Candidate for PostgreSQL 9.0
Today 16:01
IDE 2.0: The Age of Intelligent IDEs
Today 15:59
Scala: SwingBuilder Essentials
Today 15:59
DateTime.Now in v4.0 Causes Dynamic Memory Allocations
Today 15:31

[ properties ] [ hide ]

codeBeamer and Git Workshop

Workshop Instructions

On this wiki page you find the instructions for the various activities that will be covered in the Workshop. The instructions expect you to be working on a Ubuntu Linux desktop with git and firefox installed and accessing a pre-configured codeBeamer server. If using a different environment then the instructions will need to be amended accordingly.
For the sample files (Git dumpfile, Android issues CSV, etc.) please see the attachments of this wiki page.

All text in RED boxes like this will be instructions for you to follow

To help evaluate the tool we would like you to score each activity as you complete it based on the following criteria (based on the tool and not the instructions!) :

  • ease of accomplishing activity
  • speed of accomplishing activity
  • supporting features for activity
  • user interface

If you have any queries or comments, please contact us.

These instructions have been exported to PDF using the inbuilt pdf export to provide you with a paper copy.

Activity 1 - User Registration

Before you can work in codeBeamer it needs to know who you are. There are several ways in which this can be accomplished and you can choose the best for you depending upon your security policies or requirements.

Here we will have each user set up their own Accounts and register their own details.

In reality the log in will most likely be connected to a corporate exchange server so account registration will be automatic.

  1. Open Firefox Web Browser on your desktop and connect to the codeBeamer URL
  1. Under the login prompt - click the Register link
  1. Your user name should match your account on your client desktop
  1. Fill in your details as directed on the New Account page
  1. Click Submit
  1. Now you are logged in and can look at your private wiki page

This implementation is set to allow automatic registration - this can be restricted.

Communication and authentication with codeBeamer managed git repositories uses SSH keys. So we will now generate our keys for our new user and associate them with our CB account.

  1. Open a terminal window on your desktop
  1. Type the following commands using your own student id and accepting the default options.

[student#@ubuntu]$ ssh-keygen -C "student#" -t rsa 

Generating public/private rsa key pair.

Enter file in which to save the key (/home/student#/.ssh/id_rsa): 

Enter passphrase (empty for no passphrase): 

Enter same passphrase again: 

Your identification has been saved in /home/student#/.ssh/id_rsa.

Your public key has been saved in /home/student#/.ssh/id_rsa.pub.

The key fingerprint is:

5c:56:48:71:82:7a:1c:a0:15:5b:2f:ff:72:64:60:58 student#

Next action is to associate your newly created shh key with the codeBeamer account.

  1. Run the following command: cat ~/.ssh/id_rsa.pub
  1. Copy the entire output
  1. Return to your codeBeamer
  1. Log in again or just select the 'My Start' tab
  1. Now select the 'Account Info' tab
  1. Select the 'Public Ssh Keys Admin' link
  1. Paste the key from the terminal into the box
  1. Save

Next tell git who you are:

  1. Enter the following commands in the terminal using your student id:
 

git config --global user.name 'student#'

git config --global user.email 'email@address.com'

Activity 2 - Creating and Joining Project

For the purposes of this workshop each of you will create your own sandbox project.

  1. Download the git.dmp attachment to this wiki page - this is a test can you do it on your own? ;)
  1. Select the 'Projects' tab
  1. click on the 'New Project' link
  1. change template project to workshop
  1. name the project student# project
  1. Add a description - feel free to use any wiki markup here. If you do, change the Description format to wiki
  1. Change the category to Education
  1. Click the 'Source Code >' button
  1. Select Git
  1. Select Create New Managed Repository
  1. Click 'Browse' and navigate to the git.dmp file downloaded at the start
  1. Click Finish
  1. Explore your new project

Next step is to make your Project Public and to allow others to join it

  1. Select the 'Admin' tab
  1. Select the 'General' tab
  1. Select the Public with Join approval - project administrator must approve Join requests
  1. Click 'Save'

  1. Return to the 'Projects' tab
  1. Select 'Available Projects' link
  1. Now request to join as many projects as you wish - points will be given for the best reasons!
  1. ensure you also request to join the workshop project

Now lets find out who likes you !

It is possible to jump straight to the Join Requests from the entries here

  1. Select 'My Start' tab
  1. Look at the Project Join Requests Pending section
  1. If you have a (0), then you are not popular and have no friends :@
  1. If you have lots of friends wanting to be in your cool project you can now decide if they are worthy of joining. :D
  1. Select the 'Members' tab
  1. Select the 'Join Requests' tab
  1. Now you can (y) or (n) the requests

We will now accept you to the main Workshop Project and Assign Roles

Activity 3 - Explore Project Wiki

Our Projects are now set up, so lets see what we can do with them.

First lets add some more information to our own Project Wiki and Personal Wiki.

You will not see anything until some issues are assigned to you

  1. Select 'My Start'
  1. Select Edit link
  1. Add the following text to the Wiki Markup and Save

[{ServiceLayerDemoPlugin}]

Next lets add the tag cloud plugin to the Project sidebar.

You will need to add some tags to see anything

  1. Select 'Projects'
  1. Select your project Student# link
  1. Select Edit from the sidebar
  1. Add the following text to the Wiki Markup and Save

[{TagCloud}]

Activity 4 - Document Management

In most Project scenarios you want to be able to quickly and easily locate supporting documentation.

Lets have a look at the CB Document Manager.

  1. Download the Requirements documentation tar file attached to this page
  1. Select the 'Documents' tab
  1. In the left hand Tree view select the Requirements directory
  1. Select the New File link
  1. Browse to the tar file
  1. Tick the Unpack ZIP/TAR checkbox
  1. Click Add button

Activity 5 - Sprint Planning

Here we will look at how trackers could support a basic SCRUM process.

  1. Download the android-issues csv's attached to this wiki page
  1. Select the 'Trackers' tab
  1. Select the Product Backlog tracker
  1. From the more link select import
  1. Browse to the android-issues.csv
  1. change the Field Separator to a comma
  1. Click on the Next > button
  1. Change Start Import at Row: to 2
  1. Match up the fields as per the following table - all other fields should be - not available
  1. Click on 'Next'
  1. set the Account Mapping' to your user
  1. Click on 'Next'

CB Field Android Field

ID not available

Summary Summary

Description ID

Priority Priority

Status Status

Owner Owner

Type Type

Hours Estimated Hours

As the project owner you have full access to all aspects of the project, but in reality you would assign project roles to individuals and grant access and control functions based on those permissions.

We now have our Product Backlog, we can review what Issues will be in our Sprint.

  1. In your Product Backlog Tracker
  1. Click New link next to Tracker view selector
  1. Enter Name as Priority Order
  1. In Status box tick Not and select Closed
  1. In 'Sorting' section set Order By to Priority
  1. Click 'Save' Button

We have a 120 hour Sprint - so select enough Critical issues to fill the Sprint.

  1. Tick the selection box for the issue for the Sprint
  1. Select Move To form the More Actions drop down
  1. Review your selection
  1. Select your Project and the 'SPRINT' Tracker as the destination
  1. Click the 'Move' Button
  1. Use the Mass Edit feature to update the Version information to release SR-2.0

We now have the Sprint back log and can set up Reports and a Burn Down Chart to monitor.

  1. Go to your Tracker summary page
  1. Select Edit link
  1. After Tracker summary add the following text and click 'Save'

[{ TimeSeriesChart title='Sprint BurnDown Chart'



Actual

* 6/16/2009, 120



Trend

* 6/16/2009, 120

* 6/17/2009, 112

* 6/18/2009, 104

* 6/19/2009, 96

* 6/22/2009, 88

* 6/23/2009, 80

* 6/24/2009, 72

* 6/25/2009, 64

* 6/26/2009, 56

* 6/29/2009, 48

* 6/30/2009, 40

* 7/01/2009, 32

* 7/02/2009, 24

* 7/03/2009, 16

* 7/04/2009, 8

* 7/05/2009, 0

}]





Activity 6 - Development

Lets go to work - lets create some low level tasks for the issues in our sprint backlog and then get the code and make our changes.

There are several ways to achieve this. You can create separate Task tracker items and associate to this Sprint issue or as we will show here you can create child issues from the Parent. - which is best depends on your own requirements

  1. Go to your SPRINT tracker
  1. Select an issue - note the Issue ID
  1. From the tabbed section at bottom of screen slect the Children tab
  1. Select the New Child link
  1. This task will be to create a build script so enter appropriate details for this.
  1. Assign the Task to yourself
    1. Either - Select Edit on the issue
    1. or Transition to move the issue into an open status

We now need to get our copy of the code so we can work on it.

  1. On your Desktop open a terminal window
  1. enter the following command

git clone codebeamer@ipaddress:your_repo_name ~/workspace/project_name

Next lets put our System Integrator hat on and set up the current build.

  1. Go to the 'Forums' tab
  1. Click New Forum Link
  1. Create a forum called Builds then click the 'Add' button
  1. Got to the 'Builds' tab
  1. Select the New Build link
  1. Name your build and give it a description
  1. enter the full path to the build file /usr/CB-5.4/repository/git/[reponame]/trunk/build.xml
  1. In the build Scheduler section tick the Synchronization option
  1. Tick the Run this build after source commit - set the time to 1 minute
  1. Set the build Notification section for success and error to your new Forum
  1. Click 'Save'
  1. Run the build by clicking on the build name
  1. Check output, review build logs and look in the forum
  1. Check the Document Management area for the built binaries
  1. hmmm we don't want the binaries in the root of the Document system
  1. Create a new directory called Builds
  1. Add a comment to your child issue stating that the binaries should go to this new directory

Back to development we are now going to amend the build file as instructed.

  1. On Desktop navigate to your repository
  1. open the file /trunk/build.xml for editing
  1. amend the CBRelease tasks to the following then commit via git using the issue ID at start of the message (i.e. #1258)

<CBRelease description="Jdiff Jar" file="jdiff.jar" todir="Builds" sccCommitMessage="built new jar" />

<CBRelease description="Jdiff Zip" file="jdiff-src.zip" todir="Builds" sccCommitMessage="built new zip" />


git add build.xml

git commit -m "#109 Amended Build.xml file"

This change is now in your local git repository but the codeBeamer repository knows nothing about it.

How access to the managed repository is controlled is down to what process you wish to implement. Here we are allowing push from the local repository. Access is controlled via the the codeBeamer SCM - Commit' permission which can be granted to project roles.

It could be that Access is forbidden and task is raised and sent to the System Integrator with the relevant url to allow them to pull the changes in.

  1. From your git repository enter the following command:

git push

As the build should be set to automatically run after 1 minute, wait a while and then check the Builds to see if it has run successfully following your changes.

As with most aspects of codeBeamer your process will dictate how you accomplish certain tasks. For code review you can create separate Task issues, associate them with the main Sprint tracker Issue and assign them to reviewers, or you can just assign the main Issue directly.

  1. Now return to Tracker task and you can see the SCM commit information associated to it.
  1. Move to the 'Task' Tracker
  1. Create a Review task and assign to another project member, set start and end dates to today.
  1. In the task associate it with the original Sprint issue that you committed your code against

Now lets check your tasks to see if you have reviews

  1. Navigate to your 'My Start' tab
  1. Check the 'My Open Issues in...' section
  1. Click on the number of Assigned to me issues to view the details
  1. (If you haven't got any then assign an issue to yourself)
  1. Click on the review issue to go to the details
  1. Navigate to the Associated tab and follow the link to the main issue
  1. here you can see the committed code and open a diff report to see the changes made.
  1. Once satisfied, return to your review task and add review comments in the comments section
  1. Re-assign the task to the originator.

Activity 7 - Release Code

The Code has been delivered back to the managed repository and built successfully.

The Binaries have been published to the document manager ready for pick up by the QA or review team.

You can track the movement of a Software Release via the CMDB

  1. Navigate to the 'CMBD' tab
  1. Select the Software Release category
  1. Here we can see that SR-1.0, the first release, has been released.
  1. Select SR-1.0
  1. View the Related Issues for the release.
  1. Now navigate to SR-2.0 and you will see your Sprint Issues associated
  1. We will now create SR-3.0 in readiness for next release :) I'm sure you will manage without instructions

You can provide the CMDB issue ID in the commit message to associate directly with the CMDB item, as you would with normal trackers.

Activity 8 - Sprint Review - trackers / reports

We can set up reports to help with the Daily Sprint Meetings

  1. Navigate to the 'Reports' Tab
  1. Select New link
  1. Select Tracker Issues
  1. Select the Workshop project
  1. Select the SPRINT tracker
  1. Set the Last Modified criteria to Yesterday
  1. Accept the defaults
  1. click the 'Save and Execute' button

Copyright 2010 - Clearvision CM, All rights reserved.