Bug 863445 - Review Request: sisu-guice - Lightweight dependency injection framework for Java 5 and above
Summary: Review Request: sisu-guice - Lightweight dependency injection framework for J...
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: gil cattaneo
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 690777
TreeView+ depends on / blocked
 
Reported: 2012-10-05 13:41 UTC by Mikolaj Izdebski
Modified: 2012-10-31 14:48 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-10-31 14:48:39 UTC
Type: ---
Embargoed:
puntogil: fedora-review+


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 863279 0 unspecified CLOSED Added sub package extensions 2021-02-22 00:41:40 UTC

Internal Links: 863279

Description Mikolaj Izdebski 2012-10-05 13:41:37 UTC
Spec URL: http://mizdebsk.fedorapeople.org/review/sisu-guice/sisu-guice-3.1.2-1.fc19.spec
SRPM URL: http://mizdebsk.fedorapeople.org/review/sisu-guice/sisu-guice-3.1.2-1.fc19.src.rpm
Description:
Put simply, Guice alleviates the need for factories and the use of new
in your Java code. Think of Guice's @Inject as the new new. You will
still need to write factories in some cases, but your code will not
depend directly on them. Your code will be easier to change, unit test
and reuse in other contexts.

Guice embraces Java's type safe nature, especially when it comes to
features introduced in Java 5 such as generics and annotations. You
might think of Guice as filling in missing features for core
Java. Ideally, the language itself would provide most of the same
features, but until such a language comes along, we have Guice.

Guice helps you design better APIs, and the Guice API itself sets a
good example. Guice is not a kitchen sink. We justify each feature
with at least three use cases. When in doubt, we leave it out. We
build general functionality which enables you to extend Guice rather
than adding every feature to the core framework.

Fedora Account System Username: mizdebsk

NOTE: This is a re-review request for a package rename,
the name of the package being replaced is google-guice.
The owner of google-guice package agrees with the rename.

Comment 1 gil cattaneo 2012-10-05 22:13:09 UTC
I am taking this review.

Comment 2 gil cattaneo 2012-10-05 22:36:13 UTC
Package Review
==============

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


Issues:
=======
[!]: Fully versioned dependency in subpackages, if present.
     Note: Missing: 'Requires: %%{name} =' in: %package -n guice-parent
See: http://fedoraproject.org/wiki/Packaging/Guidelines#RequiringBasePackage
[!]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
     Note: sisu-guice-3.1.2-1.fc19.spec should be sisu-guice.spec
See: http://fedoraproject.org/wiki/Packaging/NamingGuidelines#Spec_file_name


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

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]: Package successfully compiles and builds into binary rpms on at least one
     supported primary architecture.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[x]: Package contains no bundled libraries.
[x]: Changelog in prescribed format.
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Sources contain only permissible code or content.
[x]: Each %files section contains %defattr if rpm < 4.4
[x]: Macros in Summary, %description expandable at SRPM build time.
[-]: Package contains desktop file if it is a GUI application.
[-]: Development files must be in a -devel package
[-]: Package requires other packages for directories it uses.
[-]: Package uses nothing in %doc for runtime.
[x]: Package is not known to require ExcludeArch.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Fully versioned dependency in subpackages, if present.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in %package
     javadoc, %package -n guice-parent
[x]: Package complies to the Packaging Guidelines
[x]: Spec file lacks Packager, Vendor, PreReq tags.
[-]: Large documentation files are in a -doc subpackage, if required.
[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.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "Apache (v2.0)", "Unknown or generated". 2 files have unknown license.
     Detailed output of licensecheck in /home/gil/863445-sisu-
     guice-3.1.2-1.fc19/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: Package consistently uses macro is (instead of hard-coded directory
     names).
[x]: Package is named using only allowed ASCII characters.
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
     Note: Package contains no Conflicts: tag(s)
[x]: Package do not use a name that already exist
[-]: Package obeys FHS, except libexecdir and /usr/target.
[x]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: Package installs properly.
[x]: Package is not relocatable.
[x]: Requires correct, justified where necessary.
[x]: CheckResultdir
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: Sources used to build the package match the upstream source, as provided
     in the spec URL.
[x]: Spec file is legible and written in American English.
[!]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
     Note: sisu-guice-3.1.2-1.fc19.spec should be sisu-guice.spec
[-]: Package contains systemd file(s) if in need.
[x]: File names are valid UTF-8.

Java:
[x]: If source tarball includes bundled jar/class files these need to be
     removed prior to building
[x]: Packages have proper BuildRequires/Requires on jpackage-utils
[!]: Fully versioned dependency in subpackages, if present.
     Note: Missing: 'Requires: %%{name} =' in: %package -n guice-parent
[x]: Javadoc documentation files are generated and included in -javadoc
     subpackage
[x]: Javadoc subpackages have Requires: jpackage-utils
[x]: Javadocs are placed in %{_javadocdir}/%{name} (no -%{version} symlink)

Maven:
[x]: Pom files have correct add_maven_depmap call
     Note: Some add_maven_depmap calls found. Please check if they are correct
[x]: Old add_to_maven_depmap macro is not being used
[x]: Packages DOES NOT have Requires(post) and Requires(postun) on jpackage-
     utils for %update_maven_depmap macro
[x]: If package contains pom.xml files install it (including depmaps) even
     when building with ant
[x]: Package DOES NOT use %update_maven_depmap in %post/%postun
[x]: Packages use %{_mavenpomdir} instead of %{_datadir}/maven2/poms

===== SHOULD items =====

Generic:
[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)
[-]: 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]: Dist tag is present.
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: The placement of pkgconfig(.pc) files are correct.
[x]: SourceX tarball generation or download is documented.
[!]: SourceX / PatchY prefixed with %{name}.
     Note: Source0 (sisu-guice-3.1.2.tar.gz)
