Giter Site home page Giter Site logo

Comments (6)

heidivanparys avatar heidivanparys commented on June 3, 2024 1

Just repeating my comment from during the Architecture DWG meeting: the original proposal presented at the meeting does not follow the semantic versioning principles as specified on https://semver.org/.

From https://semver.org/#summary:

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make incompatible API changes,
  2. MINOR version when you add functionality in a backwards compatible manner, and
  3. PATCH version when you make backwards compatible bug fixes.

Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

See especially https://semver.org/#spec-item-9:

A pre-release version MAY be denoted by appending a hyphen and a series of dot separated identifiers immediately following the patch version. Identifiers MUST comprise only ASCII alphanumerics and hyphens [0-9A-Za-z-]. Identifiers MUST NOT be empty. Numeric identifiers MUST NOT include leading zeroes. Pre-release versions have a lower precedence than the associated normal version. A pre-release version indicates that the version is unstable and might not satisfy the intended compatibility requirements as denoted by its associated normal version. Examples: 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92, 1.0.0-x-y-z.–.

Note, see also https://semver.org/#spec-item-10:

Build metadata MAY be denoted by appending a plus sign and a series of dot separated identifiers immediately following the patch or pre-release version. Identifiers MUST comprise only ASCII alphanumerics and hyphens [0-9A-Za-z-]. Identifiers MUST NOT be empty. Build metadata MUST be ignored when determining version precedence. Thus two versions that differ only in the build metadata, have the same precedence. Examples: 1.0.0-alpha+001, 1.0.0+20130313144700, 1.0.0-beta+exp.sha.5114f85, 1.0.0+21AF26D3—-117B344092BD.

So you could e.g. have release and pre-release versions: 1.0.0-draft.1, 1.0.0-draft.2, 1.0.0-draft.3, 1.0.0, 1.0.1.draft.1, 1.0.1, 1.1.0.

The Git commit number would be a form of build metadata (e.g. 1.0.0-draft.1+79c1702).

from architecture-dwg.

cportele avatar cportele commented on June 3, 2024

This is a general issue, not restricted to "OpenAPI definition documents".

from architecture-dwg.

ghobona avatar ghobona commented on June 3, 2024

The issue was discussed during the 2021-09-13 Architecture DWG session.

Some of the proposed solutions included:

  • Adding a fourth digit to semantic versioning. MAJOR.MINOR.PATCH.DRAFT-IN-PROGRESS for example 0.9.1.2
  • Using Git commit numbers e.g. 79c1702d63c7f848da4e56e0b8976f93230452d5
  • A pre-release version MAY be denoted by appending a hyphen and a series of dot separated identifiers immediately following the patch version. [...] Examples: 1.0.0-alpha, 1.0.0-alpha.1

from architecture-dwg.

cportele avatar cportele commented on June 3, 2024

OGC API Features is using the 3rd approach, pre-release drafts are tagged as {x}.{y}.{z}-draft.{n} with {x}.{y}.{z} being the OGC version and {n} the pre-release number, starting with 1 for the first draft and increasing for each subsequent draft.

from architecture-dwg.

pebau avatar pebau commented on June 3, 2024

from architecture-dwg.

ghobona avatar ghobona commented on June 3, 2024

To close this Issue, I note that the {x}.{y}.{z}-draft.{n} approach appears to have been the most favoured during the 2021-09-13 Architecture DWG session.

I have now listed it on a wiki page I am building that lists 'Recommended Practices for OGC API SWGs'.

from architecture-dwg.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.