Bug 2382327 - Review Request: mass-prebuild - A tool to massively rebuild reverse dependencies
Summary: Review Request: mass-prebuild - A tool to massively rebuild reverse dependencies
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Miro Hrončok
QA Contact: Fedora Extras Quality Assurance
URL: https://gitlab.com/fedora/packager-to...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2025-07-21 12:47 UTC by Frédéric Bérat
Modified: 2025-09-24 15:20 UTC (History)
5 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2025-09-24 15:20:17 UTC
Type: ---
Embargoed:
mhroncok: fedora-review+


Attachments (Terms of Use)
The .spec file difference from Copr build 9551800 to 9589896 (1.13 KB, patch)
2025-09-22 14:39 UTC, Fedora Review Service
no flags Details | Diff

Description Frédéric Bérat 2025-07-21 12:47:54 UTC
Spec URL: https://gitlab.com/fberat/mass-prebuild-dist/-/raw/rawhide/mass-prebuild.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/fberat/mass-prebuild/fedora-rawhide-x86_64/09596344-mass-prebuild/mass-prebuild-1.6.1-1.fc44.src.rpm

Description: 
Mass prebuild is a tool originally build around COPR that enables user to verify that a package release will not break other packages prior to releasing it, by providing an interface to massively rebuild reverse dependencies.

Fedora Account System Username: fberat

Comment 1 Benson Muite 2025-07-21 14:41:02 UTC
Is it possible to follow the newer python packaging guidelines:
https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/

Comment 2 Frédéric Bérat 2025-07-22 09:22:37 UTC
@benson_muite Originally, I wanted to avoid managing multiple branches in my dedicated gitlab repository, and I couldn't follow the newer python packaging guidelines to support older systems.

Now, I probably can revise this position.

