Skip to content

Release 0.14.4 backports #1177

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 20 commits into from
Jan 21, 2022
Merged

Conversation

ax3l
Copy link
Member

@ax3l ax3l commented Jan 19, 2022

https://github.com/openPMD/openPMD-api/milestone/3

Increased Compatibility & Python Install Bug

This release fixes various read/parsing bugs and increases compatibility with upcoming versions of ADIOS and old releases of Intel icpc. An installation issue for pip-based installs from source in the last release was fixed and Python 3.10 support added. Various documentation and installation warnings have been fixed.

Thanks to @ax3l and @franzpoeschel for contributing to this release!

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

ax3l and others added 17 commits January 19, 2022 11:01
Forgot to add in openPMD#1128, which is then missing in Python sdist files
for pip from-source builds.
Add support for Python 3.10.
musllinux uses the musl libc on an Alpine stack, especially for
docker-ish containers.

Let's add coverage while also covering CPython 3.10
Fix a typo in the `__repr__` of `Iteration` in Python.
Until now, the half-parsed records were not deleted.
Our sanity checks in `Series::~Series()` caught up on that and threw
errors.
No idea why this PR triggers that error
Happened so far in variable-based iteration encoding
The `Attribute` constructors with implicit variant conversion
sometimes do not work in ICC 19.1.2.

```
openPMD-api/src/RecordComponent.cpp(226): error: no instance of constructor "openPMD::Attribute::Attribute" matches the argument list
            argument types are: (openPMD::Extent)
                  Attribute a(getExtent());
                              ^
openPMD-api/include/openPMD/backend/Attribute.hpp(50): note: this candidate was rejected because arguments do not match
  class Attribute :
        ^
openPMD-api/include/openPMD/backend/Attribute.hpp(50): note: this candidate was rejected because arguments do not match
  class Attribute :
        ^
openPMD-api/include/openPMD/backend/Attribute.hpp(79): note: this candidate was rejected because arguments do not match
      Attribute(resource r) : Variant(std::move(r))
      ^
```

Same work-around as for NVCC in  openPMD#1103
Fix a warning with CMake 3.22+.

We use simple syntax in cmake_dependent_option, so we are compatible
with the extended syntax in CMake 3.22+:
  https://cmake.org/cmake/help/v3.22/policy/CMP0127.html
Fix minor warnings in the docs:
- double reference (make 2nd ref annonymous)
- misaligned reference
Fix misnamed filename and misnamed prefix in text.
Add `.bib` blocks for easier citation of standard and API.
Fix a highlighting issue for `openPMD-ls` in the docs.
Explicitly use `python3` for module calls.
If we append them, then we overwrite flags like `-Wno-...` from
environment variables.
Referes to post-`2.7.1` `master` branch of ADIOS2.

Catch new ADIOS2 error type: string

getCompressionOperator

Dirtily catch ADIOS2 exception in automatically_deactivate_span

Cleanly destruct a Series that errored during flushing

Problem was that IO tasks that do not return cleanly but throw an
exception must be removed from the IO queue, otherwise the task will be
tried again during destruction. Usually, this means that anything will
happen.

SerialIOTest: Remove Comments (resolved)

Print warning when removing task from IO queue

std::string and fix warning
@ax3l ax3l added this to the 0.14.4 milestone Jan 19, 2022
@ax3l ax3l changed the base branch from dev to release-0.14.4 January 19, 2022 19:32
@ax3l ax3l closed this Jan 19, 2022
@ax3l ax3l reopened this Jan 19, 2022
new int[ size ]{}, []( auto * ptr ) { delete[] ptr; } );
} );

REQUIRE( spanWorkaround );
Copy link
Member Author

@ax3l ax3l Jan 19, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@franzpoeschel does this test require the new JSON re-work or so? In that case, I would need to remove it from the backport.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It does, though it might actually make sense to backport the workaround too. I'll have a look

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've opened the backport as a PR: ax3l#2

@ax3l ax3l requested a review from franzpoeschel January 19, 2022 19:57
@ax3l ax3l force-pushed the release-0.14.4-backports branch 2 times, most recently from 9bd6a28 to 7262fc1 Compare January 21, 2022 21:33
@ax3l ax3l force-pushed the release-0.14.4-backports branch from 7262fc1 to de420f6 Compare January 21, 2022 21:34
@ax3l ax3l merged commit 756bffc into openPMD:release-0.14.4 Jan 21, 2022
@ax3l ax3l deleted the release-0.14.4-backports branch January 21, 2022 22:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants