Hello community, here is the log from the commit of package python-mpi4py for openSUSE:Factory checked in at 2018-06-29 22:29:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-mpi4py (Old) and /work/SRC/openSUSE:Factory/.python-mpi4py.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-mpi4py" Fri Jun 29 22:29:36 2018 rev:5 rq:617714 version:3.0.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-mpi4py/python-mpi4py.changes 2017-10-26 18:44:36.107341704 +0200 +++ /work/SRC/openSUSE:Factory/.python-mpi4py.new/python-mpi4py.changes 2018-06-29 22:29:38.622336060 +0200 @@ -1,0 +2,38 @@ +Wed Jun 13 16:00:41 UTC 2018 - toddrme2...@gmail.com + +- Update to version 3.0.0 + * New features: + + `mpi4py.futures`: Execute computations asynchronously using a pool + of MPI processes. This package is based on ``concurrent.futures`` + from the Python standard library. + + `mpi4py.run`: Run Python code and abort execution in case of + unhandled exceptions to prevent deadlocks. + + `mpi4py.bench`: Run basic MPI benchmarks and tests. + * Enhancements: + + Lowercase, pickle-based collective communication calls are now + thread-safe through the use of fine-grained locking. + + The ``MPI`` module now exposes a ``memory`` type which is a + lightweight variant of the builtin ``memoryview`` type, but + exposes both the legacy Python 2 and the modern Python 3 buffer + interface under a Python 2 runtime. + + The ``MPI.Comm.Alltoallw()`` method now uses ``count=1`` and + ``displ=0`` as defaults, assuming that messages are specified + through user-defined datatypes. + + The ``Request.Wait[all]()`` methods now return ``True`` to match + the interface of ``Request.Test[all]()``. + + The ``Win`` class now implements the Python buffer interface. + * Backward-incompatible changes: + + The ``buf`` argument of the ``MPI.Comm.recv()`` method is + deprecated, passing anything but ``None`` emits a warning. + + The ``MPI.Win.memory`` property was removed, use the + ``MPI.Win.tomemory()`` method instead. + + Executing ``python -m mpi4py`` in the command line is now + equivalent to ``python -m mpi4py.run``. For the former behavior, + use ``python -m mpi4py.bench``. + + Python 2.6 and 3.2 are no longer supported. The ``mpi4py.MPI`` + module may still build and partially work, but other pure-Python + modules under the ``mpi4py`` namespace will not. + + Windows: Remove support for legacy MPICH2, Open MPI, and DeinoMPI. +- Switch to recommended openmpi2 for distributions that support it. + +------------------------------------------------------------------- Old: ---- mpi4py-2.0.0.tar.gz New: ---- mpi4py-3.0.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-mpi4py.spec ++++++ --- /var/tmp/diff_new_pack.vDft8d/_old 2018-06-29 22:29:39.182335633 +0200 +++ /var/tmp/diff_new_pack.vDft8d/_new 2018-06-29 22:29:39.182335633 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-mpi4py # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,12 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-mpi4py -Version: 2.0.0 +%if 0%{?sle_version} <= 120300 +%define mpiver openmpi +%else +%define mpiver openmpi2 +%endif +Version: 3.0.0 Release: 0 Summary: MPI for Python License: BSD-2-Clause @@ -29,34 +34,41 @@ BuildRequires: python-rpm-macros BuildRequires: %{python_module devel} BuildRequires: %{python_module setuptools} -BuildRequires: openmpi-devel -Requires: openmpi -BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: %{mpiver} +BuildRequires: %{mpiver}-devel +Requires: %{mpiver} + %python_subpackages %description -This package provides Message Passing Interface support for Python scripting in parallel -environments. It is constructed on top of the MPI-1/MPI-2 -specification, but provides an object-oriented interface which closely -follows the MPI-2 C++ bindings. - -This module supports point-to-point (send, receive) and collective -(broadcast, scatter, gather, reduction) communications of any -*picklable* Python object. - -For objects exporting single-segment buffer interface (strings, NumPy -arrays, etc.), blocking/nonbloking/persistent point-to-point, -collective and one-sided (put, get, accumulate) communications are -fully supported, as well as parallel I/O (blocking and nonbloking, -collective and non-collective read and write operations using explicit -file offsets, individual file pointers and shared file -pointers). - -There is also full support for group and communicator (inter, intra, -Cartesian and graph topologies) creation and management, as well as -creating user-defined datatypes. Additionally, there is almost -complete support for dynamic process creation and management (spawn, -name publishing). +This package provides Python bindings for the Message Passing +Interface (MPI) standard. It is implemented on top of the MPI-1/2/3 +specification and exposes an API which grounds on the standard MPI-2 +C++ bindings. + +This package supports: + + Communication of any picklable Python object + * Point-to-point: send & receive + * Collective: broadcast, scatter & gather, reductions + + Communication of Python object exposing the Python buffer + interface (NumPy arrays, builtin bytes/string/array objects) + * Point-to-point: blocking/nonbloking/persistent send & receive + * Collective: broadcast, block/vector scatter & gather, reductions + + Process groups and communication domains + * Creation of new intra/inter communicators + * Cartesian & graph topologies + + Parallel input/output: + * read & write + * blocking/nonbloking & collective/noncollective + * individual/shared file pointers & explicit offset + + Dynamic process management + * spawn & spawn multiple + * accept/connect + * name publishing & lookup + + One-sided operations + * remote memory access: put, get, accumulate + * passive target syncronization: start/complete & post/wait + * active target syncronization: lock & unlock %package devel Summary: Development files for %{name} @@ -91,16 +103,17 @@ %prep %setup -q -n mpi4py-%{version} +rm demo/*/runtests.bat docs/source/usrman/make.bat +sed -i 's/\r$//' docs/usrman/objects.inv %build -source %{_libdir}/mpi/gcc/openmpi/bin/mpivars.sh +source %{_libdir}/mpi/gcc/%{mpiver}/bin/mpivars.sh export CFLAGS="%{optflags}" %python_build %install %python_install -%python_expand %fdupes %{buildroot}%{$python_sitearch} # De-duplicate includes and also put them in a more generally-accessible location. mkdir -p %{buildroot}/%{_includedir} @@ -108,32 +121,35 @@ %python_expand rm -r %{buildroot}%{$python_sitearch}/mpi4py/include/mpi4py %python_expand ln -s %{_includedir}/mpi4py %{buildroot}%{$python_sitearch}/mpi4py/include/mpi4py +%python_expand %fdupes %{buildroot}%{$python_sitearch} + +%check +export PYTHONDONTWRITEBYTECODE=1 +%{python_expand export PYTHONPATH=%{buildroot}%{$python_sitearch} +%{_libdir}/mpi/gcc/%{mpiver}/bin/mpirun -n 1 $python -B test/runtests.py -v +} + %files %{python_files} %defattr(-,root,root) -%doc CHANGES.rst DESCRIPTION.rst README.rst LICENSE.rst +%doc CHANGES.rst DESCRIPTION.rst README.rst +%license LICENSE.rst %{python_sitearch}/mpi4py %{python_sitearch}/mpi4py-%{version}-py*.egg-info %exclude %{python_sitearch}/mpi4py/include/ %files %{python_files devel} %defattr(-,root,root) -%doc LICENSE.rst -%dir %{python_sitearch}/mpi4py/include/ -%{python_sitearch}/mpi4py/include/mpi4py +%license LICENSE.rst +%{python_sitearch}/mpi4py/include/ %files -n %{name}-common-devel %defattr(-,root,root) -%doc LICENSE.rst -%dir %{_includedir}/mpi4py/ -%{_includedir}/mpi4py/*.h -%{_includedir}/mpi4py/*.i -%{_includedir}/mpi4py/*.pxd -%{_includedir}/mpi4py/*.pxi -%{_includedir}/mpi4py/*.pyx +%license LICENSE.rst +%{_includedir}/mpi4py/ %files -n %{name}-doc %defattr(-,root,root) -%doc LICENSE.rst +%license LICENSE.rst %doc docs/ %doc demo/ ++++++ mpi4py-2.0.0.tar.gz -> mpi4py-3.0.0.tar.gz ++++++ ++++ 249542 lines of diff (skipped)