Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to define the version number of a software?

What is the best method to determine the version number I should use for a software or component? Is there a general rule to set version numbers?

I'm pretty sure it is a basic question but I didn't find anything useful after searching a while.

like image 200
victor hugo Avatar asked Dec 03 '22 15:12

victor hugo


2 Answers

Microsoft have a convention of:

[major].[minor].[revision].[build]

Or follow Jeff's versioning system.

like image 122
Adrian Godong Avatar answered Dec 25 '22 21:12

Adrian Godong


I've been doing this as an interim until I find a better solution. I don't build many large applications, mostly reports and smaller macros, but it's still important for me to keep track of changes and versions.

[Current year].[Current month].[Current day]

FileName 9.7.17.rpt for example.

It works for me and my boss, and it gives a value which you can compare to today's date to see how old the file is. I also keep a changelog.txt file in the same folder as the most current version and it keeps track of all the changes from the previous versions. I also keep track of all versions in a version control page on each projects tab in OneNote.

Thanks for the answer. I'll also throw in how I store the projects for giggles.

Every project gets its own folder. Inside that folder I'll have 4 main items that help me keep track of what's going on in the project.

  • An old versions folder
  • A folder for any reference material I might need for the project
  • The actual project file
  • And the changelog

That tree will look something like this.

Project X
    Old versions
        X Report 9.4.12.rpt
        X Report 9.5.3.rpt
        X Report 9.7.20.rpt
    Reference
        SQL calls.txt
        Client list.txt
        Procedures.doc
    X Report 9.7.29.rpt
    X Report changelog.txt

This way of keeping track of my work really cuts down on the amount of time that I need to spend documenting anything and organizes it in a standard way so if my boss needs to grab something I've worked on, even he knows exactly what everything means and where it is.

For storing multiple projects in my network folder I have these folders.

  • Inbox
  • Projects
    • @Archived Projects
    • Current Project 1
    • Current Project 2
    • Current Project 3
  • Reference

Inbox is where I toss random things to process later, or a folder where my boss can throw something I'm going to need for a later project. The Projects folder contains all the projects I'm currently working on, and then when I'm done or they no longer become a current priority, they get tossed in @Archived Projects. Reference is a folder for general job reference material, like policies and procedures, phone lists, org charts, fire escape plans. I may never use them, but it's comforting to have a place to put that kind of stuff as opposed to digging through old email.

like image 43
mandroid Avatar answered Dec 25 '22 19:12

mandroid