Can't find glib ver 2.89. Is there such a thing?

I just deleted this post because I accidentally posted it under gtk and I’m having problems re-posting, so fingers crossed…

I’m trying to find a glib version which offers g_date_time_new_from_iso8601(). I found this web page which suggests (in the top, LH corner) that it’s available from version 2.89 but when I look here the highest version I can find for glib 2.8 is version 2.8.6. Is the documentation wrong or am I looking in the wrong place?

The documentation is correct, and you’re just reading the wrong version—and reading versions wrong, as it also happens.

The symbol you’re looking for is available “since 2.56”, as the blue box right underneath the symbol’s name and the page title says. Symbols without that blue box are automatically assumed to have been added in version 2.0; symbols added during a development cycle have a yellow “unstable” box near the version.

The version on the left side bar is the current version of the project’s documentation, which is the tip of GLib’s development branch.

Finally: “version 2.86” is not a continuation of “version 2.8”: versions are not numbers. Versions are made of components, and components may behave like numbers. In the case of GLib, the first component is the major version, which is only updated when API changes or is removed; the second component is the minor version, which is updated during the development cycle; the third component is the micro version, or patch level, which is incremented within the same cycle. The minor version is also used to determine whether the project is inside a development cycle (odd number), or stable cycle (even number). API can only be added during a development cycle, and the newly added API is frozen once the stable cycle starts.

1 Like

Thanks @ebassi that all makes sense - except for this bit:-

I assume you’re saying that 2.86 is in fact a continuation of 2.80, rather than 2.8?

[Edit…] Hmmm, no I think I’ve misunderstood again. 2.80 and 2.86 are different versions. Is that right?

Every minor version of version “2.x.y” is a “continuation” of 2.0, because they are backward compatible with it. You have version 2.0, 2.2, 2.4, …, 2.56, 2.58, 2.60, …, 2.80, 2.82, 2.84, …

Cycles are separated by even/odd minor versions, and each even/odd minor version has releases with a (major, minor, micro) components; so, version 2.86.3 is:

  • major version 2: backward compatible with every release with the same major version
  • minor version 86: stable cycle following the 85 development cycle; any API added during the 85 development cycle is now frozen
  • micro version 3: fourth release in the same minor version (releases start at 0)

Yes, every (major, minor) version is a separate version.

Yes, that all makes sense @ebassi - thanks for clarifying.

Actually it was fine, we could just move it to correct place.

You can also mark ebassi’s response as a Solution (next to heart button).

1 Like

Done !

And that “moving” thing is useful to know.

1 Like