Comment 3 Ben Beasley 2025-07-26 12:32:05 UTC
(In reply to Benson Muite from comment #1)
> Is it possible to follow the newer python packaging guidelines:
> https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/

Note that the %py3_build/%py3_install macros were recently officially deprecated[1], which means you are not permitted to add a new dependency on them[2], so using the new guidelines is now a “MUST” for new packages.

[1] https://fedoraproject.org/wiki/Changes/DeprecateSetuppyMacros#Impacted_packages
[2] https://docs.fedoraproject.org/en-US/packaging-guidelines/deprecating-packages/#_consequences_of_a_package_being_deprecated

Comment 4 Frédéric Bérat 2025-08-05 16:33:25 UTC
I finally found some time to work on this, and I've updated the spec file (and dropped support for RHEL8).

https://copr.fedorainfracloud.org/coprs/fberat/mass-prebuild/build/9377908/

Comment 5 Miro Hrončok 2025-09-04 13:07:16 UTC
Please use raw links to spec+srpm, not to HTML pages with them. That allows automatic checks via Fedora Review. Thanks.



Spec file sanity:


> %global pyname mass_prebuild

This macro is only used once. Consider replacing that usage with mass_prebuild verbatim.


> Release:        3%{?dist}

%autorelese is the preferred way in Fedora. https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/#_release_tag


> Summary:        A set of tools to massively pre-build reverse dependencies for a package

Consider saying this is for RPM packages.


> Patch:          drop-setuptools_scm.patch

This patch only includes an explanation within the patch itself. However, each patch reason should be explained in the specfile. https://docs.fedoraproject.org/en-US/packaging-guidelines/#_patch_guidelines


> Patch:          0001-docs-license-Update-GPL-to-latest-version.patch

Same here + please don't change licenses downstream.


> # The pyproject.toml file needs to be updated upstream to had more of these.
> BuildRequires:  python3-copr
> ...

Consider explaining what those are. Are those upstream-undeclared runtime dependencies? Or test dependencies? Or actual build dependencies?


> install -d %{buildroot}%{_sysconfdir}/bash_completion.d

Please use %{bash_completions_dir}. https://docs.fedoraproject.org/en-US/packaging-guidelines/ShellCompletions/

Note that this also has a different value (/usr/share-based rather than /etc-based), which is the correct location to install bash completions from RPM packages.



> %config(noreplace) %{_sysconfdir}/bash_completion.d/mpb*

If, for some reason, you actually need the bash completions in /etc, do you expect users to modify them themselves? The %config(noreplace) notation seems to be abused here.


> %license LICENSE

You use `%pyproject_save_files -l` hence manually listing a %license file should not be necessary.

Comment 7 Fedora Review Service 2025-09-12 16:31:47 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/9551800
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2382327-mass-prebuild/fedora-rawhide-x86_64/09551800-mass-prebuild/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 8 Miro Hrončok 2025-09-22 11:47:28 UTC
(In reply to Miro Hrončok from comment #5)
> Please use raw links to spec+srpm, not to HTML pages with them. That allows
> automatic checks via Fedora Review. Thanks.

spec file is still linked to a HTML page.

> > %global pyname mass_prebuild
> 
> This macro is only used once. Consider replacing that usage with
> mass_prebuild verbatim.


Fixed.


> > Release:        3%{?dist}
> 
> %autorelese is the preferred way in Fedora.
> https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/
> #_release_tag

Fixed.

> > Summary:        A set of tools to massively pre-build reverse dependencies for a package
> 
> Consider saying this is for RPM packages.

Fixed. I think it's "an RPM package", not "a RPM package", but I am not a native speaker.


> > Patch:          drop-setuptools_scm.patch
> 
> This patch only includes an explanation within the patch itself. However,
> each patch reason should be explained in the specfile.
> https://docs.fedoraproject.org/en-US/packaging-guidelines/#_patch_guidelines
> 
> 
> > Patch:          0001-docs-license-Update-GPL-to-latest-version.patch
> 
> Same here + please don't change licenses downstream.


Both patches removed.


> > # The pyproject.toml file needs to be updated upstream to had more of these.
> > BuildRequires:  python3-copr
> > ...
> 
> Consider explaining what those are. Are those upstream-undeclared runtime
> dependencies? Or test dependencies? Or actual build dependencies?

This was improved.

BuildRequires:  python3-pip  <- this one is redundant and generated by %pyproject_buildrequires (unless you need it for other reasons).

> > install -d %{buildroot}%{_sysconfdir}/bash_completion.d
> 
> Please use %{bash_completions_dir}.
> https://docs.fedoraproject.org/en-US/packaging-guidelines/ShellCompletions/
> 
> > %config(noreplace) %{_sysconfdir}/bash_completion.d/mpb*
> 
> If, for some reason, you actually need the bash completions in /etc, do you
> expect users to modify them themselves? The %config(noreplace) notation
> seems to be abused here.

Both fixed.


> > %license LICENSE
> 
> You use `%pyproject_save_files -l` hence manually listing a %license file
> should not be necessary.

Fixed.

----


Two notable problems caught by fedora-review-service:



     No known owner of /etc/mpb/repo.conf.d, /etc/mpb/copr.conf.d

This is correct, the %files should list %dir %{_sysconfdir}/mpb/*.conf.d as well, not only the content.




    [!]: Uses parallel make %{?_smp_mflags} macro.

The spec file uses plan `make` where it likely should invoke %make_build -- see https://docs.fedoraproject.org/en-US/packaging-guidelines/#_parallel_make

Comment 9 Ben Beasley 2025-09-22 12:48:41 UTC
> Fixed. I think it's "an RPM package", not "a RPM package", but I am not a native speaker.

I agree with this. The article “a” is chosen when the first sound of the spoken acronym or initialism is a consonant, and “an” is chosen when it is a vowel. Since we say RPM by spelling it out, and the letter R is pronounced “arr,” “an” is correct.

- an RPM
- an XML file
- a PDF file
- a SQL database if you pronounce it “sequel”
- an SQL databse if you pronounce it “ess-queue-ell”

Comment 11 Fedora Review Service 2025-09-22 14:39:16 UTC
Created attachment 2107286 [details]
The .spec file difference from Copr build 9551800 to 9589896

Comment 12 Fedora Review Service 2025-09-22 14:39:18 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/9589896
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2382327-mass-prebuild/fedora-rawhide-x86_64/09589896-mass-prebuild/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 13 Miro Hrončok 2025-09-23 09:18:11 UTC
I believe this creates a duplicate file record:

  %config(noreplace) %{_sysconfdir}/mpb/*.conf.d/
  %config(noreplace) %{_sysconfdir}/mpb/*.conf.d/*

RPM build warnings:
    File listed twice: /etc/mpb/copr.conf.d/01_project.yaml
    File listed twice: /etc/mpb/copr.conf.d/02_packages.yaml
    File listed twice: /etc/mpb/repo.conf.d/centos-stream.yaml
    File listed twice: /etc/mpb/repo.conf.d/epel.yaml
    File listed twice: /etc/mpb/repo.conf.d/fedora.yaml


Perhaps use this instead?

  %dir %{_sysconfdir}/mpb/*.conf.d/
  %config(noreplace) %{_sysconfdir}/mpb/*.conf.d/*

Comment 14 Frédéric Bérat 2025-09-24 08:24:59 UTC
@mhroncok The warning should now be fixed.

Comment 15 Miro Hrončok 2025-09-24 11:18:49 UTC
Package APPROVED.

Comment 16 Fedora Admin user for bugzilla script actions 2025-09-24 15:00:00 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/mass-prebuild

Comment 17 Fedora Update System 2025-09-24 15:15:50 UTC
FEDORA-2025-04ccfbf2f0 (mass-prebuild-1.6.1-1.fc44) has been submitted as an update to Fedora 44.
https://bodhi.fedoraproject.org/updates/FEDORA-2025-04ccfbf2f0

Comment 18 Fedora Update System 2025-09-24 15:20:17 UTC
FEDORA-2025-04ccfbf2f0 (mass-prebuild-1.6.1-1.fc44) has been pushed to the Fedora 44 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.