0
Software Versioning


       Scott Cate
       July 22, 2009
        6:30 – 7:30




                       Developer Igni...
Software Versioning
•   Assembly Versions
•   File Versions
•   Build Versions
•   SSCM Labels




@ScottCate / ScottCate....
Software Versioning
•   ZIP
•   MSI
•   Installable package / Manifest
•   Should be Labeled or Named
     – With matching...
Software Versioning
• Ability to Recreate Assets
     – Let’s you go back in time
     – Fix Bugs
     – Merge into new ve...
Software Versioning
• All version should be unique
• Versions should be forward moving




@ScottCate / ScottCate.com    D...
Software Versioning
• Should be Text/String Sortable
     – How and why is 21 < 3?
     – 03 is less than 21, but if 03 tu...
Software Versioning
• Avoid Manual Version Numbering
     – Easy to forget
     – Human error
     – Can’t really be done ...
Software Versioning
• Should be using Automated Build
     – And build server should have a labeler
     – This is the mag...
Software Versioning
• Just a Number?
• Lots of Options
• W.X.Y.Z is general format
• Most agree W is Major Version
     – ...
Software Versioning
• W.X.Y.Z is general format
• Most agree X is Minor Version
     – With One of more Feature Enhancemen...
Software Versioning
• W.X.Y.Z is general format
• Most agree Y is ….
  – Internal Structure Changes
  – Bug Fixes
  – No F...
Software Versioning
• W.X.Y.Z is general format
• No one agrees on Z
     – Popular Build Number
     – Used for RC, RTW, ...
Software Versioning
• Just a Number?
• Or an encoded “Something”
• We think the date is useful
     – And we use the Build...
Software Versioning
• Major Version
     – Tied to year
     – Tied to Major Milestones
     – Tied to Major (New??) featu...
Software Versioning
• Minor Version
     – Tied to bug fid / hot fix
     – Tied to major feature enhancements




@ScottC...
Software Versioning
• Year / Month / Day
     – When was the software Built?
     – What Label can the software be found i...
Software Versioning
• Major.Year.[MINOR] WWDD.HHMM

• 1.2009.1
     – This part is pretty easy




@ScottCate / ScottCate....
Software Versioning
• Major.Year.[MINOR]WWD.HHMM

• 1.2009.125
     – ISO Week # 01-52
     – Week 25, of 2009
     – Proc...
Software Versioning
• Major.Year.[MINOR]WWD.HHMM

• 1.2009.1255
     – ISO Day# 1-7 (Monday == 1, Sunday == 7)
     – Day ...
Software Versioning
• Major.Year.[MINOR]WWD.HHMM

• 1.2009.1255.HHMM
     – HH = 01-24 Hour for Time of Build
     – MM = ...
Upcoming SlideShare
Loading in...5
×

Developer Ignite Scott Cate Versioning

532

Published on

5 minutes, 20 slides, 15 seconds each.

Things to think about with your commercial software version numbers.

Published in: Technology, Business
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total Views
532
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Developer Ignite Scott Cate Versioning"

  1. 1. Software Versioning Scott Cate July 22, 2009 6:30 – 7:30 Developer Ignite
  2. 2. Software Versioning • Assembly Versions • File Versions • Build Versions • SSCM Labels @ScottCate / ScottCate.com Developer Ignite
  3. 3. Software Versioning • ZIP • MSI • Installable package / Manifest • Should be Labeled or Named – With matching Version number @ScottCate / ScottCate.com Developer Ignite
  4. 4. Software Versioning • Ability to Recreate Assets – Let’s you go back in time – Fix Bugs – Merge into new version @ScottCate / ScottCate.com Developer Ignite
  5. 5. Software Versioning • All version should be unique • Versions should be forward moving @ScottCate / ScottCate.com Developer Ignite
  6. 6. Software Versioning • Should be Text/String Sortable – How and why is 21 < 3? – 03 is less than 21, but if 03 turns into 3 @ScottCate / ScottCate.com Developer Ignite
  7. 7. Software Versioning • Avoid Manual Version Numbering – Easy to forget – Human error – Can’t really be done in sync with SCCM Labels – Just isn’t realistic @ScottCate / ScottCate.com Developer Ignite
  8. 8. Software Versioning • Should be using Automated Build – And build server should have a labeler – This is the magic that ties it all together @ScottCate / ScottCate.com Developer Ignite
  9. 9. Software Versioning • Just a Number? • Lots of Options • W.X.Y.Z is general format • Most agree W is Major Version – Major Version usually is defined as …. – Is not Backward COMPAT – Has Public API Changes • Source: http://stackoverflow.com/questions/121795 @ScottCate / ScottCate.com Developer Ignite
  10. 10. Software Versioning • W.X.Y.Z is general format • Most agree X is Minor Version – With One of more Feature Enhancements – No Breaking Changes – Possible Bug Fix Roll up • Source: http://stackoverflow.com/questions/12179 5 @ScottCate / ScottCate.com Developer Ignite
  11. 11. Software Versioning • W.X.Y.Z is general format • Most agree Y is …. – Internal Structure Changes – Bug Fixes – No Feature or API Changes – No Functional Impact • Source: http://stackoverflow.com/questions/12179 5 @ScottCate / ScottCate.com Developer Ignite
  12. 12. Software Versioning • W.X.Y.Z is general format • No one agrees on Z – Popular Build Number – Used for RC, RTW, RTM, Framework Versions – Something dreamed up by a team member, that has left, and no one really knows why, it’s just always been something – Blank – only use a W.X.Y version number – In House / Public (Odd / Even) • Source: http://stackoverflow.com/questions/121795 @ScottCate / ScottCate.com Developer Ignite
  13. 13. Software Versioning • Just a Number? • Or an encoded “Something” • We think the date is useful – And we use the Build Time – Merged with the Major / Minor Version – Easy to Reference • Forward • And • Backwards • (Never run out of options) • (Easy to code against) @ScottCate / ScottCate.com Developer Ignite
  14. 14. Software Versioning • Major Version – Tied to year – Tied to Major Milestones – Tied to Major (New??) feature enhancements – Possible breaking Changes – Public API Changes @ScottCate / ScottCate.com Developer Ignite
  15. 15. Software Versioning • Minor Version – Tied to bug fid / hot fix – Tied to major feature enhancements @ScottCate / ScottCate.com Developer Ignite
  16. 16. Software Versioning • Year / Month / Day – When was the software Built? – What Label can the software be found in Source Control? • Important!! – SCCM Should Label your repository with the Version number @ScottCate / ScottCate.com Developer Ignite
  17. 17. Software Versioning • Major.Year.[MINOR] WWDD.HHMM • 1.2009.1 – This part is pretty easy @ScottCate / ScottCate.com Developer Ignite
  18. 18. Software Versioning • Major.Year.[MINOR]WWD.HHMM • 1.2009.125 – ISO Week # 01-52 – Week 25, of 2009 – Proceeded by Minor Version for Sorting @ScottCate / ScottCate.com Developer Ignite
  19. 19. Software Versioning • Major.Year.[MINOR]WWD.HHMM • 1.2009.1255 – ISO Day# 1-7 (Monday == 1, Sunday == 7) – Day 5 (Friday) of Week 25, of 2009 – All builds on same day == 1.2009.1255 @ScottCate / ScottCate.com Developer Ignite
  20. 20. Software Versioning • Major.Year.[MINOR]WWD.HHMM • 1.2009.1255.HHMM – HH = 01-24 Hour for Time of Build – MM = 00-59 Minute for Time of Build @ScottCate / ScottCate.com Developer Ignite
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×