Bug 794722 - Review Request: rngom - Java library for parsing RELAX NG grammars
Summary: Review Request: rngom - Java library for parsing RELAX NG grammars
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: ---
Assignee: David Nalley
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 767050 794725
TreeView+ depends on / blocked
 
Reported: 2012-02-17 12:21 UTC by Juan Hernández
Modified: 2012-02-28 10:57 UTC (History)
6 users (show)

Fixed In Version: rngom-201103-0.4.20120119svn.fc17
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-02-23 18:14:04 UTC
Type: ---
Embargoed:
david: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Juan Hernández 2012-02-17 12:21:01 UTC
Spec URL:

http://jhernand.fedorapeople.org/rpms/rngom/201103-0.1.20120119svn/rngom.spec

SRPM URL:

http://jhernand.fedorapeople.org/rpms/rngom/201103-0.1.20120119svn/rngom-201103-0.2.20120119svn.fc17.src.rpm

Description:

RNGOM is an open-source Java library for parsing RELAX NG grammars.

In particular, RNGOM can:
* parse the XML syntax
* parse the compact syntax
* check all the semantic restrictions as specified in the specification
* parse RELAX NG into application-defined data structures
* build a default data structure based around the binarized simple syntax or
  another data structure that preserves more of the parsed information
* parse foreign elements/attributes in a schema
* parse comments in a schema

Comment 1 Juan Hernández 2012-02-18 15:43:28 UTC
The previous SRPM contained a binary "lic.jar" file in the source tarball that I forgot to remove. The fixed spec and SRPM are available here:

http://jhernand.fedorapeople.org/rpms/rngom/201103-0.3.20120119svn

Comment 2 Steven Dake 2012-02-18 15:50:30 UTC
This bugzilla was misfiled under oz component, and as such it was assigned to Chris Lalancette.  I am removing chris as the owner and reassigning to the default owner.

Comment 3 David Nalley 2012-02-22 16:01:22 UTC
Juan: 

This has a BR (and an R) for stax2-api - but I don't see any such package in Fedora nor do I see a package review. Did I miss it? 

--David

[ke4qqq@nalleyx200 SPECS]$ rpmbuild -ba rngom.spec 
error: Failed build dependencies:
        stax2-api is needed by rngom-201103-0.3.20120119svn.fc16.noarch

Comment 4 Juan Hernández 2012-02-22 16:18:51 UTC
Strange. According to the package database that is available since Fedora 15:

https://admin.fedoraproject.org/pkgdb/acls/name/stax2-api

Comment 5 David Nalley 2012-02-22 17:01:16 UTC
So branches were created, but it was only built for rawhide at the time apparently. It's currently in F17 and rawhide now. 

I'll build for F16 and work from there.

Comment 6 David Nalley 2012-02-22 17:40:43 UTC


Package Review
==============

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

=== REQUIRED ITEMS ===
[ ]  Rpmlint output:
[ke4qqq@nalleyx200 result]$ rpmlint ./rngom-* ~/rpmbuild/SPECS/rngom.spec 
rngom.noarch: E: explicit-lib-dependency msv-xsdlib
rngom.noarch: W: spelling-error %description -l en_US binarized -> barbarized
rngom.noarch: W: no-documentation
rngom.src: W: spelling-error %description -l en_US binarized -> barbarized
rngom.src: W: invalid-url Source0: rngom-201103.tar.gz
/home/ke4qqq/rpmbuild/SPECS/rngom.spec: W: invalid-url Source0: rngom-201103.tar.gz
3 packages and 1 specfiles checked; 1 errors, 5 warnings.

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

Where did you come up with the version? As far as I can see there have been around 70 commits in total to this project, but no releases as of yet, or even a tag. 

