Bug 2331339 - Review Request: python-nanobind - tiny and efficient C++/Python bindings
Summary: Review Request: python-nanobind - tiny and efficient C++/Python bindings
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Benson Muite
QA Contact: Fedora Extras Quality Assurance
URL: https://github.com/wjakob/nanobind
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2024-12-10 11:21 UTC by Konrad Kleine
Modified: 2024-12-24 01:46 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2024-12-20 21:02:45 UTC
Type: ---
Embargoed:
benson_muite: fedora-review+


Attachments (Terms of Use)
The .spec file difference from Copr build 8372194 to 8372204 (376 bytes, patch)
2024-12-10 11:43 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 8372204 to 8373817 (8.82 KB, patch)
2024-12-10 22:28 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 8373817 to 8373833 (664 bytes, patch)
2024-12-10 22:40 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 8373833 to 8382415 (7.44 KB, patch)
2024-12-12 09:19 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 8382415 to 8383606 (5.21 KB, patch)
2024-12-12 11:21 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 8383606 to 8389236 (3.28 KB, patch)
2024-12-13 09:20 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 8389236 to 8390409 (4.26 KB, patch)
2024-12-13 16:22 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 8390409 to 8390477 (1.80 KB, patch)
2024-12-13 16:48 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 8390477 to 8390656 (8.28 KB, patch)
2024-12-13 18:37 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 8390656 to 8390685 (1.71 KB, patch)
2024-12-13 18:51 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 8390685 to 8390822 (1.77 KB, patch)
2024-12-13 19:55 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 8390822 to 8393094 (2.33 KB, patch)
2024-12-14 10:46 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 8393094 to 8422545 (970 bytes, patch)
2024-12-20 00:34 UTC, Fedora Review Service
no flags Details | Diff

Description Konrad Kleine 2024-12-10 11:21:10 UTC
Spec URL: https://github.com/kwk/python-nanobind/blob/main/python-nanobind.spec
SRPM URL: https://kkleine.fedorapeople.org/python-nanobind-2.4.0-1.fc42.src.rpm
Description: nanobind is a small binding library that exposes C++ types in Python and vice versa. It is reminiscent of Boost.Python and pybind11 and uses near-identical syntax. In contrast to these existing tools, nanobind is more efficient: bindings compile in a shorter amount of time, produce smaller binaries, and have better runtime performance.
Fedora Account System Username: kkleine

Comment 1 Fedora Review Service 2024-12-10 11:24:55 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8372194
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2331339-python-nanobind/fedora-rawhide-x86_64/08372194-python-nanobind/fedora-review/review.txt

Found issues:

