Skip to content
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

Bump Python and CMake versions #3878

Merged
merged 5 commits into from
Aug 28, 2020
Merged

Conversation

jngrad
Copy link
Member

@jngrad jngrad commented Aug 27, 2020

Description of changes:

  • bump CMake version requirement from 3.10 to 3.11 to get full support for imported targets
    • fixes a cryptic error message when compiling ESPResSo with FFTW3 using CMake 3.10
  • bump Python version requirement from 3.5 to 3.6 (NEP 29, see drop table in NEP 29: new release schedule for scientific python packages #3421)
    • enables f-strings
  • fix flaw in espressomd.utils.check_type_or_throw_except() that lead to subtle errors when arrays had the wrong size
  • add tests for functions in espressomd.utils

jngrad added 5 commits August 27, 2020 16:43
Imported targets with namespaces are only supported since 3.11.
Python 3.5 is deprecated in the NEP 29 support table since 2019.
Without this check, we could assign a vector of length 4 to a
variable holding a vector of length 3 (trailing values would
be discarded). We could also assign a vector of a smaller size
to trigger an IndexError.
@jngrad jngrad added this to the Espresso 4.2 milestone Aug 27, 2020
@jngrad jngrad changed the title Bump Python and CMake verions Bump Python and CMake versions Aug 27, 2020
@jngrad jngrad requested a review from KaiSzuttor August 27, 2020 17:28
Copy link
Member

@KaiSzuttor KaiSzuttor left a comment

Choose a reason for hiding this comment

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

Do we have any documentation for the python requirements?

@KaiSzuttor KaiSzuttor added the automerge Merge with kodiak label Aug 28, 2020
@kodiakhq kodiakhq bot merged commit 2c47221 into espressomd:python Aug 28, 2020
@jngrad
Copy link
Member Author

jngrad commented Aug 28, 2020

Do we have any documentation for the python requirements?

Not that I know of. If we did, how would we make sure the docs are kept in sync with CMake? For python packages, the requirements are easily extracted (https://github.com/espressomd/espresso/network/dependencies), but for Python/CMake/CUDA/Boost versions this is more tricky, as we have conditional requirements between these components that depend on the user environment. We could state that a NEP29-compliant Python environment is recommended to build the project (we actually lag 6 months behind NEP29, which gives our users more flexibility), but we only test the latest versions of Python packages in CI indirectly via bug reports from the 4.1 build on Fedora Koji.

@jngrad
Copy link
Member Author

jngrad commented Aug 28, 2020

Thanks @schlaicha for reporting the CMake 3.10 issue to the core team.

@jngrad jngrad deleted the bump-python-cmake branch January 18, 2022 12:13
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