Spec URL: https://ankursinha.fedorapeople.org/python-pynn/python-pynn.spec SRPM URL: https://ankursinha.fedorapeople.org/python-pynn/python-pynn-0.7.5-1.fc22.src.rpm Description: A Python package for simulator-independent specification of neuronal network models In other words, you can write the code for a model once, using the PyNN API and the Python programming language, and then run it without modification on any simulator that PyNN supports (currently NEURON, NEST, PCSIM and Brian). The API has two parts, a low-level, procedural API (functions create(), connect(), set(), record(), record_v()), and a high-level, object-oriented API (classes Population and Projection, which have methods like set(), record(), setWeights(), etc.). The low-level API is good for small networks, and perhaps gives more flexibility. The high-level API is good for hiding the details and the book-keeping, allowing you to concentrate on the overall structure of your model. The other thing that is required to write a model once and run it on multiple simulators is standard cell and synapse models. PyNN translates standard cell-model names and parameter names into simulator-specific names, e.g. standard model IF_curr_alpha is iaf_neuron in NEST and StandardIF in NEURON, while SpikeSourcePoisson is a poisson_generator in NEST and a NetStim in NEURON. Even if you don't wish to run simulations on multiple simulators, you may benefit from writing your simulation code using PyNN's powerful, high-level interface. In this case, you can use any neuron or synapse model supported by your simulator, and are not restricted to the standard models. PyNN is a work in progress, but is already being used for several large-scale simulation projects. Fedora Account System Username: ankursinha
Updated to the latest upstream commit - it has py3 support. Also corrected some left over py2 to 3 porting and opened a pull request upstream: https://ankursinha.fedorapeople.org/python-pynn/python-pynn.spec https://ankursinha.fedorapeople.org/python-pynn/python-pynn-0.8-0.1.gitc435db1.fc21.src.rpm
This isn't very useful until we have NEURON, NEST and BRIAN packaged. Marking as not ready.
Do you still need this reviewed?
It requires neuron, more work on NEST (it needs to be built with libneurosim which requires upstream to do a bit of work), and brian (which is packaged). Since neuron and NEST need work, I don't want to make pynn available to users via Fedora yet. So, it isn't ready for review yet.
This is an automatic check from review-stats script. This review request ticket hasn't been updated for some time. We're sorry it is taking so long. If you're still interested in packaging this software into Fedora repositories, please respond to this comment clearing the NEEDINFO flag. You may want to update the specfile and the src.rpm to the latest version available and to propose a review swap on Fedora devel mailing list to increase chances to have your package reviewed. If this is your first package and you need a sponsor, you may want to post some informal reviews. Read more at https://fedoraproject.org/wiki/How_to_get_sponsored_into_the_packager_group. Without any reply, this request will shortly be considered abandoned and will be closed. Thank you for your patience.
Hrm, well, it's marked "not ready". Perhaps that's case sensitive? The review is still valid.
This is now ready for review. The latest release supports the new versions of NEST and Brian2 that we already have in Fedora. Spec: https://ankursinha.fedorapeople.org/python-pynn/python-pynn.spec SRPM: https://ankursinha.fedorapeople.org/python-pynn/python-pynn-0.9.6-1.fc33.src.rpm Cheers, Ankur
nose is deprecated, plese don't use it.
Thanks. Unfortunately, that's what upstream uses at the moment. I'll file a ticket with them letting them know. https://github.com/NeuralEnsemble/PyNN/blob/master/ci/test_script.sh
I will take this review. Can you review a simple OCaml package for me (bug 1912655)?
Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated Issues: ======= - Package must not depend on deprecated() packages. Note: python3-nose is deprecated, you must not depend on it. See: https://docs.fedoraproject.org/en-US/packaging- guidelines/deprecating-packages/ - There are 2 BRs for neuron-devel - These warnings from the compiler should be looked into, as they may indicate code that does not behave as expected: x86_64/quantal_stp.c:324:21: warning: type of 'nrn_random_pick' does not match original declaration [-Wlto-type-mismatch] 324 | value = nrn_random_pick(_p_rng); | ^ x86_64/gif.c:397:8: note: return value type mismatch 397 | double nrn_random_pick(void* r); | ^ x86_64/gif.c:397:8: note: type 'double' should match type 'int' x86_64/gif.c:397:8: note: 'nrn_random_pick' was previously declared here x86_64/gif.c:397:8: note: code may be misoptimized unless '-fno-strict-aliasing' is used x86_64/quantal_stp.c:298:19: warning: type of 'nrn_random_arg' does not match original declaration [-Wlto-type-mismatch] 298 | *pv = nrn_random_arg(1); | ^ x86_64/gif.c:398:7: note: return value type mismatch 398 | void* nrn_random_arg(int argpos); | ^ x86_64/gif.c:398:7: note: 'nrn_random_arg' was previously declared here x86_64/gif.c:398:7: note: code may be misoptimized unless '-fno-strict-aliasing' is used - Likewise, this python warning may indicate an issue: /builddir/build/BUILD/PyNN-0.9.6/pyNN/recording/__init__.py:262: SyntaxWarning: "is not" with a literal. Did you mean "!="? if variables is not 'all': - Remove the unnecessary rpath from libnrnmech.so, or prevent it from being generated in the first place - Please review the private-shared-object-provides warnings from rpmlint and filter Provides if appropriate. - Something funny is going on in %{python3_sitearch}/pyNN/neuron/nmodl/x86_64. That directory contains libnrnmech.so, but also contains a .libs directory with another copy of libnrnmech.so, and an empty directory named x86_64. - The devel subpackage Requires on the main package should include %{?_isa}: Requires: python3-%{lower_name}%{?_isa} ===== MUST items ===== C/C++: [x]: Package does not contain kernel modules. [x]: Package contains no static executables. [!]: Rpath absent or only used for internal libs. Note: See rpmlint output [x]: Development (unversioned) .so files in -devel subpackage, if present. Note: Unversioned so-files in private %_libdir subdirectory (see attachment). Verify they are not in ld path. [x]: If your application is a C or C++ application you must list a BuildRequires against gcc, gcc-c++ or clang. [x]: Header files in -devel subpackage, if present. [x]: Package does not contain any libtool archives (.la) Generic: [x]: Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. [x]: License field in the package spec file matches the actual license. [x]: License file installed when any subpackage combination is installed. [x]: %build honors applicable compiler flags or justifies otherwise. [x]: Package contains no bundled libraries without FPC exception. [x]: Changelog in prescribed format. [x]: Sources contain only permissible code or content. [-]: Package contains desktop file if it is a GUI application. [x]: Development files must be in a -devel package [x]: Package uses nothing in %doc for runtime. [x]: Package consistently uses macros (instead of hard-coded directory names). [x]: Package is named according to the Package Naming Guidelines. [x]: Package does not generate any conflict. [x]: Package obeys FHS, except libexecdir and /usr/target. [-]: If the package is a rename of another package, proper Obsoletes and Provides are present. [x]: Requires correct, justified where necessary. [x]: Spec file is legible and written in American English. [-]: Package contains systemd file(s) if in need. [x]: Useful -debuginfo package or justification otherwise. [x]: Package is not known to require an ExcludeArch tag. [x]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 51200 bytes in 3 files. [x]: Package complies to the Packaging Guidelines [x]: Package successfully compiles and builds into binary rpms on at least one supported primary architecture. [x]: Package installs properly. [x]: Rpmlint is run on all rpms the build produces. Note: There are rpmlint messages (see attachment). [x]: If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package is included in %license. [x]: Package requires other packages for directories it uses. [x]: Package must own all directories that it creates. [x]: Package does not own files or directories owned by other packages. [x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT [x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. [x]: Macros in Summary, %description expandable at SRPM build time. [x]: Dist tag is present. [x]: Package does not contain duplicates in %files. [x]: Permissions on files are set properly. [x]: Package use %makeinstall only when make install DESTDIR=... doesn't work. [x]: Package is named using only allowed ASCII characters. [x]: Package does not use a name that already exists. [x]: Package is not relocatable. [x]: Sources used to build the package match the upstream source, as provided in the spec URL. [x]: Spec file name must match the spec package %{name}, in the format %{name}.spec. [x]: File names are valid UTF-8. [x]: Packages must not store files under /srv, /opt or /usr/local Python: [x]: Python eggs must not download any dependencies during the build process. [x]: A package which is used by another package via an egg interface should provide egg info. [x]: Package meets the Packaging Guidelines::Python [x]: Package contains BR: python2-devel or python3-devel [x]: Packages MUST NOT have dependencies (either build-time or runtime) on packages named with the unversioned python- prefix unless no properly versioned package exists. Dependencies on Python packages instead MUST use names beginning with python2- or python3- as appropriate. [x]: Python packages must not contain %{pythonX_site(lib|arch)}/* in %files [x]: Binary eggs must be removed in %prep ===== SHOULD items ===== Generic: [-]: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. [x]: Final provides and requires are sane (see attachments). [x]: Fully versioned dependency in subpackages if applicable. Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in python- pynn-devel , python3-pynn [?]: Package functions as described. [x]: Latest version is packaged. [x]: Package does not include license text files separate from upstream. [x]: Patches link to upstream bugs/comments/lists or are otherwise justified. [-]: Sources are verified with gpgverify first in %prep if upstream publishes signatures. Note: gpgverify is not used. [-]: Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [x]: Package should compile and build into binary rpms on all supported architectures. [x]: %check is present and all tests pass. [x]: Packages should try to preserve timestamps of original installed files. [x]: Reviewer should test that the package builds in mock. [x]: Buildroot is not present [x]: Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) [x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: Sources can be downloaded from URI in Source: tag [x]: SourceX is a working URL. [x]: Spec use %global instead of %define unless justified. ===== EXTRA items ===== Generic: [x]: Rpmlint is run on all installed packages. Note: There are rpmlint messages (see attachment). [x]: Large data in /usr/share should live in a noarch subpackage if package is arched. [x]: Spec file according to URL is the same as in SRPM. Rpmlint ------- Checking: python-pynn-devel-0.9.6-1.fc34.x86_64.rpm python3-pynn-0.9.6-1.fc34.x86_64.rpm python-pynn-doc-0.9.6-1.fc34.noarch.rpm python-pynn-debugsource-0.9.6-1.fc34.x86_64.rpm python-pynn-0.9.6-1.fc34.src.rpm python-pynn-devel.x86_64: W: spelling-error %description -l en_US neuromorphic -> anthropomorphic python-pynn-devel.x86_64: W: spelling-error %description -l en_US modelling -> modeling, model ling, model-ling python-pynn-devel.x86_64: W: no-documentation python3-pynn.x86_64: W: spelling-error %description -l en_US neuromorphic -> anthropomorphic python3-pynn.x86_64: W: spelling-error %description -l en_US modelling -> modeling, model ling, model-ling python3-pynn.x86_64: W: private-shared-object-provides /usr/lib64/python3.9/site-packages/pyNN/neuron/nmodl/x86_64/.libs/libnrnmech.so libnrnmech.so()(64bit) python3-pynn.x86_64: W: private-shared-object-provides /usr/lib64/python3.9/site-packages/pyNN/neuron/nmodl/x86_64/libnrnmech.so libnrnmech.so()(64bit) python3-pynn.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/python3.9/site-packages/pyNN/neuron/nmodl/x86_64/.libs/libnrnmech.so ['/usr/lib'] python3-pynn.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/python3.9/site-packages/pyNN/neuron/nmodl/x86_64/libnrnmech.so ['/usr/lib'] python3-pynn.x86_64: W: hidden-file-or-dir /usr/lib64/python3.9/site-packages/pyNN/neuron/nmodl/x86_64/.libs python3-pynn.x86_64: W: hidden-file-or-dir /usr/lib64/python3.9/site-packages/pyNN/neuron/nmodl/x86_64/.libs python-pynn-doc.noarch: W: description-shorter-than-summary python-pynn.src: W: spelling-error %description -l en_US neuromorphic -> anthropomorphic python-pynn.src: W: spelling-error %description -l en_US modelling -> modeling, model ling, model-ling 5 packages and 0 specfiles checked; 2 errors, 12 warnings. Rpmlint (installed packages) ---------------------------- python3-pynn.x86_64: W: spelling-error %description -l en_US neuromorphic -> anthropomorphic python3-pynn.x86_64: W: spelling-error %description -l en_US modelling -> modeling, model ling, model-ling python3-pynn.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/python3.9/site-packages/pyNN/neuron/nmodl/x86_64/.libs/libnrnmech.so ['/usr/lib'] python3-pynn.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/python3.9/site-packages/pyNN/neuron/nmodl/x86_64/libnrnmech.so ['/usr/lib'] python3-pynn.x86_64: W: hidden-file-or-dir /usr/lib64/python3.9/site-packages/pyNN/neuron/nmodl/x86_64/.libs python3-pynn.x86_64: W: hidden-file-or-dir /usr/lib64/python3.9/site-packages/pyNN/neuron/nmodl/x86_64/.libs python-pynn-doc.noarch: W: description-shorter-than-summary python-pynn-devel.x86_64: W: spelling-error %description -l en_US neuromorphic -> anthropomorphic python-pynn-devel.x86_64: W: spelling-error %description -l en_US modelling -> modeling, model ling, model-ling python-pynn-devel.x86_64: W: no-documentation 4 packages and 0 specfiles checked; 2 errors, 8 warnings. Unversioned so-files -------------------- python3-pynn: /usr/lib64/nest/libpynn_extensions.so python3-pynn: /usr/lib64/nest/pynn_extensions.so python3-pynn: /usr/lib64/python3.9/site-packages/pyNN/neuron/nmodl/x86_64/.libs/libnrnmech.so python3-pynn: /usr/lib64/python3.9/site-packages/pyNN/neuron/nmodl/x86_64/libnrnmech.so Source checksums ---------------- https://files.pythonhosted.org/packages/source/P/PyNN/PyNN-0.9.6.tar.gz : CHECKSUM(SHA256) this package : d85226800e30bc1692d3f84485c3fa20b921c2ab55f1201d0a3bf23432e16cd2 CHECKSUM(SHA256) upstream package : d85226800e30bc1692d3f84485c3fa20b921c2ab55f1201d0a3bf23432e16cd2 Requires -------- python-pynn-devel (rpmlib, GLIBC filtered): python3-pynn python3-pynn (rpmlib, GLIBC filtered): /usr/bin/sh libc.so.6()(64bit) libconngen.so()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libgcc_s.so.1(GCC_3.3.1)(64bit) libgsl.so.25()(64bit) libgslcblas.so.0()(64bit) libltdl.so.7()(64bit) libm.so.6()(64bit) libncurses.so.6()(64bit) libnest.so()(64bit) libnestkernel.so()(64bit) libnestutil.so()(64bit) libneurosim.so.0()(64bit) libnrniv.so.0.0.0()(64bit) libpy3neurosim.so.0()(64bit) librandom.so()(64bit) libreadline.so.8()(64bit) libsli.so()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) libtinfo.so.6()(64bit) libtopology.so()(64bit) python(abi) python3.9dist(lazyarray) python3.9dist(neo) python3.9dist(numpy) python3.9dist(quantities) rtld(GNU_HASH) python-pynn-doc (rpmlib, GLIBC filtered): python-pynn-debugsource (rpmlib, GLIBC filtered): Provides -------- python-pynn-devel: python-pynn-devel python-pynn-devel(x86-64) python3-pynn: libnrnmech.so()(64bit) libpynn_extensions.so()(64bit) python-pynn python3-pynn python3-pynn(x86-64) python3.9-pynn python3.9dist(pynn) python3dist(pynn) python-pynn-doc: python-pynn-doc python-pynn-debugsource: python-pynn-debugsource python-pynn-debugsource(x86-64) Generated by fedora-review 0.7.6 (b083f91) last change: 2020-11-10 Command line :/usr/bin/fedora-review -b 1150105 -m fedora-rawhide-x86_64 Buildroot used: fedora-rawhide-x86_64 Active plugins: Generic, C/C++, Shell-api, Python Disabled plugins: Haskell, Ocaml, Ruby, PHP, fonts, SugarActivity, Java, R, Perl Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH
Thanks for the review Jerry. Apologies for the delay. Here are the updated Spec/SRPM files: Spec: https://ankursinha.fedorapeople.org/python-pynn/python-pynn.spec SRPM: https://ankursinha.fedorapeople.org/python-pynn/python-pynn-0.9.6-1.fc33.src.rpm Changelog: * Tue Feb 09 2021 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 0.9.6-1 - Remove duplicate neuron-devel BR - Add patch to correct python operator usage - Use arch dependent and version specific requirement on base package - Add comment about NEURON files - Filter out private libnrnmech from provides The rpath bit came from the NEURON package. I've fixed that and pushed updates too. So if you test this one for F32/F33, you'll have to ensure that the updates-testing repo is enabled for the build. I've submitted a PR for the python issue, which was already accepted: https://github.com/NeuralEnsemble/PyNN/pull/706 I've also filed a ticket for the compilation warnings: https://github.com/NeuralEnsemble/PyNN/issues/707 The x86_64 folder is NEURON specific. Mod files that are to be accessible in NEURON are compiled together to create a libnrnmech.so library, which is loaded into NEURON by a script called "special" (that calls `nrniv -dll $ARCH/.libs/libnrnmech.so`). And then, `.libs/libnrnmech.so` is a sym link to `../../$ARCH/libnrnmech.so`. I guess they could just use the libnrnmech.so file instead of the symlink, but this is how it is---probably because of some historical reasons. It also creates the empty x86_64 directory as you noticed: really not sure what that is about but I see it everywhere we compile mod files. I'll double check with colleagues that are running NEURON on other platforms to see if this one is necessary and also confirm with upstream. Cheers, Ankur
All of the MUST issues have been addressed (and the others are in process of being fixed), so this package is APPROVED.
(fedscm-admin): The Pagure repository was created at https://src.fedoraproject.org/rpms/python-pynn
FEDORA-2021-ab07b628cb has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2021-ab07b628cb
FEDORA-2021-ab07b628cb has been pushed to the Fedora 33 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf install --enablerepo=updates-testing --advisory=FEDORA-2021-ab07b628cb \*` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-ab07b628cb See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
FEDORA-2021-e6cdf1936a has been pushed to the Fedora 32 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf install --enablerepo=updates-testing --advisory=FEDORA-2021-e6cdf1936a \*` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-e6cdf1936a See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
FEDORA-2021-ab07b628cb has been pushed to the Fedora 33 stable repository. If problem still persists, please make note of it in this bug report.
FEDORA-2021-e6cdf1936a has been pushed to the Fedora 32 stable repository. If problem still persists, please make note of it in this bug report.