SlideShare a Scribd company logo
Software Versioning


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




                       Developer Ignite
Software Versioning
•   Assembly Versions
•   File Versions
•   Build Versions
•   SSCM Labels




@ScottCate / ScottCate.com    Developer Ignite
Software Versioning
•   ZIP
•   MSI
•   Installable package / Manifest
•   Should be Labeled or Named
     – With matching Version number



@ScottCate / ScottCate.com     Developer Ignite
Software Versioning
• Ability to Recreate Assets
     – Let’s you go back in time
     – Fix Bugs
     – Merge into new version




@ScottCate / ScottCate.com         Developer Ignite
Software Versioning
• All version should be unique
• Versions should be forward moving




@ScottCate / ScottCate.com    Developer Ignite
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
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
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
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
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
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
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
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
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
Software Versioning
• Minor Version
     – Tied to bug fid / hot fix
     – Tied to major feature enhancements




@ScottCate / ScottCate.com      Developer Ignite
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
Software Versioning
• Major.Year.[MINOR] WWDD.HHMM

• 1.2009.1
     – This part is pretty easy




@ScottCate / ScottCate.com        Developer Ignite
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
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
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

More Related Content

What's hot

Techniques and Tools to Improve the Salesforce Development Cycle
Techniques and Tools to Improve the Salesforce Development CycleTechniques and Tools to Improve the Salesforce Development Cycle
Techniques and Tools to Improve the Salesforce Development Cycle
Salesforce Developers
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topic
Gourav Varma
 
GitFlow Workshop
GitFlow WorkshopGitFlow Workshop
GitFlow Workshop
Syed Imam
 
99translations For Developers
99translations For Developers99translations For Developers
99translations For Developers
rogovskiy
 
SCM Process and smartBuild
SCM Process and smartBuildSCM Process and smartBuild
SCM Process and smartBuild
Rajesh Kumar
 
Performance profiling and testing of symfony application 2
Performance profiling and testing of symfony application 2Performance profiling and testing of symfony application 2
Performance profiling and testing of symfony application 2
Andrew Yatsenko
 
B4usolution performance testing
B4usolution performance testingB4usolution performance testing
B4usolution performance testing
Hoa Le
 
Code Quality Control in a PHP project. GeekTalks, Cherkassy 2020
Code Quality Control in a PHP project. GeekTalks, Cherkassy 2020Code Quality Control in a PHP project. GeekTalks, Cherkassy 2020
Code Quality Control in a PHP project. GeekTalks, Cherkassy 2020
Andrew Yatsenko
 
Rational Rhapsody Workflow Integration with Visual Studio
Rational Rhapsody Workflow Integration with Visual Studio Rational Rhapsody Workflow Integration with Visual Studio
Rational Rhapsody Workflow Integration with Visual Studio
Frank Braun
 
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Continuous Delivery for Mobile platforms (iOS and a bit of Android)Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Rami Rantala
 
Software Quality Assurance on VLC Player
Software Quality Assurance on VLC PlayerSoftware Quality Assurance on VLC Player
Software Quality Assurance on VLC Player
Shoaib Haseeb
 
Software Quality Assurance on VLC
Software Quality Assurance on VLC Software Quality Assurance on VLC
Software Quality Assurance on VLC
Shoaib Haseeb
 
Svn tutorial
Svn tutorialSvn tutorial
Svn tutorial
kalyansiri
 
3x3: Speeding Up Mobile Releases
3x3: Speeding Up Mobile Releases3x3: Speeding Up Mobile Releases
3x3: Speeding Up Mobile Releases
Drew Hannay
 
Using svn
Using svnUsing svn
Using svn
Shiva Somvanshi
 
Developing with versioning and CI/CD
Developing with versioning and CI/CDDeveloping with versioning and CI/CD
Developing with versioning and CI/CD
Matteo Di Carlo
 
Intro To Version Control
Intro To Version ControlIntro To Version Control
Intro To Version Control
ceardach
 
LinkedIn's Consistent Android Testing Environments Using Gradle
LinkedIn's Consistent Android Testing Environments Using GradleLinkedIn's Consistent Android Testing Environments Using Gradle
LinkedIn's Consistent Android Testing Environments Using Gradle
Drew Hannay
 
Installing Rhapsody 8.2.x Designer/Architect with Cygwin gcc compiler
Installing Rhapsody 8.2.x Designer/Architect with Cygwin gcc compilerInstalling Rhapsody 8.2.x Designer/Architect with Cygwin gcc compiler
Installing Rhapsody 8.2.x Designer/Architect with Cygwin gcc compiler
Fraser Chadburn
 