- python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/ext/robin_map/include/tsl/robin_growth_policy.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/ext/robin_map/include/tsl/robin_hash.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/ext/robin_map/include/tsl/robin_map.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/eigen/dense.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/eigen/sparse.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/eval.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/intrusive/counter.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/intrusive/ref.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/make_iterator.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nanobind.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_accessor.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_attr.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_call.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_cast.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_class.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_defs.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_descr.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_enums.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_error.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_func.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_lib.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_misc.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_python.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_traits.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_tuple.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_types.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/ndarray.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/operators.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/array.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/bind_map.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/bind_vector.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/chrono.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/complex.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/detail/chrono.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/detail/nb_array.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/detail/nb_dict.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/detail/nb_list.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/detail/nb_optional.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/detail/nb_set.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/detail/traits.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/filesystem.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/function.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/list.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/map.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/optional.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/pair.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/set.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/shared_ptr.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/string.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/string_view.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/tuple.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/unique_ptr.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/unordered_map.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/unordered_set.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/variant.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/vector.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/wstring.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/trampoline.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/typing.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/src/buffer.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/src/hash.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/src/nb_internals.h 
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages
- Not a valid SPDX expression 'BSD'. It seems that you are using the old Fedora license abbreviations. Try `license-fedora2spdx' for converting it to SPDX.
  Read more: https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_1

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 3 Konrad Kleine 2024-12-10 11:39:19 UTC
Fixed the license

Spec URL: https://github.com/kwk/python-nanobind/blob/main/python-nanobind.spec
SRPM URL: https://kkleine.fedorapeople.org/python-nanobind-2.4.0-1.fc42.src.rpm
[fedora-review-service-build]

Comment 4 Fedora Review Service 2024-12-10 11:43:16 UTC
Created attachment 2061847 [details]
The .spec file difference from Copr build 8372194 to 8372204

Comment 5 Fedora Review Service 2024-12-10 11:43:18 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8372204
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2331339-python-nanobind/fedora-rawhide-x86_64/08372204-python-nanobind/fedora-review/review.txt

Found issues:

- python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/ext/robin_map/include/tsl/robin_growth_policy.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/ext/robin_map/include/tsl/robin_hash.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/ext/robin_map/include/tsl/robin_map.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/eigen/dense.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/eigen/sparse.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/eval.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/intrusive/counter.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/intrusive/ref.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/make_iterator.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nanobind.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_accessor.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_attr.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_call.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_cast.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_class.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_defs.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_descr.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_enums.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_error.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_func.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_lib.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_misc.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_python.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_traits.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_tuple.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/nb_types.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/ndarray.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/operators.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/array.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/bind_map.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/bind_vector.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/chrono.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/complex.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/detail/chrono.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/detail/nb_array.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/detail/nb_dict.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/detail/nb_list.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/detail/nb_optional.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/detail/nb_set.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/detail/traits.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/filesystem.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/function.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/list.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/map.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/optional.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/pair.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/set.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/shared_ptr.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/string.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/string_view.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/tuple.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/unique_ptr.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/unordered_map.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/unordered_set.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/variant.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/vector.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/stl/wstring.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/trampoline.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/include/nanobind/typing.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/src/buffer.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/src/hash.h python3-nanobind : /usr/lib/python3.13/site-packages/nanobind/src/nb_internals.h 
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 6 Konrad Kleine 2024-12-10 22:21:51 UTC
Changes:
- CMake build
- Testing with pytest
- Added -devel subpackage
- Added -ext-devel package (because of different license)

Spec URL: https://github.com/kwk/python-nanobind/blob/main/python-nanobind.spec
SRPM URL: https://kkleine.fedorapeople.org/python-nanobind-2.4.0-1.fc42.src.rpm
[fedora-review-service-build]

Comment 7 Fedora Review Service 2024-12-10 22:21:56 UTC
There seems to be some problem with the following file.
SRPM URL: https://kkleine.fedorapeople.org/python-nanobind-2.4.0-1.fc42.src.rpm
Fetching it results in a 404 Not Found error.
Please make sure the URL is correct and publicly available.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 8 Konrad Kleine 2024-12-10 22:22:48 UTC
Changes:
- CMake build
- Testing with pytest
- Added -devel subpackage
- Added -ext-devel package (because of different license)

Spec URL: https://github.com/kwk/python-nanobind/blob/main/python-nanobind.spec
SRPM URL: https://kkleine.fedorapeople.org/python-nanobind-2.4.0-1.fc40.src.rpm
[fedora-review-service-build]

Comment 9 Fedora Review Service 2024-12-10 22:28:32 UTC
Created attachment 2061976 [details]
The .spec file difference from Copr build 8372204 to 8373817

Comment 10 Fedora Review Service 2024-12-10 22:28:35 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8373817
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2331339-python-nanobind/fedora-rawhide-x86_64/08373817-python-nanobind/fedora-review/review.txt

Found issues:

- python3-pytest7 is deprecated, you must not depend on it.
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/deprecating-packages/

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 11 Konrad Kleine 2024-12-10 22:34:40 UTC
Changes:
- BuildRequires:  python%{python3_pkgversion}-pytest

Spec URL: https://github.com/kwk/python-nanobind/blob/main/python-nanobind.spec
SRPM URL: https://kkleine.fedorapeople.org/python-nanobind-2.4.0-1.fc40.src.rpm
[fedora-review-service-build]

Comment 12 Fedora Review Service 2024-12-10 22:40:18 UTC
Created attachment 2061978 [details]
The .spec file difference from Copr build 8373817 to 8373833

Comment 13 Fedora Review Service 2024-12-10 22:40:20 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8373833
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2331339-python-nanobind/fedora-rawhide-x86_64/08373833-python-nanobind/fedora-review/review.txt

Found issues:

- python3-pytest7 is deprecated, you must not depend on it.
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/deprecating-packages/

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 15 Benson Muite 2024-12-11 04:06:04 UTC
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


Issues:
=======
- Package must not depend on deprecated() packages.
  Note: python3-pytest7 is deprecated, you must not depend on it.
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/deprecating-packages/


===== MUST items =====

C/C++:
[x]: Header files in -devel subpackage, if present.

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.
[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "BSD 3-Clause License", "MIT License",
     "*No copyright* MIT License". 200 files have unknown license. Detailed
     output of licensecheck in
     /home/FedoraPackaging/reviews/python-nanobind/2331339-python-
     nanobind/licensecheck.txt
[ ]: License file installed when any subpackage combination is installed.
[x]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/lib/python3.13,
     /usr/lib/python3.13/site-packages
[ ]: 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.
[ ]: Development files must be in a -devel package
[ ]: 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.
[ ]: Package does not generate any conflict.
[ ]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[ ]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[ ]: Package is not known to require an ExcludeArch tag.
[ ]: 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]: The License field must be a valid SPDX expression.
[x]: Package requires other packages for directories it uses.
[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]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 0 bytes in 0 files.
[x]: Packages must not store files under /srv, /opt or /usr/local

Python:
[-]: Python eggs must not download any dependencies during the build
     process.
[-]: A package which is used by another package via an egg interface should
     provide egg info.
[ ]: 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).
[-]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in
     python3-nanobind
[ ]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[ ]: 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:
[!]: Spec file according to URL is the same as in SRPM.
     Note: Spec file as given by url is not the same as in SRPM (see
     attached diff).
     See: (this test has no URL)
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).


Rpmlint
-------
Checking: python3-nanobind-2.4.0-1.fc42.noarch.rpm
          python3-nanobind-devel-2.4.0-1.fc42.noarch.rpm
          python3-nanobind-ext-devel-2.4.0-1.fc42.noarch.rpm
          python-nanobind-2.4.0-1.fc42.src.rpm
====================================== rpmlint session starts ======================================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.12/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmph62505bk')]
checks: 32, packages: 4

python-nanobind.src: W: summary-not-capitalized nanobind: tiny and efficient C++/Python bindings
python3-nanobind.noarch: W: summary-not-capitalized nanobind: tiny and efficient C++/Python bindings
python3-nanobind.noarch: W: python-bytecode-without-source /usr/lib/python3.13/site-packages/nanobind/__pycache__/stubgen.cpython-313.opt-1.pyc
python3-nanobind.noarch: W: python-bytecode-without-source /usr/lib/python3.13/site-packages/nanobind/__pycache__/stubgen.cpython-313.pyc
python3-nanobind-devel.noarch: E: non-executable-script /usr/lib/python3.13/site-packages/nanobind/stubgen.py 644 /usr/bin/env python3
python3-nanobind.noarch: W: no-documentation
python3-nanobind-devel.noarch: W: no-documentation
python3-nanobind-ext-devel.noarch: W: no-documentation
python3-nanobind-devel.noarch: W: description-shorter-than-summary
 4 packages and 0 specfiles checked; 1 errors, 8 warnings, 17 filtered, 1 badness; has taken 6.3 s =




Rpmlint (installed packages)
----------------------------
============================ rpmlint session starts ============================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.13/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 32, packages: 3

python3-nanobind.noarch: W: summary-not-capitalized nanobind: tiny and efficient C++/Python bindings
python3-nanobind.noarch: W: python-bytecode-without-source /usr/lib/python3.13/site-packages/nanobind/__pycache__/stubgen.cpython-313.opt-1.pyc
python3-nanobind.noarch: W: python-bytecode-without-source /usr/lib/python3.13/site-packages/nanobind/__pycache__/stubgen.cpython-313.pyc
python3-nanobind-devel.noarch: E: non-executable-script /usr/lib/python3.13/site-packages/nanobind/stubgen.py 644 /usr/bin/env python3
python3-nanobind-devel.noarch: W: no-documentation
python3-nanobind-ext-devel.noarch: W: no-documentation
python3-nanobind.noarch: W: no-documentation
python3-nanobind-devel.noarch: W: description-shorter-than-summary
 3 packages and 0 specfiles checked; 1 errors, 7 warnings, 13 filtered, 1 badness; has taken 4.9 s 



Source checksums
----------------
https://files.pythonhosted.org/packages/source/n/nanobind/nanobind-2.4.0.tar.gz :
  CHECKSUM(SHA256) this package     : a0392dee5f58881085b2ac8bfe8e53f74285aa4868b1472bfaf76cfb414e1c96
  CHECKSUM(SHA256) upstream package : a0392dee5f58881085b2ac8bfe8e53f74285aa4868b1472bfaf76cfb414e1c96


Requires
--------
python3-nanobind (rpmlib, GLIBC filtered):
    python(abi)

python3-nanobind-devel (rpmlib, GLIBC filtered):
    python(abi)
    python-nanobind
    python3-nanobind-ext-devel

python3-nanobind-ext-devel (rpmlib, GLIBC filtered):
    python-nanobind



Provides
--------
python3-nanobind:
    python-nanobind
    python3-nanobind
    python3.13-nanobind
    python3.13dist(nanobind)
    python3dist(nanobind)

python3-nanobind-devel:
    python-nanobind-devel
    python3-nanobind-devel
    python3.13-nanobind-devel

python3-nanobind-ext-devel:
    python-nanobind-ext-devel
    python3-nanobind-ext-devel
    python3.13-nanobind-ext-devel



Diff spec file in url and in SRPM
---------------------------------
--- /home/FedoraPackaging/reviews/python-nanobind/2331339-python-nanobind/srpm/python-nanobind.spec 2024-12-11 05:50:18.403821255 +0300
+++ /home/FedoraPackaging/reviews/python-nanobind/2331339-python-nanobind/srpm-unpacked/python-nanobind.spec        2024-12-10 03:00:00.000000000 +0300
@@ -1,2 +1,12 @@
+## START: Set by rpmautospec
+## (rpmautospec version 0.7.2)
+## RPMAUTOSPEC: autorelease, autochangelog
+%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
+    release_number = 1;
+    base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
+    print(release_number + base_release_number - 1);
+}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
+## END: Set by rpmautospec
+
 # We are building with clang for faster/lower memory LTO builds.
 # See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_compiler_macros
@@ -198,3 +208,6 @@
 
 %changelog
-%autochangelog
\ No newline at end of file
+## START: Generated by rpmautospec
+* Tue Dec 10 2024 Konrad Kleine <kkleine> - 2.4.0-1
+- First release of nanobind 2.4.0
+## END: Generated by rpmautospec


Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24
Command line :/usr/bin/fedora-review -b 2331339
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, Python, Shell-api
Disabled plugins: Java, Perl, Ocaml, C/C++, fonts, SugarActivity, PHP, R, Haskell
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH


Comments:
a) License should be
BSD-3-Clause AND MIT
b) Please add a license breakdown in the spec file, see:
https://download.copr.fedorainfracloud.org/results/%40fedora-review/fedora-review-2331339-python-nanobind/fedora-rawhide-x86_64/08373833-python-nanobind/fedora-review/licensecheck.txt
c)
python3-nanobind.noarch: W: summary-not-capitalized nanobind: tiny and efficient C++/Python bindings

d)
python3-nanobind-devel.noarch: E: non-executable-script /usr/lib/python3.13/site-packages/nanobind/stubgen.py 644 /usr/bin/env python3
remove the shebang
e) Can documentation be built?

Comment 16 Konrad Kleine 2024-12-12 09:14:38 UTC
Thank you Benson Muite for your review!

Changes addressing the comments:
- a) License is now "BSD-3-Clause AND MIT" for the main python-nanobind package.
- b) Each sub-package now specifies which license it uses.
- c) Fixed: python3-nanobind.noarch: W: summary-not-capitalized nanobind: tiny and efficient C++/Python bindings
- d) Fixed by installing with executable bit: python3-nanobind-devel.noarch: E: non-executable-script /usr/lib/python3.13/site-packages/nanobind/stubgen.py 644 /usr/bin/env python3
remove the shebang
- e) The documentation is available online (https://nanobind.readthedocs.io/) and I don't think it makes sense to include HTML documentation. For LLVM we recently removed the HTML documentation.

Other changes:
- Instead of bundling the robin_map git submodule I've recreated the necessary structure from the "robin-map-devel" package which we already ship in Fedora. This was needed because the CMake files expect the directory to exist. The resulting sub-package "python3-nanobind-robin-map-devel" contains a license (MIT in this case) and just links to files from the robin-map-devel package on which it depends.
- Tests are now being run and we compile the project using cmake.
- The Makefile assumes f41 now.
- f41 is the minimal version because "python3-scikit-build-core" is required in version >= 0.10 which wasn't met on f40 for example. Also nanobind explicitly requires "robin-map-devel" > 1.3.0 and on f40 we still ship 1.2.2

Spec URL: https://raw.githubusercontent.com/kwk/python-nanobind/d27a54b888d9acfdf04a309c2d87c408f384b6c6/python-nanobind.spec
SRPM URL: https://kkleine.fedorapeople.org/python-nanobind-2.4.0-1.fc41.src.rpm

Comment 17 Fedora Review Service 2024-12-12 09:19:16 UTC
Created attachment 2062139 [details]
The .spec file difference from Copr build 8373833 to 8382415

Comment 18 Fedora Review Service 2024-12-12 09:19:18 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8382415
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2331339-python-nanobind/fedora-rawhide-x86_64/08382415-python-nanobind/fedora-review/review.txt

Found issues:

- python3-pytest7 is deprecated, you must not depend on it.
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/deprecating-packages/

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 19 Konrad Kleine 2024-12-12 11:14:54 UTC
Changes:
- Vendored robin_map because nanobind requires an explicit version that wasn't available on fedora 40.
- Reverted https://github.com/wjakob/nanobind/pull/692/files to make nanobind work on fedora 40.
- Filed https://github.com/wjakob/nanobind/pull/815 to properly list all interface source files from the vendored robin_map in the upstream project. This patch is applied downstream to the 2.4.0 version.

Spec URL: https://raw.githubusercontent.com/kwk/python-nanobind/35229f9e0817b1c4396649822125155a1c028f34/python-nanobind.spec
SRPM URL: https://kkleine.fedorapeople.org/python-nanobind-2.4.0-2.fc41.src.rpm

Comment 20 Fedora Review Service 2024-12-12 11:21:40 UTC
Created attachment 2062154 [details]
The .spec file difference from Copr build 8382415 to 8383606

Comment 21 Fedora Review Service 2024-12-12 11:21:42 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8383606
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2331339-python-nanobind/fedora-rawhide-x86_64/08383606-python-nanobind/fedora-review/review.txt

Found issues:

- python3-pytest7 is deprecated, you must not depend on it.
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/deprecating-packages/

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 22 Konrad Kleine 2024-12-12 14:27:30 UTC
I don't understand where python3-pytest7 is coming from, so I don't know how to fix: "python3-pytest7 is deprecated, you must not depend on it." Is this a false positive?

Comment 24 Fedora Review Service 2024-12-13 09:20:24 UTC
Created attachment 2062257 [details]
The .spec file difference from Copr build 8383606 to 8389236

Comment 25 Fedora Review Service 2024-12-13 09:20:27 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8389236
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2331339-python-nanobind/fedora-rawhide-x86_64/08389236-python-nanobind/fedora-review/review.txt

Please take a look if any issues were found.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 26 Konrad Kleine 2024-12-13 09:39:03 UTC
@benson_muite can you please have another look at this? I think I've addressed all issues.

Comment 27 Benson Muite 2024-12-13 14:53:57 UTC
Thanks for the updates. Is it possible to only use vendoring of robin-map on Fedora 40?

python3-pytest7 is a false positive.

Will finish checking over next few days,

Comment 28 Konrad Kleine 2024-12-13 16:19:57 UTC
@benson_muite 

> Is it possible to only use vendoring of robin-map on Fedora 40?

It actually is possible to live without vendoring. I must have done something wrong when I first tried without it. When I started packaging I was still on F40 and now on F41 it works. Therefore we don't need any vendoring but F40 is not supported, which is fine for us.

Spec URL: https://raw.githubusercontent.com/kwk/python-nanobind/05a4ea813bc85f2f1b8378fe4e590335831128f3/python-nanobind.spec
SRPM URL: https://kkleine.fedorapeople.org/python-nanobind-2.4.0-2.src.rpm

Comment 29 Fedora Review Service 2024-12-13 16:22:53 UTC
Created attachment 2062301 [details]
The .spec file difference from Copr build 8389236 to 8390409

Comment 30 Fedora Review Service 2024-12-13 16:22:55 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8390409
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2331339-python-nanobind/fedora-rawhide-x86_64/08390409-python-nanobind/fedora-review/review.txt

Please take a look if any issues were found.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 32 Fedora Review Service 2024-12-13 16:48:04 UTC
Created attachment 2062302 [details]
The .spec file difference from Copr build 8390409 to 8390477

Comment 33 Fedora Review Service 2024-12-13 16:48:06 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8390477
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2331339-python-nanobind/fedora-rawhide-x86_64/08390477-python-nanobind/fedora-review/review.txt

Please take a look if any issues were found.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 34 Konrad Kleine 2024-12-13 18:31:31 UTC
- Removed manual cmake calls and used proper `%pyproject_` macros.
- Removed all patches.
- Kudos to @mhroncok for helping!

Spec URL: https://raw.githubusercontent.com/kwk/python-nanobind/2d0efdc39dce5be7262dd5f74bc6a944a153a013/python-nanobind.spec
SRPM URL: https://kkleine.fedorapeople.org/python-nanobind-2.4.0-4.fc41.src.rpm

Comment 35 Fedora Review Service 2024-12-13 18:37:42 UTC
Created attachment 2062316 [details]
The .spec file difference from Copr build 8390477 to 8390656

Comment 36 Fedora Review Service 2024-12-13 18:37:45 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8390656
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2331339-python-nanobind/fedora-rawhide-x86_64/08390656-python-nanobind/fedora-review/review.txt

Found issues:

- python3-pytest7 is deprecated, you must not depend on it.
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/deprecating-packages/

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 38 Fedora Review Service 2024-12-13 18:51:26 UTC
Created attachment 2062319 [details]
The .spec file difference from Copr build 8390656 to 8390685

Comment 39 Fedora Review Service 2024-12-13 18:51:28 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8390685
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2331339-python-nanobind/fedora-rawhide-x86_64/08390685-python-nanobind/fedora-review/review.txt

Found issues:

- python3-pytest7 is deprecated, you must not depend on it.
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/deprecating-packages/

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 40 Konrad Kleine 2024-12-13 19:53:19 UTC
- Make main package arched and sub-packages noarch
- Also remove License tag from sub-packages

Spec URL: https://raw.githubusercontent.com/kwk/python-nanobind/4e995d993eeb5f86d58d77bcb073730c88506eac/python-nanobind.spec
SRPM URL: https://kkleine.fedorapeople.org/python-nanobind-2.4.0-6.fc41.src.rpm

Comment 41 Fedora Review Service 2024-12-13 19:55:54 UTC
Created attachment 2062337 [details]
The .spec file difference from Copr build 8390685 to 8390822

Comment 42 Fedora Review Service 2024-12-13 19:55:56 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8390822
(failed)

Build log:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2331339-python-nanobind/fedora-rawhide-x86_64/08390822-python-nanobind/builder-live.log.gz

Please make sure the package builds successfully at least for Fedora Rawhide.

- If the build failed for unrelated reasons (e.g. temporary network
  unavailability), please ignore it.
- If the build failed because of missing BuildRequires, please make sure they
  are listed in the "Depends On" field


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 43 Konrad Kleine 2024-12-14 10:40:40 UTC
- Requirement and %%autosetup cleanup
- Fix: Empty %files file ... debugsourcefiles.list

Spec URL: https://raw.githubusercontent.com/kwk/python-nanobind/e9e0e9041dea84baeffca91b49569396e92cccaa/python-nanobind.spec
SRPM URL: https://kkleine.fedorapeople.org/python-nanobind-2.4.0-8.fc41.src.rpm

Comment 44 Fedora Review Service 2024-12-14 10:46:56 UTC
Created attachment 2062425 [details]
The .spec file difference from Copr build 8390822 to 8393094

Comment 45 Fedora Review Service 2024-12-14 10:46:58 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8393094
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2331339-python-nanobind/fedora-rawhide-x86_64/08393094-python-nanobind/fedora-review/review.txt

Found issues:

- python3-pytest7 is deprecated, you must not depend on it.
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/deprecating-packages/

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 46 Konrad Kleine 2024-12-17 22:32:18 UTC
This package is in a good shape to be reviewed after it went through several iterations with a Python packaging expert.

Comment 47 Benson Muite 2024-12-18 03:58:25 UTC
Thanks for the updates. Checking.

Comment 48 Benson Muite 2024-12-18 18:28:25 UTC
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


Issues:
=======
- Package contains BR: python2-devel or python3-devel
- Package does not contain duplicates in %files.
  Note: warning: File listed twice: /usr/lib/python3.13/site-
  packages/nanobind-2.4.0.dist-info/licenses/LICENSE
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_duplicate_files
- Package must not depend on deprecated() packages.
  Note: python3-pytest7 is deprecated, you must not depend on it.
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/deprecating-packages/


===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[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)
[x]: Package contains no static executables.
[x]: Rpath absent or only used for internal libs.

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.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "BSD 3-Clause License". 191 files have
     unknown license. Detailed output of licensecheck in
     /home/FedoraPackaging/reviews/python-nanobind/2331339-python-
     nanobind/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/lib/python3.13/site-
     packages, /usr/lib/python3.13
[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.
[!]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Package is not known to require an ExcludeArch tag.
[ ]: 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]: The License field must be a valid SPDX expression.
[x]: Package requires other packages for directories it uses.
[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]: 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]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 0 bytes in 0 files.
[x]: Packages must not store files under /srv, /opt or /usr/local

Python:
[-]: Python eggs must not download any dependencies during the build
     process.
[-]: A package which is used by another package via an egg interface should
     provide egg info.
[ ]: Package meets the Packaging Guidelines::Python
[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
     python3-nanobind , python3-nanobind-devel
[ ]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[ ]: 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]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: python3-nanobind-2.4.0-8.fc42.noarch.rpm
          python3-nanobind-devel-2.4.0-8.fc42.noarch.rpm
          python-nanobind-2.4.0-8.fc42.src.rpm
========================================== rpmlint session starts =========================================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.12/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmp8aq4sab0')]
checks: 32, packages: 3

python3-nanobind-devel.noarch: E: non-executable-script /usr/lib/python3.13/site-packages/nanobind/stubgen.py 644 /usr/bin/env python3
python3-nanobind.noarch: W: no-documentation
python3-nanobind-devel.noarch: W: no-documentation
==== 3 packages and 0 specfiles checked; 1 errors, 2 warnings, 11 filtered, 1 badness; has taken 4.1 s ====




Rpmlint (installed packages)
----------------------------
============================ rpmlint session starts ============================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.13/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 32, packages: 2

python3-nanobind-devel.noarch: E: non-executable-script /usr/lib/python3.13/site-packages/nanobind/stubgen.py 644 /usr/bin/env python3
python3-nanobind.noarch: W: no-documentation
python3-nanobind-devel.noarch: W: no-documentation
 2 packages and 0 specfiles checked; 1 errors, 2 warnings, 7 filtered, 1 badness; has taken 1.4 s 



Source checksums
----------------
https://github.com/wjakob/nanobind/archive/v2.4.0/python-nanobind-2.4.0.tar.gz :
  CHECKSUM(SHA256) this package     : bb35deaed7efac5029ed1e33880a415638352f757d49207a8e6013fefb6c49a7
  CHECKSUM(SHA256) upstream package : bb35deaed7efac5029ed1e33880a415638352f757d49207a8e6013fefb6c49a7


Requires
--------
python3-nanobind (rpmlib, GLIBC filtered):
    python(abi)

python3-nanobind-devel (rpmlib, GLIBC filtered):
    python(abi)
    python3-nanobind
    robin-map-devel



Provides
--------
python3-nanobind:
    python-nanobind
    python3-nanobind
    python3.13-nanobind
    python3.13dist(nanobind)
    python3dist(nanobind)

python3-nanobind-devel:
    python-nanobind-devel
    python3-nanobind-devel
    python3.13-nanobind-devel



Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24
Command line :/usr/bin/fedora-review -b 2331339
Buildroot used: fedora-rawhide-x86_64
Active plugins: C/C++, Python, Generic, Shell-api
Disabled plugins: Haskell, Perl, PHP, R, SugarActivity, Ocaml, Java, fonts
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH

Comments:
a) Please add
BuildRequires:  python3-devel
b) Ignore License duplication warning as only one license has appropriate metadata
c) Ignore pytest warning, false positive
d) python3-nanobind-devel.noarch: E: non-executable-script /usr/lib/python3.13/site-packages/nanobind/stubgen.py 644 /usr/bin/env python3
Please remove shebang

Comment 49 Konrad Kleine 2024-12-19 07:43:22 UTC
Thank you for the review. I've addressed your comments by adding python3-devel and fixing the shebang for src/stubgen.py before it gets installed into /usr/lib/python3.13/site-packages/nanobind/stubgen.py

Spec URL: https://raw.githubusercontent.com/kwk/python-nanobind/fe1e8dc62c11408ae757791e696d3c58fe7434a6/python-nanobind.spec
SRPM URL: https://kkleine.fedorapeople.org/python-nanobind-2.4.0-9.fc41.src.rpm

Comment 50 Benson Muite 2024-12-19 16:29:42 UTC
[fedora-review-service-build]

Comment 51 Fedora Review Service 2024-12-20 00:34:40 UTC
Created attachment 2063302 [details]
The .spec file difference from Copr build 8393094 to 8422545

Comment 52 Fedora Review Service 2024-12-20 00:34:42 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8422545
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2331339-python-nanobind/fedora-rawhide-x86_64/08422545-python-nanobind/fedora-review/review.txt

Found issues:

- python3-pytest7 is deprecated, you must not depend on it.
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/deprecating-packages/

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 53 Fedora Review Service 2024-12-20 00:46:06 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8422667
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2331339-python-nanobind/fedora-rawhide-x86_64/08422667-python-nanobind/fedora-review/review.txt

Found issues:

- python3-pytest7 is deprecated, you must not depend on it.
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/deprecating-packages/

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 54 Benson Muite 2024-12-20 10:31:34 UTC
Approved. May want to use %autorelease and %autochangelog macros.

Review of:
https://bugzilla.redhat.com/show_bug.cgi?id=2333484
would be appreciated if time allows.

Comment 55 Konrad Kleine 2024-12-20 13:15:08 UTC
I don't want to use %autorelease and %autochangelog macros because they caused problems with packit which we may want to use in the future.

@benson_muite I wanted to request a dist git branch but I got this error:

   $ fedpkg request-repo python-nanobind 2331339
   Could not execute request_repo: The Bugzilla bug is not approved yet


Do we need to do something except from writing "Approved" in a comment?

I've given https://bugzilla.redhat.com/show_bug.cgi?id=2333484 just a quick look yet. I'm not sure there's time for more before the end of year break.

Comment 56 Benson Muite 2024-12-20 16:39:10 UTC
Sorry, forgot to change status.

Comment 57 Fedora Admin user for bugzilla script actions 2024-12-20 20:38:15 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/python-nanobind

Comment 58 Fedora Update System 2024-12-20 21:09:45 UTC
FEDORA-2024-57e0e550fb (python-nanobind-2.4.0-9.fc41) has been submitted as an update to Fedora 41.
https://bodhi.fedoraproject.org/updates/FEDORA-2024-57e0e550fb

Comment 59 Fedora Update System 2024-12-21 01:45:05 UTC
FEDORA-2024-57e0e550fb has been pushed to the Fedora 41 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-57e0e550fb \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-57e0e550fb

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 60 Fedora Update System 2024-12-24 01:46:51 UTC
FEDORA-2024-57e0e550fb (python-nanobind-2.4.0-9.fc41) has been pushed to the Fedora 41 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.