[x]: SourceX is a working URL.
[-]: 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.
[-]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed files.
[x]: Spec use %global instead of %define.

Java:
[x]: Package has BuildArch: noarch (if possible)
[x: Package uses upstream build method (ant/maven/etc.)

===== 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: sisu-guice-3.1.2-1.fc19.src.rpm
          sisu-guice-javadoc-3.1.2-1.fc19.noarch.rpm
          sisu-guice-3.1.2-1.fc19.noarch.rpm
sisu-guice.noarch: E: explicit-lib-dependency cglib
3 packages and 0 specfiles checked; 1 errors, 0 warnings.




Rpmlint (installed packages)
----------------------------
# rpmlint sisu-guice sisu-guice-javadoc
sisu-guice.noarch: E: explicit-lib-dependency cglib
2 packages and 0 specfiles checked; 1 errors, 0 warnings.
# echo 'rpmlint-done:'



Requires
--------
sisu-guice-javadoc-3.1.2-1.fc19.noarch.rpm (rpmlib, GLIBC filtered):
    
    jpackage-utils  

sisu-guice-3.1.2-1.fc19.noarch.rpm (rpmlib, GLIBC filtered):
    
    aopalliance  
    atinject  
    cglib  
    guava  
    java  
    jpackage-utils  
    slf4j  



Provides
--------
sisu-guice-javadoc-3.1.2-1.fc19.noarch.rpm:
    
    google-guice-javadoc = 3.1.2-1.fc19
    sisu-guice-javadoc = 3.1.2-1.fc19

sisu-guice-3.1.2-1.fc19.noarch.rpm:
    
    google-guice = 3.1.2-1.fc19
    mvn(org.sonatype.sisu:sisu-guice) = 3.1.2
    osgi(org.sonatype.sisu.guice) = 3.1.2
    sisu-guice = 3.1.2-1.fc19



MD5-sum check
-------------
https://github.com/sonatype/sisu-guice/tarball/sisu-guice-3.1.2#/sisu-guice-3.1.2.tar.gz :
  CHECKSUM(SHA256) this package     : 8fe9fbe7fefac20dea9fb5be607b80efba231537750319f4cff2cd4ed0541ad2
  CHECKSUM(SHA256) upstream package : 8fe9fbe7fefac20dea9fb5be607b80efba231537750319f4cff2cd4ed0541ad2

Comment 3 gil cattaneo 2012-10-05 22:40:10 UTC
Hi Mikolaj,

Issues:
=======
[!]: Fully versioned dependency in subpackages, if present.
     Note: Missing: 'Requires: %%{name} =' in: %package -n guice-parent
See: http://fedoraproject.org/wiki/Packaging/Guidelines#RequiringBasePackage

[!]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
     Note: sisu-guice-3.1.2-1.fc19.spec should be sisu-guice.spec
See: http://fedoraproject.org/wiki/Packaging/NamingGuidelines#Spec_file_name

if the second issue isn't a problem the package is approved

thanks

Comment 4 gil cattaneo 2012-10-07 13:21:45 UTC
Hi Mikolaj,
for backwards compatibility you can add to depmap

%add_maven_depmap JPP.%{name}-guice-assistedinject.pom %{name}/guice-assistedinject.jar -f assistedinject -a "com.google.inject.extensions:guice-assistedinject"
%add_maven_depmap JPP.%{name}-guice-extensions.pom -f extensions
%add_maven_depmap JPP.%{name}-guice-grapher.pom %{name}/guice-grapher.jar -f grapher  -a "com.google.inject.extensions:guice-grapher"
%add_maven_depmap JPP.%{name}-guice-jmx.pom %{name}/guice-jmx.jar -f jmx -a "com.google.inject.extensions:guice-jmx"
%add_maven_depmap JPP.%{name}-guice-jndi.pom %{name}/guice-jndi.jar -f jndi -a "com.google.inject.extensions:guice-jndi"
%add_maven_depmap JPP.%{name}-guice-multibindings.pom %{name}/guice-multibindings.jar -f multibindings  -a "com.google.inject.extensions:guice-multibindings"
%add_maven_depmap JPP.%{name}-guice-parent.pom -f parent
%add_maven_depmap JPP.%{name}-guice-persist.pom %{name}/guice-persist.jar -f persist  -a "com.google.inject.extensions:guice-persist"
%add_maven_depmap JPP.%{name}-guice-servlet.pom %{name}/guice-servlet.jar -f servlet -a "com.google.inject.extensions:guice-servlet"
%add_maven_depmap JPP.%{name}-guice-spring.pom %{name}/guice-spring.jar -f spring -a "com.google.inject.extensions:guice-spring"
%add_maven_depmap JPP.%{name}-guice-throwingproviders.pom %{name}/guice-throwingproviders.jar -f throwingproviders  -a "com.google.inject.extensions:guice-throwingproviders"
%add_maven_depmap JPP.%{name}-%{name}.pom %{name}/%{name}.jar -a "com.google.inject:guice"

thanks
regaeds

Comment 5 Mikolaj Izdebski 2012-10-31 14:48:39 UTC
This package was just pushed to rawhide, except that I kept the old name (google-guice). This means that a formal review wasn't needed after all, but thank you for it anyways!


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