Feature Based Web Development with Bazaar
Upcoming SlideShare
Loading in...5
×
 

Feature Based Web Development with Bazaar

on

  • 4,774 views

We take a look at feature based development using Bazaar. We cover version control evolution, what a feature is, how to develop features rathr than file changes and finally providing those features ...

We take a look at feature based development using Bazaar. We cover version control evolution, what a feature is, how to develop features rathr than file changes and finally providing those features for provisioning of your web app!

Statistics

Views

Total Views
4,774
Views on SlideShare
4,691
Embed Views
83

Actions

Likes
0
Downloads
14
Comments
0

5 Embeds 83

http://www.sydphp.org 70
http://www.slideshare.net 8
http://sydphp.org 3
http://216.239.59.104 1
http://translate.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Specifically going to focus on version control which is the glue that holds a web app together. * Who uses FTP to update sites ? * Hands up who uses version control * Who uses CVS ? * Who uses Subversion ? * Who uses Bazaar or Git ? For FTP users, this may tread some new territory but it's worth making the hike. For CVS and Subversion users, you will notice some similarities but there are also some major differences in the workflow. Mayl take time to wrap your head around these.

Feature Based Web Development with Bazaar Feature Based Web Development with Bazaar Presentation Transcript

  • Feature Based Development for Web Apps
      • with Bazaar
      • A Sydney PHP Group presentation
      • 1 st May 2008
      • James Ellis
      • customr.net
  • WHY
      • ?
  • A feature is...
      • A common set of changes that combine to produce the required result
  • Version Control Evolution
    • File clobber (no control) – e.g transferring files with FTP
    • Enter the Tree (Concurrent Version Systems)
    • Improving CVS with Subversion (SVN)
    • Distributed – (centralise if you wish)
  • File Clobber with FTP
    • Destructive Revision Control
    • Does not scale beyond one developer
    • (Supported in Bazaar via a plugin)
    • Manual Merges – who is doing the washing up?
  • Tree Versioning - centralised
    • (-) Supports only one model of work
    • (-) Branches and merges should be easier
    • (+/-) Connection to remote server required
    • (+) Much better QA
    • (-) The freeze (please don't commit!)
    • “ Subversion has been the most pointless project ever started... Subversion used to say, 'CVS done right.' With that slogan there is nowhere you can go. There is no way to do CVS right.” Linus Torvalds via /.
  • Tree Versioning – distributed
    • Common tasks are implicit rather than explicit
    • No file clobber – allows multiple branch dev.
    • Similar tools – Bazaar, Git
    • Implicit supports for standard protocols (http, ftp, sftp etc etc) that we already use every day.
    • Does everything centralised does (and better)
    • Allows scaling Up and Out
  • Everything is a branch
    • Developers work in their own local branches
    • Checkouts do exist – these are “bound” branches
    • Developers provide patches to release managers
    • Patches are merged into other branches
    • QA step prior to publishing web app updates
  • Choose a development model
    • No model is bad in Bazaar
    • Easy to change between models without changing tools
    • Centralised – SVN style single developer
    • Centralised – SVN style multi developer
    • Distributed – Allow committing to a “main” branch.
    • Distributed using Gatekeeper – providing features for inclusion
  • Providing features
    • Mantra : Treat your web app like an application, not a bunch of files
    • Promotes experimentation without conflict
    • Introduces the “Gatekeeper” role(s)
    • Allows intra developer sharing (http/sftp/mdns)
    • You can go on holiday AND have version control!!!
  • Simple Bazaar Implementation
    • Install Linux, Unix, Windows, Mac packages
    • Branch in five seconds
    • Dev : Take a branch, work, commit and provide a patch
    • QA : Preview, merge and update
    • Release : provide release archive (zip, tar etc) which can be packaged (rpm, deb, etc)
  • Examples
    • Create a branch
    • Create a repo
    • Pull a branch and keep it up to date
    • Work on a feature then Commit
    • Patch/Push
    • Merge and optionally resolve conflicts
    • Checkout and Update (or Export)
  • Integration with web dev tools
    • Editor plugins (eclipse)
    • Or just use the command line
    • Bzr GUI's (GTK, Qt, Tortoise)
    • Apache – virtual hosts are your friend
    • Avahi (aka Rendezvous) sharing on a local net
    • Bzr Plugins (upload)
  • Further reading & support
    • bazaar-vcs.org
    • Bazaar documentation
    • Bazaar in Five Minutes (excellent)
    • Bazaar Mailing Listings
    • Commercial Support provided by Canonical
    • Experiment
    • Remember the Five Steps