diff --git a/.gitignore b/.gitignore index 8bd9645..9ced77a 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ /nixpy-1.5.1.tar.gz /nixpy-1.5.2.tar.gz /nixpy-1.5.3.tar.gz +/nixpy-1.5.3-filtered.tar.gz +/nixpy-1.5.4-filtered.tar.gz diff --git a/0001-Remove-deprecated-pytest-runner-dependency.patch b/0001-Remove-deprecated-pytest-runner-dependency.patch new file mode 100644 index 0000000..850805a --- /dev/null +++ b/0001-Remove-deprecated-pytest-runner-dependency.patch @@ -0,0 +1,34 @@ +From b550f88e64c01194029a50b92d94955c39bf169f Mon Sep 17 00:00:00 2001 +From: Sandro +Date: Tue, 24 Dec 2024 09:08:28 +0100 +Subject: [PATCH] Remove deprecated pytest-runner dependency + +The `pytest-runner` project has been deprecated since 2019 and has been +archived on git hub in December 2024. + +This removes the dependency on the deprecated package and also removes +deprecated keywords from `setup.py` related to it. +--- + setup.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/setup.py b/setup.py +index 16379a5..be594d5 100644 +--- a/setup.py ++++ b/setup.py +@@ -75,9 +75,9 @@ setup( + packages=packages, + scripts=[], + python_requires=">=3.6", +- tests_require=['pytest', 'scipy', 'pillow', 'matplotlib'], +- test_suite='pytest', +- setup_requires=['pytest-runner'], ++ extras_require={ ++ "test": ['pytest', 'scipy', 'pillow', 'matplotlib'], ++ }, + install_requires=['numpy', 'h5py', 'six', 'enum34;python_version<"3.4"'], + package_data={'nixio': [license_text, description_text]}, + include_package_data=True, +-- +2.48.1 + diff --git a/get_source b/get_source new file mode 100755 index 0000000..1ac2cc4 --- /dev/null +++ b/get_source @@ -0,0 +1,50 @@ +#!/bin/sh +set -o errexit +set -o nounset + +if [ "$#" != '1' ] +then + cat 1>&2 < Downloading: ${URL}" 1>&2 +curl -L -O "${URL}" + +ARCHIVE="$(find . -mindepth 1 -maxdepth 1 -type f -name '*.tar.gz' -print -quit)" +echo "--> Extracting: $(basename "${ARCHIVE}")" 1>&2 +tar -xzf "${ARCHIVE}" +echo '--> Removing Lenna/Lena image due to licensing and other issues' 1>&2 +TARDIR="$(basename "${ARCHIVE}" '.tar.gz')" +MTIME="$(stat -c '%Y' "${TARDIR}")" +# https://github.com/G-Node/nixpy/issues/545 +find "${TARDIR}" -type f -name lenna.png -print -delete +# Make sure the original mtime is preserved even if we modified the base +# directory by removing something at the top level. (So far, we didn’t.) +touch -d @"${MTIME}" "${TARDIR}" +FILTERED="$(basename "${ARCHIVE}" .tar.gz)-filtered.tar.gz" +echo "--> Re-archiving: ${FILTERED}" 1>&2 +# https://www.gnu.org/software/tar/manual/html_section/Reproducibility.html +TZ=UTC LC_ALL=C tar \ + --create \ + --sort=name \ + --format=posix \ + --numeric-owner --owner=0 --group=0 \ + --mode=go+u,go-w \ + --pax-option='delete=atime,delete=ctime' \ + "${TARDIR}/" | + gzip -9 > "${FILTERED}" +mv -v "${FILTERED}" "${OUTDIR}" +echo 'Done.' 1>&2 diff --git a/python-nixio.spec b/python-nixio.spec index 2c69623..812eabb 100644 --- a/python-nixio.spec +++ b/python-nixio.spec @@ -1,53 +1,64 @@ %global forgeurl https://github.com/G-node/nixpy +%global desc \ +The NIX project started as an initiative within the Electrophysiology Task \ +Force a part of the INCF Data sharing Program. The NIX data model allows to \ +store fully annotated scientific data-set, i.e. the data together with its \ +metadata within the same container. Our aim is to achieve standardization by \ +providing a common/generic data structure for a multitude of data types. See \ +the wiki for more information \ + \ +The current implementations store the actual data using the HDF5 file format as \ +a storage backend. + Name: python-nixio -Version: 1.5.3 +Version: 1.5.4 Release: %autorelease Summary: Python bindings for NIX %global tag %version %forgemeta -License: BSD +License: BSD-3-Clause URL: %forgeurl -Source0: %forgesource +# We need to upload a filtered version of the source archive because +# docs/source/examples/lenna.png has several issues, including the lack of a +# license. We have asked upstream to deal with this in +# Please consider replacing lenna.png +# https://github.com/G-Node/nixpy/issues/545 +# but for now, we must obtain the filtered archive by running the script in +# Source2: +# ./get_source ${VERSION} +%dnl Source0: %forgesource +Source0: nixpy-%{version}-filtered.tar.gz # The tagged snapshot on GitHub still says "dev" but the manually uploaded # release does not, so use the info.json from there # https://github.com/G-Node/nixpy/issues/528 Source1: info.json +# * Script used to obtain Source0: ./get_source %%{version} +Source2: get_source +# Remove deprecated pytest-runner dependency +# https://github.com/G-Node/nixpy/pull/547 +# Rebased on 1.5.4, without changes to GitHub CI configuration +# https://fedoraproject.org/wiki/Changes/DeprecatePythonPytestRunner +Patch: 0001-Remove-deprecated-pytest-runner-dependency.patch BuildArch: noarch # No need for nix, they're uncoupling it from the C++ # https://github.com/G-Node/nixpy/pull/276 -%description -The NIX project started as an initiative within the Electrophysiology Task -Force a part of the INCF Data sharing Program. The NIX data model allows to -store fully annotated scientific data-set, i.e. the data together with its -metadata within the same container. Our aim is to achieve standardization by -providing a common/generic data structure for a multitude of data types. See -the wiki for more information +BuildRequires: python3-devel -The current implementations store the actual data using the HDF5 file format as -a storage backend. +%description %{desc} %package -n python3-nixio Summary: %{summary} -BuildRequires: python3-devel -BuildRequires: gcc -# use tests_require which is deprecated -BuildRequires: %{py3_dist pytest} -BuildRequires: %{py3_dist pytest-runner} -BuildRequires: %{py3_dist scipy} -BuildRequires: %{py3_dist pillow} -BuildRequires: %{py3_dist matplotlib} -%description -n python3-nixio -%{description} +%description -n python3-nixio %{desc} %prep -%forgesetup +%autosetup -n nixpy-%{version} -p1 # it sets examples_path based on the name of the cwd sed -i "s/nixpy/nixpy-%{version}/" nixio/test/test_doc_examples.py @@ -55,17 +66,23 @@ sed -i "s/nixpy/nixpy-%{version}/" nixio/test/test_doc_examples.py cp %{SOURCE1} nixio/info.json -v -p %generate_buildrequires -%pyproject_buildrequires -r +%pyproject_buildrequires -x test %build %pyproject_wheel %install %pyproject_install -%pyproject_save_files nixio +%pyproject_save_files -l nixio %check -%{pytest} +# These require the removed lenna.png sample file: +k="${k-}${k+ and }not (TestDocumentationExamples and test_image_data)" +k="${k-}${k+ and }not (TestDocumentationExamples and test_image_with_metadata)" +k="${k-}${k+ and }not (TestDocumentationExamples and test_multiple_rois)" +k="${k-}${k+ and }not (TestDocumentationExamples and test_single_roi)" + +%pytest -k "${k-}" %files -n python3-nixio -f %{pyproject_files} %{_bindir}/nixio diff --git a/sources b/sources index ef0608e..96c2c29 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (nixpy-1.5.3.tar.gz) = 1b3fd6bb638797a90a2e899d9ae3663a6a0ee3dfc5fe8c6c0806ed5ac2a34ef54771cdb1a715bf400020c6f5df7f3f348ee7129ed1e055381fa11aa5a8b6b218 +SHA512 (nixpy-1.5.4-filtered.tar.gz) = 7842e1643df0b234b8de7f8c1c30875ad70ed2681561ecf570ffff2849f60ea9510e7dba3b6544e8f507eed2583925d52d29c348cc49b2d5da0a22c686e3173d