openPMD / openPMD-api

:floppy_disk: C++ & Python API for Scientific I/O
https://openpmd-api.readthedocs.io
GNU Lesser General Public License v3.0
142 stars 51 forks source link

[WIP] Release: 0.16.1 #1676

Open ax3l opened 1 month ago

ax3l commented 1 month ago

Which version am I running?

Python

import openpmd_api
print(openpmd_api.__version__)

C++

#include <openPMD/openPMD.hpp>
#include <iostream>

int main() {
    // query compile-time macros:
    std::cout << OPENPMDAPI_VERSION_MAJOR << "."
              << OPENPMDAPI_VERSION_MINOR << "."
              << OPENPMDAPI_VERSION_PATCH << std::endl;
    // there is also: OPENPMDAPI_VERSION_LABEL (e.g. "alpha")

    // or query the runtime API (since 0.12.0):
    std::cout << openPMD::getVersion() << std::endl;
    return 0;
}

CLI

# command line option (since 0.12.0):
openpmd-ls --version
franzpoeschel commented 1 month ago

I have pushed a fixed version of the version script that now includes the missing files. The diff created by the script (when executed on the dev branch right before 0.16.0) is identical to this PR's diff. There was one version update missing in the CI, pushed a fix there too.

ax3l commented 1 month ago

Thank you @franzpoeschel ! :tada:

Does the Pythonic suffix work as well?

franzpoeschel commented 1 month ago

Thank you @franzpoeschel ! 🎉

Does the Pythonic suffix work as well?

* dev/rc `.` suffix: For `setup.py` it needs to read `x.y.zaN` and `x.y.z.dev` per PEP-440.

* dev/rc `-` suffix: In C++ and `docs/source/conf.py: "release"` (not `"version"`) we write `x.y.z` and `x.y.z-dev`.

* In `CMakeLists.txt` we use _no_ suffix for dev/rc versions.

I tried paying atttention to this. This is the diff after using the script to enable version 0.17.0-dev:

diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index 183bcc4f7..5d132a622 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -42,7 +42,7 @@ jobs:

         python3.exe -m pip wheel .
         if(!$?) { Exit $LASTEXITCODE }
-        python3.exe -m pip install openPMD_api-0.16.1-cp39-cp39-win_amd64.whl
+        python3.exe -m pip install openPMD_api-0.17.0.dev0-cp39-cp39-win_amd64.whl
         if(!$?) { Exit $LASTEXITCODE }

         python3.exe -c "import openpmd_api as api; print(api.variants)"
diff --git a/CITATION.cff b/CITATION.cff
index a0f24d52e..9504dca15 100644
--- a/CITATION.cff
+++ b/CITATION.cff
@@ -37,7 +37,7 @@ contact:
   orcid: https://orcid.org/0000-0003-1943-7141
   email: axelhuebl@lbl.gov
 title: "openPMD-api: C++ & Python API for Scientific I/O with openPMD"
-version: 0.16.1
+version: 0.17.0-dev
 repository-code: https://github.com/openPMD/openPMD-api
 doi: 10.14278/rodare.27
 license: LGPL-3.0-or-later
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bf4403671..fc5d6d5de 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,7 +2,7 @@
 #
 cmake_minimum_required(VERSION 3.22.0)

-project(openPMD VERSION 0.16.1) # LANGUAGES CXX
+project(openPMD VERSION 0.17.0) # LANGUAGES CXX

 # the openPMD "markup"/"schema" standard version
 set(openPMD_STANDARD_VERSION 1.1.0)
diff --git a/README.md b/README.md
index 0791a4fea..57fdc2150 100644
--- a/README.md
+++ b/README.md
@@ -304,7 +304,7 @@ export CMAKE_PREFIX_PATH=$HOME/somepath:$CMAKE_PREFIX_PATH
 Use the following lines in your project's `CMakeLists.txt`:
 ´´´cmake
 # supports:                       COMPONENTS MPI NOMPI HDF5 ADIOS2
-find_package(openPMD 0.16.1 CONFIG)
+find_package(openPMD 0.17.0 CONFIG)

 if(openPMD_FOUND)
     target_link_libraries(YourTarget PRIVATE openPMD::openPMD)
@@ -332,7 +332,7 @@ set(openPMD_INSTALL OFF)            # or instead use:
 set(openPMD_USE_PYTHON OFF)
 FetchContent_Declare(openPMD
   GIT_REPOSITORY "https://github.com/openPMD/openPMD-api.git"
-  GIT_TAG        "0.16.1")
+  GIT_TAG        "0.17.0")
 FetchContent_MakeAvailable(openPMD)
 ´´´

