Bug 816962

Summary: Review Request: fest-assert - FEST Fluent Assertions
Product: [Fedora] Fedora Reporter: Mario Torre <neugens>
Component: Package ReviewAssignee: Omair Majid <omajid>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: notting, omajid, package-review
Target Milestone: ---Flags: omajid: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-07-10 16:23:21 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On: 816264, 816926, 816927, 816957    
Bug Blocks: 816967, 830278    

Comment 1 Mario Torre 2012-05-03 16:29:45 UTC
Those are built for f17 and onward:

http://neugens.fedorapeople.org/fest-assert/fest-assert.spec
http://neugens.fedorapeople.org/fest-assert/fest-assert-1.4-4.fc16.src.rpm

I had to skip the tests, due to the dependency over junit 4.8, while we only have 4.10 which is incompatible.

Skipping tests doesn't preclude by itself the correctness of the package.

Comment 2 Omair Majid 2012-05-03 18:24:20 UTC
Package Review
==============

Key:
- = N/A
x = Check
! = Problem
? = Not evaluated

=== REQUIRED ITEMS ===
[x]  Rpmlint output:

fest-assert.src: W: invalid-url Source0: fest-assert-1.4.tar.bz2

Okay, upstream does not publish source tarballs.

On the other hand, why are we not using the git tag upstream has marked as 1.4: https://github.com/alexruiz/fest-assert-1.x/tags ? We can use that as a source with url too so rpmlint can verify the source.

[!]  Package is named according to the Package Naming Guidelines[1].

Upstream calls this "fest-assert-1.x". Any reason we are just calling it fest-assert?

[x]  Spec file name must match the base package name, in the format %{name}.spec.
[x]  Package meets the Packaging Guidelines[2].
[x]  Package successfully compiles and builds into binary rpms.
[x]  Buildroot definition is not present
[x]  Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines[3,4].
[x]  License field in the package spec file matches the actual license.
License type:
[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 %doc.
[!]  All independent sub-packages have license of their own

The javadoc subpackage is independent of the main package and does not have a license file

[x]  Spec file is legible and written in American English.
[!]  Sources used to build the package matches the upstream source, as provided in the spec URL.
MD5SUM this package    :
MD5SUM upstream package:

Upstream's 1.4 'tag' is different (content-wise) from this 1.4. 

[x]  All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines[5].
[x]  Package must own all directories that it creates or must require other packages for directories it uses.
[x]  Package does not contain duplicates in %files.
[x]  File sections do not contain %defattr(-,root,root,-) unless changed with good reason
[x]  Permissions on files are set properly.
[x]  Package does NOT have a %clean section which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT). (not needed anymore)
[x]  Package consistently uses macros (no %{buildroot} and $RPM_BUILD_ROOT mixing)
[x]  Package contains code, or permissable content.
[-]  Fully versioned dependency in subpackages, if present.
[-]  Package contains a properly installed %{name}.desktop file if it is a GUI application.
[x]  Package does not own files or directories owned by other packages.
[x]  Javadoc documentation files are generated and included in -javadoc subpackage
[x]  Javadocs are placed in %{_javadocdir}/%{name} (no -%{version} symlinks)
[x]  Packages have proper BuildRequires/Requires on jpackage-utils
[x]  Javadoc subpackages have Require: jpackage-utils
[-]  Package uses %global not %define
[x]  If package uses tarball from VCS include comment how to re-create that tarball (svn export URL, git clone URL, ...)
[-]  If source tarball includes bundled jar/class files these need to be removed prior to building
[x]  All filenames in rpm packages must be valid UTF-8.
[x]  Jar files are installed to %{_javadir}/%{name}.jar (see [6] for details)
[x]  If package contains pom.xml files install it (including depmaps) even when building with ant
[x]  pom files has correct add_maven_depmap

=== Maven ===
[x]  Use %{_mavenpomdir} macro for placing pom files instead of %{_datadir}/maven2/poms
[x]  If package uses "-Dmaven.test.skip=true" explain why it was needed in a comment
[-]  If package uses custom depmap "-Dmaven.local.depmap.file=*" explain why it's needed in a comment
[x]  Package DOES NOT use %update_maven_depmap in %post/%postun
[x]  Packages DOES NOT have Requires(post) and Requires(postun) on jpackage-utils for %update_maven_depmap macro

=== Other suggestions ===
[x]  If possible use upstream build method (maven/ant/javac)
[x]  Avoid having BuildRequires on exact NVR unless necessary

There is an exact dependency on other fest-*, but since they are meant to be used together, that's okay.  

[x]  Package has BuildArch: noarch (if possible)
[!]  Latest version is packaged.

I am guess 2.x is not packaged because there is no fest-swing-2.x?

[x]  Reviewer should test that the package builds in mock.
Tested on: fedora-rawhide-x86_64


=== Issues ===
1. We are using a changeset that's different from the changeset tagged '1.4' by upstream
2. Package name is different from upstream: fest-assert-1.x
3. The license file is missing from the javadoc subpackage 


[1] https://fedoraproject.org/wiki/Packaging:NamingGuidelines
[2] https://fedoraproject.org/wiki/Packaging:Guidelines
[3] https://fedoraproject.org/wiki/Packaging:LicensingGuidelines
[4] https://fedoraproject.org/wiki/Licensing:Main
[5] https://fedoraproject.org/wiki/Packaging/Guidelines#Exceptions_2 
[6] https://fedoraproject.org/wiki/Packaging:Java#Filenames

Comment 4 Omair Majid 2012-05-03 20:34:38 UTC
I am having second thoughts about the name. Maybe upstream is using "fest-assert-1.x" as a branch name rather than the package name. The maven pom also calls it "fest-assert".

Comment 5 Mario Torre 2012-05-03 21:09:50 UTC
Actually, upstream is a bit chaotic, so it doesn't really matter that much as soon as the pom is correctly set.

I would keep it like this for now, in any case, fest-asset-1.x should be replaced by fest-assert-2.x at some point, and we can make them live side by side easily if this is needed.

Comment 6 Omair Majid 2012-05-03 21:46:31 UTC
(In reply to comment #5)
> I would keep it like this for now, in any case, fest-asset-1.x should be
> replaced by fest-assert-2.x at some point, and we can make them live side by
> side easily if this is needed.

The fedora convention would be, I believe, fest-assert2. Other packages doing this include jline2, junit4, pygtk2.

Comment 8 Omair Majid 2012-05-04 00:07:11 UTC
Sorry about the multiple names changes. The package looks good to me.

================
*** APPROVED ***
================

Comment 9 Mario Torre 2012-05-04 08:18:11 UTC
New Package SCM Request
=======================
Package Name: fest-assert
Short Description: FEST Fluent Assertions
Owners: neugens omajid rkennke jvanalte
Branches: f17
InitialCC: java-sig

Comment 10 Gwyn Ciesla 2012-05-04 12:24:59 UTC
Git done (by process-git-requests).

Comment 11 Fedora Update System 2012-06-01 08:14:47 UTC
fest-assert-1.4-6.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/fest-assert-1.4-6.fc17

Comment 12 Fedora Update System 2012-06-02 03:53:51 UTC
fest-assert-1.4-6.fc17 has been pushed to the Fedora 17 testing repository.

Comment 13 Fedora Update System 2012-07-10 16:23:21 UTC
fest-assert-1.4-6.fc17 has been pushed to the Fedora 17 stable repository.