openPMD / openPMD/openPMD-api

Versioning Scheme

Open
#87 19 comments 0 reactions 2 assignees Claimed by @anokfireball View on GitHub
discussion
Dominant language
C++
Stars
161
Forks
59
Avg merge
2d 22h
Merged PRs (30d)
7

Description

Versioning of the lib can be tricky since the `openPMD` [base standard](https://github.com/openPMD/openPMD-standard) also has a version and we want to avoid confusion.

The idea I came up with yet was to use always the **same major version** of `openPMD-api` as the base standard and try to support all minor versions of this major (but not previous major versions; see [updater](https://github.com/openPMD/openPMD-updater)).

The only problem comes in when we want to do incompatible API changes *within* a major version, which would break the usual [semantic versioning](https://semver.org/) of `openPMD-api`.

In the README (badges & test) and in `openPMD/version.hpp` defines we then define additional macros (C++: done already; Py: Needs Exposure) that expose which min and max of the openPMD standard are supported.

Of course we could also just do a simple, independent [semantic versioning](https://semver.org/) of `openPMD-api` (with the docs as mentioned above) but I would bet this will confuse people a lot...

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.