diff --git a/docs/source/conf.py b/docs/source/conf.py
index f93e0a276..af1253a13 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -86,9 +86,9 @@ author = u'The openPMD Community'
 # built documents.
 #
 # The short X.Y version.
-version = u'0.16.1'
+version = u'0.17.0'
 # The full version, including alpha/beta/rc tags.
-release = u'0.16.1'
+release = u'0.17.0-dev'

 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/docs/source/dev/linking.rst b/docs/source/dev/linking.rst
index 5048ddbf1..033f81383 100644
--- a/docs/source/dev/linking.rst
+++ b/docs/source/dev/linking.rst
@@ -23,7 +23,7 @@ Use the following lines in your project's ``CMakeLists.txt``:
 .. code-block:: cmake

    # supports:                       COMPONENTS MPI NOMPI HDF5 ADIOS2
-   find_package(openPMD 0.16.1 CONFIG)
+   find_package(openPMD 0.17.0 CONFIG)

    if(openPMD_FOUND)
        target_link_libraries(YourTarget PRIVATE openPMD::openPMD)
@@ -53,7 +53,7 @@ Just replace the ``add_subdirectory`` call with:
    set(openPMD_USE_PYTHON OFF)
    FetchContent_Declare(openPMD
      GIT_REPOSITORY "https://github.com/openPMD/openPMD-api.git"
-     GIT_TAG        "0.16.1")
+     GIT_TAG        "0.17.0")
    FetchContent_MakeAvailable(openPMD)

diff --git a/docs/source/index.rst b/docs/source/index.rst
index e38b87d48..db2bbc300 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -44,7 +44,7 @@ openPMD-api version      supported openPMD standard versions
 ======================== ===================================
 ``2.0.0+``               ``2.0.0+``      (not released yet)
 ``1.0.0+``               ``1.0.1-1.1.0`` (not released yet)
-``0.13.1-0.16.1`` (beta) ``1.0.0-1.1.0``
+``0.13.1-0.17.0`` (beta) ``1.0.0-1.1.0``
 ``0.1.0-0.12.0`` (alpha) ``1.0.0-1.1.0``
 ======================== ===================================

diff --git a/include/openPMD/version.hpp b/include/openPMD/version.hpp
index ead912a23..bc1de8a5c 100644
--- a/include/openPMD/version.hpp
+++ b/include/openPMD/version.hpp
@@ -28,9 +28,9 @@
  * @{
  */
 #define OPENPMDAPI_VERSION_MAJOR 0
-#define OPENPMDAPI_VERSION_MINOR 16
-#define OPENPMDAPI_VERSION_PATCH 1
-#define OPENPMDAPI_VERSION_LABEL ""
+#define OPENPMDAPI_VERSION_MINOR 17
+#define OPENPMDAPI_VERSION_PATCH 0
+#define OPENPMDAPI_VERSION_LABEL "dev"
 /** @} */

 /** maximum supported version of the openPMD standard (read & write,
diff --git a/setup.py b/setup.py
index 271f24bc5..f1b88f23a 100644
--- a/setup.py
+++ b/setup.py
@@ -174,7 +174,7 @@ with open('./requirements.txt') as f:
 setup(
     name='openPMD-api',
     # note PEP-440 syntax: x.y.zaN but x.y.z.devN
-    version='0.16.1',
+    version='0.17.0.dev',
     author='Axel Huebl, Franz Poeschel, Fabian Koller, Junmin Gu',
     author_email='axelhuebl@lbl.gov, f.poeschel@hzdr.de',
     maintainer='Axel Huebl',
diff --git a/test/SerialIOTest.cpp b/test/SerialIOTest.cpp
index 439d17c32..b21e45927 100644
--- a/test/SerialIOTest.cpp
+++ b/test/SerialIOTest.cpp
@@ -6363,7 +6363,7 @@ void adios2_bp5_no_steps(bool usesteps)
         IO.DefineAttribute("/openPMD", std::string("1.1.0"));
         IO.DefineAttribute("/openPMDextension", uint32_t(0));
         IO.DefineAttribute("/software", std::string("openPMD-api"));
-        IO.DefineAttribute("/softwareVersion", std::string("0.16.1"));
+        IO.DefineAttribute("/softwareVersion", std::string("0.17.0-dev"));

         IO.DefineAttribute("/data/0/dt", double(1));
         IO.DefineAttribute(