What do the numbers in a version typically represent (i.e. v1.9.0.1)?

后端 未结 28 958
没有蜡笔的小新
没有蜡笔的小新 2020-11-30 16:51

Maybe this is a silly question, but I\'ve always assumed each number delineated by a period represented a single component of the software. If that\'s true, do they ever rep

相关标签:
28条回答
  • 2020-11-30 17:16

    Version numbers don't usually represent separate components. For some people/software the numbers are fairly arbitrary. For others, different parts of the version number string do represent different things. For example, some systems increase parts of the version number when a file format changes. So V 1.2.1 is file format compatible with all other V 1.2 versions (1.2.2, 1.2.3, etc.) but not with V 1.3. Ultimately it's up to you what scheme you want to use.

    0 讨论(0)
  • 2020-11-30 17:16

    Depends a bit on the language, Delphi and C# for example have different meanings.

    Usually, the first two numbers respresent a major and a minor version, i.e. 1.0 for the first real release, 1.1 for some important bugfixes and minor new features, 2.0 for a big new feature release.

    The third number can refer to a "really minor" version, or revision. 1.0.1 is just a very small bugfix to 1.0.0 for example. But it can also carry the Revision number from your Source Control System, or an ever-incrementing number that increments with every build. Or a Datestamp.

    A little bit more detail here. "officially", in .net, the 4 numbers are "Major.Minor.Build.Revision", whereas in Delphi there are "Major.Minor.Release.Build". I use "Major.Minor.ReallyMinor.SubversionRev" for my versioning.

    0 讨论(0)
  • 2020-11-30 17:17

    Here is what we use:

    1. First number = Overall system era. Changes every couple of years and typically represents a fundamental change in technology, or client features or both.
    2. Second number = database schema revision. An increment in this number requires a database migration and so is a significant change (or systems replicate and so changing the database structure requires a careful upgrade process). Resets to 0 if the first number changes.
    3. Third number = software only change. This can usually be implemented on a client by client basis as the database schema is unchanged. Resets to zero if the second number changes.
    4. Subversion version number. We populate this automatically on build using the TortoiseSVN tool. This number never resets but continually increments. Using this we can always recreate any version.

    This system is serving us well because every number has a clear and important function. I have seen other teams grappling with the major number/minor number question (how big a change is major) and I dont see the benefit to that. If you dont need to track database revisions just go to a 3 or 2 digit version number, and make life easier!

    0 讨论(0)
  • 2020-11-30 17:20

    A combination of major, minor, patch, build, security patch, etc.

    The first two are major & minor-- the rest will depend on the project, company and sometimes community. In OS's like FreeBSD, you will have 1.9.0.1_number to represent a security patch.

    0 讨论(0)
  • 2020-11-30 17:20

    The version number of a complex piece of software represents the whole package and is independent of the version numbers of the parts. The Gizmo version 3.2.5 might contain Foo version 1.2.0 and Bar version 9.5.4.

    When creating version numbers, use them as follows:

    1. First number is main release. If you make significant changes to the user interface or need to break existing interfaces (so that your users will have to change their interface code), you should go to new main version.

    2. Second number should indicate that new features have been added or something works differently internally. (For example the Oracle database might decide to use a different strategy for retrieving data, making most things faster and some things slower.) Existing interfaces should continue working and the user interface should be recognizable.

    3. Version numbering further is up to the person writing the software - Oracle uses five (!) groups, ie. an Oracle version is something like 10.1.3.0.5. From third group down, you should only introduce bugfixes or minor changes in functionality.

    0 讨论(0)
  • 2020-11-30 17:21

    The more points, the more minor the release. There's no real solid standard beyond that - can mean different things based on what the project maintainers decide on.

    WordPress, for example, goes along these lines:

    1.6 -> 2.0 -> 2.0.1 -> 2.0.2 -> 2.1 -> 2.1.1 -> 2.2 ...

    1.6 to 2.0 would be a big release - features, interface changes, major changes to the APIs, breakage of some 1.6 templates and plugins, etc. 2.0 to 2.0.1 would be a minor release - perhaps fixing a security bug. 2.0.2 to 2.1 would be a significant release - new features, generally.

    0 讨论(0)
提交回复
热议问题