[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:
[-]  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
[X]  Spec file is legible and written in American English.
[X]  Sources used to build the package matches the upstream source, as provided in the spec URL.
No good way of doing this given that it's coming from SVN 
[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, ...)
[X]  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
[-]  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
[X]  Package has BuildArch: noarch (if possible)
[X]  Latest version is packaged.
[X]  Reviewer should test that the package builds in mock.
Tested on: f17


I am a bit concerned with the versioning - I didn't see one upstream - otherwise this package looks good.

Comment 7 Marek Goldmann 2012-02-22 17:44:58 UTC
David,

I'll try to answer the version question. Please take a look at the version in POM: https://svn.java.net/svn/rngom~svn/trunk/rngom/pom.xml

This is also the version which is registered in JBoss' Maven repo.

HTH

Comment 8 David Nalley 2012-02-23 15:02:21 UTC
So actually the version in the file you reference is: 201103-SNAPSHOT
That strikes me that as a filler value, and it has remained unchanged over several different revisions. 


Another thing I just noticed is how you are building the tarball - you are grabbing trunk - not specifying the revision number that you want - which means for each additional revision you'd have no way of knowing what you originally built - this needs to specify a specific revision - and that revision should somehow be referenced. 

And this specifically is one of the reasons I don't like the above date reference in the pom. Upstream isn't tagging releases (well it has, but that was 5 years ago), and that reference has remained the same for several commits - so it's effectively meaningless - commit 68, 69, and 70 all contain the same version - and you relying on that field doesn't communicate the actual version/status. Specifically thing about: If upstream were to make 2 commits next week and you want to update - what would the version be then (I find it incredibly unlikely that they'd change the value in the pom, since it's gone unchanged.)

Comment 9 David Nalley 2012-02-23 15:29:39 UTC
Just documenting conversations:
So in discussing this in IRC I've been swayed to agree with mgoldmann on the versioning issue under the premise that: 

201103 is the version
This particular build is a pre-release of that version - and of course release is 0.iteration.datesvn

We do want to change the svn co command to reflect what revision is pulled, but I trust that the packager can do that before committing to git. 

APPROVED

Comment 10 Juan Hernández 2012-02-23 15:43:57 UTC
I am making the following changes to the spec in order to make explicit the revision number used to checkout the source. Is this what you mean?

--- rngom.spec.old
+++ rngom.spec
@@ -1,12 +1,12 @@
 Name: rngom
 Version: 201103
-Release: 0.3.20120119svn%{?dist}
+Release: 0.4.20120119svn%{?dist}
 Summary: Java library for parsing RELAX NG grammars
 Group: Development/Libraries
 License: MIT
 URL: https://rngom.dev.java.net
 
-# svn export https://svn.java.net/svn/rngom~svn/trunk/rngom rngom-201103
+# svn export -r 70 https://svn.java.net/svn/rngom~svn/trunk/rngom rngom-201103
 # find rngom-201103/ -name '*.class' -delete
 # find rngom-201103/ -name '*.jar' -delete
 # tar czf rngom-201103.tar.gz rngom-201103
@@ -104,6 +104,9 @@
 
 
 %changelog
+* Thu Feb 23 2012 Juan Hernandez <juan.hernandez> 201103-0.4.20120119svn
+- Make explicit the checked out revision number in the comments
+
 * Sat Feb 18 2012 Juan Hernandez <juan.hernandez> 201103-0.3.20120119svn
 - Remove the binary file lic.jar from the source tarball

Comment 11 David Nalley 2012-02-23 15:48:00 UTC
That's exactly what I was talking about - thanks!

Comment 12 Juan Hernández 2012-02-23 16:05:52 UTC
Ok, thanks David, I will apply that change before committing.

Comment 13 Juan Hernández 2012-02-23 16:07:30 UTC
New Package SCM Request
=======================
Package Name: rngom
Short Description: Java library for parsing RELAX NG grammars
Owners: jhernand
Branches: f17
InitialCC: goldmann

Comment 14 Gwyn Ciesla 2012-02-23 16:53:52 UTC
Git done (by process-git-requests).

Comment 15 Fedora Update System 2012-02-23 18:12:22 UTC
rngom-201103-0.4.20120119svn.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/rngom-201103-0.4.20120119svn.fc17

Comment 16 Fedora Update System 2012-02-28 10:57:21 UTC
rngom-201103-0.4.20120119svn.fc17 has been pushed to the Fedora 17 stable repository.


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