Skip to content

Commit

Permalink
Version 0.17.0-dev (#1689)
Browse files Browse the repository at this point in the history
* Steal new_version.py from doc-0.16.1

* Version: 0.17.0-dev
  • Loading branch information
franzpoeschel authored Oct 29, 2024
1 parent 7abdd7c commit 7620c47
Show file tree
Hide file tree
Showing 11 changed files with 85 additions and 29 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
python3.exe -m pip wheel .
if(!$?) { Exit $LASTEXITCODE }
python3.exe -m pip install openPMD_api-0.16.0-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)"
Expand Down
2 changes: 1 addition & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ contact:
orcid: https://orcid.org/0000-0003-1943-7141
email: [email protected]
title: "openPMD-api: C++ & Python API for Scientific I/O with openPMD"
version: 0.16.0
version: 0.17.0-dev
repository-code: https://github.com/openPMD/openPMD-api
doi: 10.14278/rodare.27
license: LGPL-3.0-or-later
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#
cmake_minimum_required(VERSION 3.22.0)

project(openPMD VERSION 0.16.0) # LANGUAGES CXX
project(openPMD VERSION 0.17.0) # LANGUAGES CXX

# the openPMD "markup"/"schema" standard version
set(openPMD_STANDARD_VERSION 1.1.0)
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.0 CONFIG)
find_package(openPMD 0.17.0 CONFIG)
if(openPMD_FOUND)
target_link_libraries(YourTarget PRIVATE openPMD::openPMD)
Expand Down Expand Up @@ -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.0")
GIT_TAG "0.17.0")
FetchContent_MakeAvailable(openPMD)
```

Expand Down
4 changes: 2 additions & 2 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,9 @@
# built documents.
#
# The short X.Y version.
version = u'0.16.0'
version = u'0.17.0'
# The full version, including alpha/beta/rc tags.
release = u'0.16.0'
release = u'0.17.0-dev'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
4 changes: 2 additions & 2 deletions docs/source/dev/linking.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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.0 CONFIG)
find_package(openPMD 0.17.0 CONFIG)
if(openPMD_FOUND)
target_link_libraries(YourTarget PRIVATE openPMD::openPMD)
Expand Down Expand Up @@ -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.0")
GIT_TAG "0.17.0")
FetchContent_MakeAvailable(openPMD)
Expand Down
2 changes: 1 addition & 1 deletion docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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.0`` (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``
======================== ===================================

Expand Down
4 changes: 2 additions & 2 deletions include/openPMD/version.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@
* @{
*/
#define OPENPMDAPI_VERSION_MAJOR 0
#define OPENPMDAPI_VERSION_MINOR 16
#define OPENPMDAPI_VERSION_MINOR 17
#define OPENPMDAPI_VERSION_PATCH 0
#define OPENPMDAPI_VERSION_LABEL ""
#define OPENPMDAPI_VERSION_LABEL "dev"
/** @} */

/** maximum supported version of the openPMD standard (read & write,
Expand Down
86 changes: 71 additions & 15 deletions new_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,11 @@

# Maintainer Inputs ###########################################################

print(
"""Hi there, this is an openPMD maintainer tool to update the source
print("""Hi there, this is an openPMD maintainer tool to update the source
code of openPMD-api to a new version.
For it to work, you need write access on the source directory and
you should be working in a clean git branch without ongoing
rebase/merge/conflict resolves and without unstaged changes."""
)
rebase/merge/conflict resolves and without unstaged changes.""")

# check source dir
# REPO_DIR = Path(__file__).parent.parent.parent.absolute()
Expand All @@ -40,6 +38,7 @@

VERSION_STR = f"{MAJOR}.{MINOR}.{PATCH}"
VERSION_STR_SUFFIX = VERSION_STR + (f"-{SUFFIX}" if SUFFIX else "")
VERSION_STR_SUFFIX_WITH_DOT = VERSION_STR + (f".{SUFFIX}" if SUFFIX else "")

print()
print(f"Your new version is: {VERSION_STR_SUFFIX}")
Expand All @@ -51,20 +50,41 @@
for line in f:
match = re.search(r"find_package.*openPMD *([^ ]*) *CONFIG\).*", line)
if match:
OLD_VERSION_STR = match.group(1)
OLD_VERSION_STR_README = match.group(1)
break

with open(str(REPO_DIR.joinpath("CMakeLists.txt")), encoding="utf-8") as f:
for line in f:
match = re.search(r"project\(openPMD *VERSION *(.*)\)", line)
if match:
OLD_VERSION_STR_CMAKE = match.group(1)
break

OLD_VERSION_TAG = ""
with open(str(REPO_DIR.joinpath("include/openPMD/version.hpp")),
encoding="utf-8") as f:
for line in f:
match = re.search(r'#define OPENPMDAPI_VERSION_LABEL "([^"]+)"', line)
if match:
OLD_VERSION_TAG = match.group(1)
break

OLD_VERSION_SUFFIX = f"(-{OLD_VERSION_TAG})?" if OLD_VERSION_TAG else ""
# The order of the alternatives is important, since the Regex parser
# should greedily include the old version suffix
OLD_VERSION_STR = \
f"({re.escape(OLD_VERSION_STR_CMAKE)}{OLD_VERSION_SUFFIX})" + \
f"|({re.escape(OLD_VERSION_STR_README)})"

print(f"The old version is: {OLD_VERSION_STR}")
print()


REPLY = input("Is this information correct? Will now start updating! [y/N] ")
print()
if REPLY not in ["Y", "y", ""]:
print("You did not confirm with 'y', aborting.")
sys.exit(1)


# Ask for new #################################################################

print("""We will now run a few sed commands on your source directory.\n""")
Expand All @@ -86,18 +106,56 @@
f.write(cmakelists_content)


def generic_replace(filename):
def generic_replace(filename, previous, after):
filename = str(REPO_DIR.joinpath(filename))
with open(filename, encoding="utf-8") as f:
content = f.read()
content = re.sub(re.escape(OLD_VERSION_STR), VERSION_STR, content)
content = re.sub(previous, after, content, flags=re.MULTILINE)

with open(filename, "w", encoding="utf-8") as f:
f.write(content)


for file in ["docs/source/dev/linking.rst", "README.md"]:
generic_replace(file)
for file in [
"docs/source/dev/linking.rst",
"README.md",
]:
generic_replace(file, previous=OLD_VERSION_STR, after=VERSION_STR)

for file in ["CITATION.cff", "test/SerialIOTest.cpp"]:
generic_replace(file, previous=OLD_VERSION_STR, after=VERSION_STR_SUFFIX)

generic_replace(
"docs/source/index.rst",
previous=r"``0.13.1-[^`]*``",
after=f"``0.13.1-{VERSION_STR}``",
)
setup_py_path = str(REPO_DIR.joinpath("setup.py"))
with open(setup_py_path, encoding="utf-8") as f:
for line in f:
match = re.search(r"version='([^']+)',", line)
if match:
PREVIOUS_PIP_VERSION = match.group(1)
break
generic_replace("setup.py",
previous=PREVIOUS_PIP_VERSION,
after=VERSION_STR_SUFFIX_WITH_DOT)
generic_replace(
".github/workflows/windows.yml",
previous=f"{PREVIOUS_PIP_VERSION}0?",
after=(f"{VERSION_STR_SUFFIX_WITH_DOT}0"
if SUFFIX else VERSION_STR_SUFFIX_WITH_DOT),
)
generic_replace(
"docs/source/conf.py",
previous=r"^version.*=.*",
after=f"version = u'{VERSION_STR}'",
)
generic_replace(
"docs/source/conf.py",
previous=r"^release.*=.*",
after=f"release = u'{VERSION_STR_SUFFIX}'",
)

version_hpp_path = str(REPO_DIR.joinpath("include/openPMD/version.hpp"))
with open(version_hpp_path, encoding="utf-8") as f:
Expand All @@ -122,8 +180,6 @@ def replace(key, value):

# Epilogue ####################################################################

print(
"""Done. Please check your source, e.g. via
print("""Done. Please check your source, e.g. via
git diff
now and commit the changes if no errors occurred."""
)
now and commit the changes if no errors occurred.""")
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ def build_extension(self, ext):
setup(
name='openPMD-api',
# note PEP-440 syntax: x.y.zaN but x.y.z.devN
version='0.16.0',
version='0.17.0.dev',
author='Axel Huebl, Franz Poeschel, Fabian Koller, Junmin Gu',
author_email='[email protected], [email protected]',
maintainer='Axel Huebl',
Expand Down
2 changes: 1 addition & 1 deletion test/SerialIOTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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.0"));
IO.DefineAttribute("/softwareVersion", std::string("0.17.0-dev"));

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

0 comments on commit 7620c47

Please sign in to comment.