Chapter5b McHaney 2nd edition
Chapter5b McHaney 2nd editionChapter5b McHaney 2nd edition
Chapter5b McHaney 2nd edition
Roger McHaney
 

What's hot (20)

Techniques and Tools to Improve the Salesforce Development Cycle
Techniques and Tools to Improve the Salesforce Development CycleTechniques and Tools to Improve the Salesforce Development Cycle
Techniques and Tools to Improve the Salesforce Development Cycle
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topic
 
GitFlow Workshop
GitFlow WorkshopGitFlow Workshop
GitFlow Workshop
 
99translations For Developers
99translations For Developers99translations For Developers
99translations For Developers
 
SCM Process and smartBuild
SCM Process and smartBuildSCM Process and smartBuild
SCM Process and smartBuild
 
Performance profiling and testing of symfony application 2
Performance profiling and testing of symfony application 2Performance profiling and testing of symfony application 2
Performance profiling and testing of symfony application 2
 
B4usolution performance testing
B4usolution performance testingB4usolution performance testing
B4usolution performance testing
 
Code Quality Control in a PHP project. GeekTalks, Cherkassy 2020
Code Quality Control in a PHP project. GeekTalks, Cherkassy 2020Code Quality Control in a PHP project. GeekTalks, Cherkassy 2020
Code Quality Control in a PHP project. GeekTalks, Cherkassy 2020
 
Rational Rhapsody Workflow Integration with Visual Studio
Rational Rhapsody Workflow Integration with Visual Studio Rational Rhapsody Workflow Integration with Visual Studio
Rational Rhapsody Workflow Integration with Visual Studio
 
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Continuous Delivery for Mobile platforms (iOS and a bit of Android)Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
 
Software Quality Assurance on VLC Player
Software Quality Assurance on VLC PlayerSoftware Quality Assurance on VLC Player
Software Quality Assurance on VLC Player
 
Software Quality Assurance on VLC
Software Quality Assurance on VLC Software Quality Assurance on VLC
Software Quality Assurance on VLC
 
Svn tutorial
Svn tutorialSvn tutorial
Svn tutorial
 
3x3: Speeding Up Mobile Releases
3x3: Speeding Up Mobile Releases3x3: Speeding Up Mobile Releases
3x3: Speeding Up Mobile Releases
 
Using svn
Using svnUsing svn
Using svn
 
Developing with versioning and CI/CD
Developing with versioning and CI/CDDeveloping with versioning and CI/CD
Developing with versioning and CI/CD
 
Intro To Version Control
Intro To Version ControlIntro To Version Control
Intro To Version Control
 
LinkedIn's Consistent Android Testing Environments Using Gradle
LinkedIn's Consistent Android Testing Environments Using GradleLinkedIn's Consistent Android Testing Environments Using Gradle
LinkedIn's Consistent Android Testing Environments Using Gradle
 
Installing Rhapsody 8.2.x Designer/Architect with Cygwin gcc compiler
Installing Rhapsody 8.2.x Designer/Architect with Cygwin gcc compilerInstalling Rhapsody 8.2.x Designer/Architect with Cygwin gcc compiler
Installing Rhapsody 8.2.x Designer/Architect with Cygwin gcc compiler
 
Chapter5b McHaney 2nd edition
Chapter5b McHaney 2nd editionChapter5b McHaney 2nd edition
Chapter5b McHaney 2nd edition
 

Similar to Developer Ignite Scott Cate Versioning

QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and MockitoQCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
Szczepan Faber
 
VAST 8.0
VAST 8.0VAST 8.0
VAST 8.0
ESUG
 
Making the Agile Leap to Continuous Deployment
Making the Agile Leap to Continuous DeploymentMaking the Agile Leap to Continuous Deployment
Making the Agile Leap to Continuous Deployment
Ethan Ram
 
#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops
Vincent Biret
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
Brian Moon
 
GitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorialGitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorial
Heather McNamee
 
GitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorialGitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorial
GitLab, Inc
 
Evolving Infrastructure
Evolving InfrastructureEvolving Infrastructure
Evolving Infrastructure
louisadunne
 
Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practices
Code Mastery
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
XPDays
 
Sakai Technical Future Musings
Sakai Technical Future MusingsSakai Technical Future Musings
Sakai Technical Future Musings
Charles Severance
 
