SlideShare une entreprise Scribd logo
1  sur  20
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

Contenu connexe

Tendances

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 CycleSalesforce Developers
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topicGourav Varma
 
GitFlow Workshop
GitFlow WorkshopGitFlow Workshop
GitFlow WorkshopSyed Imam
 
99translations For Developers
99translations For Developers99translations For Developers
99translations For Developersrogovskiy
 
SCM Process and smartBuild
SCM Process and smartBuildSCM Process and smartBuild
SCM Process and smartBuildRajesh 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 2Andrew Yatsenko
 
B4usolution performance testing
B4usolution performance testingB4usolution performance testing
B4usolution performance testingHoa 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 2020Andrew 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 PlayerShoaib Haseeb
 
Software Quality Assurance on VLC
Software Quality Assurance on VLC Software Quality Assurance on VLC
Software Quality Assurance on VLC Shoaib Haseeb
 
3x3: Speeding Up Mobile Releases
3x3: Speeding Up Mobile Releases3x3: Speeding Up Mobile Releases
3x3: Speeding Up Mobile ReleasesDrew Hannay
 
Developing with versioning and CI/CD
Developing with versioning and CI/CDDeveloping with versioning and CI/CD
Developing with versioning and CI/CDMatteo Di Carlo
 
Intro To Version Control
Intro To Version ControlIntro To Version Control
Intro To Version Controlceardach
 
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 GradleDrew 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 compilerFraser Chadburn
 
Chapter5b McHaney 2nd edition
Chapter5b McHaney 2nd editionChapter5b McHaney 2nd edition
Chapter5b McHaney 2nd editionRoger McHaney
 

Tendances (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
 

Similaire à 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 MockitoSzczepan Faber
 
VAST 8.0
VAST 8.0VAST 8.0
VAST 8.0ESUG
 
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 DeploymentEthan Ram
 
#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devopsVincent Biret
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous DeploymentBrian 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 tutorialHeather 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 tutorialGitLab, Inc
 
Evolving Infrastructure
Evolving InfrastructureEvolving Infrastructure
Evolving Infrastructurelouisadunne
 
Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practicesCode Mastery
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationXPDays
 
Sakai Technical Future Musings
Sakai Technical Future MusingsSakai Technical Future Musings
Sakai Technical Future MusingsCharles Severance
 
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 MockitoC4Media
 
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 keynotedmethvin
 
Modern Web-site Development Pipeline
Modern Web-site Development PipelineModern Web-site Development Pipeline
Modern Web-site Development PipelineGlobalLogic 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_11302017Sahdev Zala
 
Introducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsIntroducing systems analysis, design & development Concepts
Introducing systems analysis, design & development ConceptsShafiul Azam Chowdhury
 
Application Deployment at UC Riverside
Application Deployment at UC RiversideApplication Deployment at UC Riverside
Application Deployment at UC RiversideMichael Kennedy
 

Similaire à 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
 

Dernier

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 

Dernier (20)

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 

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