Bug 2070881

Summary: Review Request: golang-github-mock - gomock is a mocking framework for the Go programming language
Product: [Fedora] Fedora Reporter: Carmelo Sarta <carmelo.sarta.main>
Component: Package ReviewAssignee: Fabio Alessandro Locati <me>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: me, package-review
Target Milestone: ---Flags: me: fedora-review+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-04-07 17:11:40 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Carmelo Sarta 2022-04-01 09:30:16 UTC
Spec URL: https://raw.githubusercontent.com/Laiot/golang-github-mock-rpm/master/golang-github-mock.spec
SRPM URL: https://github.com/Laiot/golang-github-mock-rpm/blob/master/golang-github-mock-1.6.0-1.fc36.src.rpm
Description: gomock is a mocking framework for the Go programming language. It integrates well with Go's built-in testing package, but can be used in other contexts too.
Fedora Account System Username: laiot

Comment 1 Fabio Alessandro Locati 2022-04-02 08:29:45 UTC
Hi Carmelo,

Thanks for the effort, and overall a good package! I see a couple of things to tweak before it's approvable:

1. For future request, please provide direct links and not links that require clicking around (not only for the SPEC, but also for the SRPM)
2. It seems like you were trying to use %autorelease and %autochangelog, but positioned them in the wrong place.

* %autochangelog should be put in place of the "standard" changelog, not after it

* %autorelease should be used as a parameter for "Release:", like:

    Release:        %autorelease

3. The shipped binary (mockgen) only utility is to generate the source code, so we do not need to have it within the package, since we are already ship the output of it.

To strip the binary you should:
* Add the configuration to let the builder know to produce platform-independent RPM, since we are only going to ship sources:

    BuildArch:      noarch

* Remove the build of the binary:

    for cmd in mockgen; do
      %gobuild -o %{gobuilddir}/bin/$(basename $cmd) %{goipath}/$cmd
    done

* Remove the installation of the binary and respective folder:

    install -m 0755 -vd                     %{buildroot}%{_bindir}
    install -m 0755 -vp %{gobuilddir}/bin/* %{buildroot}%{_bindir}/

* Since we only need to put files in the -devel package, we can also remove the whole %file block since %gopkgfiles will take care of all files and put them in the right location without help:

    %files
    %license LICENSE
    %doc AUTHORS CONTRIBUTING.md CONTRIBUTORS README.md sample/README.md
    %{_bindir}/*

Comment 2 Carmelo Sarta 2022-04-03 08:25:32 UTC
Thank Fale for your help.
I pushed the fixed files in the same repo.

Spec URL: https://raw.githubusercontent.com/Laiot/golang-github-mock-rpm/master/golang-github-mock.spec
SRPM URL: https://github.com/Laiot/golang-github-mock-rpm/raw/7ae36f1cac7dad54a958079b640d0ab9a96ec38e/golang-github-mock-1.6.0-1.fc36.src.rpm
Description: gomock is a mocking framework for the Go programming language. It integrates well with Go's built-in testing package, but can be used in other contexts too.
Fedora Account System Username: laiot

Comment 3 Fabio Alessandro Locati 2022-04-03 21:37:29 UTC
Please remove the manual changelog entries:

    * Fri Apr 01 2022 laiot <carmelo.sarta.main> - 1.6.0-1
    - Initial package

Since you are already using %autochangelog that auto-creates those lines.

Comment 4 Carmelo Sarta 2022-04-05 08:02:41 UTC
Removed the manual changelog entry and pushed the new spec.

Comment 5 Fabio Alessandro Locati 2022-04-05 20:09:42 UTC
go2rpm package, fedora-review is correct:

- The specfile is sane.
- License is correct
- Builds successfully in mock
- No rpmlint errors
- %check section passes
- The latest version is packaged
- The package complies with the Packaging Guidelines.

Package approved! On import, don't forget to do the following:

- Add package to release-monitoring.org
- Add package to Koschei.
- Give go-sig privileges on package
- Close the review bug by referencing it in the rpm changelog and/or the Bodhi ticket. (rhbz#BUG_ID)

Thanks!