Introduction to git & github
Introduction to git & githubIntroduction to git & github
Introduction to git & github
Vinothini KadambavanaSundaram
 
Taking Database Development to the 21st Century
Taking Database Development to the 21st CenturyTaking Database Development to the 21st Century
Taking Database Development to the 21st Century
DBmaestro - Database DevOps
 
CI/CD: Lessons from LinkedIn and Mockito
CI/CD: Lessons from LinkedIn and MockitoCI/CD: Lessons from LinkedIn and Mockito
CI/CD: Lessons from LinkedIn and Mockito
C4Media
 
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Lucas Jellema
 
jQuery Conference 2012 keynote
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynote
dmethvin
 
Modern Web-site Development Pipeline
Modern Web-site Development PipelineModern Web-site Development Pipeline
Modern Web-site Development Pipeline
GlobalLogic Ukraine
 
Kubernetes Issues Management and Upstream Development_sahdevpzala_11302017
Kubernetes Issues Management and Upstream Development_sahdevpzala_11302017Kubernetes Issues Management and Upstream Development_sahdevpzala_11302017
Kubernetes Issues Management and Upstream Development_sahdevpzala_11302017
Sahdev Zala
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development Concepts
Shafiul Azam Chowdhury
 
Application Deployment at UC Riverside
Application Deployment at UC RiversideApplication Deployment at UC Riverside
Application Deployment at UC Riverside
Michael Kennedy
 

Similar to Developer Ignite Scott Cate Versioning (20)

QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and MockitoQCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
 
VAST 8.0
VAST 8.0VAST 8.0
VAST 8.0
 
Making the Agile Leap to Continuous Deployment
Making the Agile Leap to Continuous DeploymentMaking the Agile Leap to Continuous Deployment
Making the Agile Leap to Continuous Deployment
 
#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
GitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorialGitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorial
 
GitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorialGitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorial
 
Evolving Infrastructure
Evolving InfrastructureEvolving Infrastructure
Evolving Infrastructure
 
Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practices
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Sakai Technical Future Musings
Sakai Technical Future MusingsSakai Technical Future Musings
Sakai Technical Future Musings
 
Introduction to git & github
Introduction to git & githubIntroduction to git & github
Introduction to git & github
 
Taking Database Development to the 21st Century
Taking Database Development to the 21st CenturyTaking Database Development to the 21st Century
Taking Database Development to the 21st Century
 
CI/CD: Lessons from LinkedIn and Mockito
CI/CD: Lessons from LinkedIn and MockitoCI/CD: Lessons from LinkedIn and Mockito
CI/CD: Lessons from LinkedIn and Mockito
 
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
 
jQuery Conference 2012 keynote
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynote
 
Modern Web-site Development Pipeline
Modern Web-site Development PipelineModern Web-site Development Pipeline
Modern Web-site Development Pipeline
 
Kubernetes Issues Management and Upstream Development_sahdevpzala_11302017
Kubernetes Issues Management and Upstream Development_sahdevpzala_11302017Kubernetes Issues Management and Upstream Development_sahdevpzala_11302017
Kubernetes Issues Management and Upstream Development_sahdevpzala_11302017
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development Concepts
 
Application Deployment at UC Riverside
Application Deployment at UC RiversideApplication Deployment at UC Riverside
Application Deployment at UC Riverside
 

Recently uploaded

Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
Shinana2
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
alexjohnson7307
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
saastr
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 

Recently uploaded (20)

Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 

Developer Ignite Scott Cate Versioning

  • 1. Software Versioning Scott Cate July 22, 2009 6:30 – 7:30 Developer Ignite
  • 2. Software Versioning • Assembly Versions • File Versions • Build Versions • SSCM Labels @ScottCate / ScottCate.com Developer Ignite
  • 3. Software Versioning • ZIP • MSI • Installable package / Manifest • Should be Labeled or Named – With matching Version number @ScottCate / ScottCate.com Developer Ignite
  • 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. Software Versioning • All version should be unique • Versions should be forward moving @ScottCate / ScottCate.com Developer Ignite
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Software Versioning • Minor Version – Tied to bug fid / hot fix – Tied to major feature enhancements @ScottCate / ScottCate.com Developer Ignite
  • 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. Software Versioning • Major.Year.[MINOR] WWDD.HHMM • 1.2009.1 – This part is pretty easy @ScottCate / ScottCate.com Developer Ignite
  • 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. 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. 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