17

Probably the most widespread software version numbering scheme in use today takes the form of a dotted sequence of integers. Variants of this scheme usually share the following characteristics:

  • Version numbers consist of at least two (often three, rarely four) non-negative integers written in decimal notation and separated from each other by full stops, sometimes with an extra tag appended at the end (alpha, beta, rc, sometimes with further numbers following);
  • The ordering is big-endian: the first number denotes the most significant kind of change. As such, version tuples can be (usually) sorted lexicographically;
  • The first integer is called the ‘major’ release number, the second the ‘minor’ release number, and the third (if present) is usually called the ‘patch’ release number;
  • The first stable version is commonly denoted 1.0; major version 0 denotes pre-release or unstable versions.

Other version naming systems do exist (code names, date-based version numbers, TeX’s ‘asymptotic’ numbering), but this one is probably the most well-known. It has even made its way into popular culture, with phrases like ‘Web 2.0’ and its snowclones entering the popular lexicon. Semantic Versioning is a modern form of it (though far from universally adopted). Also, sometimes, with only major and minor release numbers present, the full version number was commonly thought of as a decimal fraction (for example, Windows 3.1 is internally known as 3.10, and these version numbers are considered equivalent; version number 0.9 or 0.99 often suggests that it’s very close to 1.0), though today this usage seems to be slowly fading away.

Where was this version numbering scheme invented? What was the first software package to use it? Did the ‘minor’ number originally denote a fraction or was it an independent number from the start?

13
  • 4
    LISP possibly had 1.5 because it wasn't quite 2 but it was different enough from 1. I am wondering if this form of numbering appeared after SCCS was released (1977) . SCCS used 1.1, 1.2 numbering for the files.
    – cup
    Jun 2, 2021 at 7:01
  • 4
    This numbering scheme was used in printed documents long before is was applied to software versions, so I think that the question may be ill-formed, perhaps it should ask when the dot notation originated or when it was first applied to software versions.
    – Frog
    Jun 2, 2021 at 11:00
  • 6
    I think we're just going to have to play "who can find the oldest document". Certainly DEC was using this form in the early 1960s (TOPS-10 release history), though it was somewhat product-dependent; forms like "V6B" rather than "V6.1" were also used until the late 1970s. Jun 2, 2021 at 13:04
  • 3
    At the same time, ICT in the UK were using a similar scheme, at least for the GEORGE 3 operating system, though since American had not yet been adopted as the language of computing, they were "marks" rather than "versions" - as in GEORGE 3 Mark 8.67. Jun 2, 2021 at 13:11
  • 7
    At one rather large company where I worked, they told me; When the third number gets bumped, that's a bug fix that is pushed out to all customers on record, when the second number gets bumped, that's a UI/performance/feature enhancement that gets pushed out to customers who pay for support, and when the first number gets bumped, that is considered to be a new product. Jun 2, 2021 at 14:19

3 Answers 3

5

In the early days of modern operating systems and software development there was no internet. A software release was a big deal and you couldn't easily ship a patch out to all the users. Thus, point releases were not used. Releases were numbered as early as FORTRAN II in 1958 from IBM.

Similarly Unix v1, from Bell labs in 1971, came in numbered editions.

An early example of dot notation in versioning is seen in TRS-DOS 2.0 released by RadioShack in July 1978. TRSDOS 2.1, released September 1978, contained bugfixes for version 2.0 and so the dot notation used in the 70's was similar to the dot-notation you see in modern semantic versioning. While these systems were not network capable, the ability to go get an update disk at Radio Shack allowed them to have this sort of patch release cycle not available to Bell labs or IBM, who would have mailed disks to users.

From these examples we see that this dot notation was common between 1971-1978 and that it did have a similar meaning at the time it was seen in public releases.

EDITs: This PDP history found by @another-dave shows dot notation being used in 1964. I consider the PDP, and the Unix OS it ran, to be the birth of modern computing so it would seem that this pattern was there from the beginning.

It should be noted that revision history control started in other engineering fields before computers existed. In mechanical engineering there was a need to show that one plan superseded a previous manufacturing plan. A drawing revision often used letters, numbers, or a combination of the two. There was a need to distinguish when a change affected "fit, form, or function" of the part being manufactured. This is where you would begin to see a {major}.{minor} revision numbering scheme. You could roll the minor number to indicate that the physical product at the end should be identical to the part made from all drawings of the same major revision. This is similar to the software concept of "breaking change" so a similar pattern is used. Revision control is now codified in engineering standards like ASME Y14.35M and ISO 9001:2015.

3
  • 3
    In my opinion, by answering this question at all you accept its basic assumption (the numbering scheme being an "IT invention") - which I think is just plain wrong.
    – tofro
    Aug 10, 2022 at 17:24
  • 4
    @tofro I don’t think I presuppose that anywhere in the question. If this is a convention imported from somewhere else, I’d be perfectly happy with an answer showing that. I only note that computing is where it’s best known from. Aug 11, 2022 at 5:13
  • Now it's much better ;) (Even if the second part of the answer somewhat invalidates the first)
    – tofro
    Aug 11, 2022 at 16:35
3

I encountered dot-notations when I played around with revision control systems. And SCCS used this notation for the revisions of files, potentially including the executable of the specific project. SCCS was written in 1972.

5
  • 1
    Ahh, SCCS. Winner of the best name for a GNU re-implementation. CSSC. Compatibly Stupid Source Control.
    – ssokolow
    Aug 14, 2022 at 14:09
  • Wasn't RCS created before SCCS?
    – DrSheldon
    Aug 14, 2022 at 19:55
  • 1
    Well, for some time I thought so, too. But according to Wikipedia, RCS was written 10 years later... Aug 14, 2022 at 19:57
  • Given that dotted version numbers for products were first seen only in the late 70s, a direct influence of SCCS is tenuous.
    – Leo B.
    Aug 14, 2022 at 20:17
  • @LeoB. Marketroids might need some time to adapt things they don't understand. :-D No offend. Anyway, just my 2 cents. Aug 14, 2022 at 20:21
2

The dotted notation was used for the Soviet operating system DISPAK (Russian wiki), some time in the late 70s, to indicate branching due to a disagreement between the co-developers from two organizations.

The main branch retained "integer" version numbers (at the time of the split, 94, if memory serves), where the "renegade" branch version number was dubbed 94.1, thus earning the nickname "the dot" (точка, 'tochka').

While being superior in some aspects, unfortunately, it was not met with sufficient customer acceptance to survive.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .