Developer Ignite Scott Cate Versioning

719 views

Published on

5 minutes, 20 slides, 15 seconds each.

Things to think about with your commercial software version numbers.

Published in: Technology, Business

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

×