Bug 825418 - Review Request: elixir - A modern approach to programming for the Erlang VM
Summary: Review Request: elixir - A modern approach to programming for the Erlang VM
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Peter Lemenkov
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-05-26 04:34 UTC by Rick Elrod
Modified: 2013-10-23 18:21 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-06-05 23:01:53 UTC
Type: ---
Embargoed:
lemenkov: fedora-review+


Attachments (Terms of Use)

Description Rick Elrod 2012-05-26 04:34:51 UTC
Spec URL: http://codeblock.fedorapeople.org/packages/elixir/elixir.spec
SRPM URL: http://codeblock.fedorapeople.org/packages/elixir/elixir-0.5.0-1.20120526git6052352.fc18.src.rpm
Description: 
Elixir is a programming language built on top of the Erlang VM. As Erlang, it is a functional language built to support distributed, fault-tolerant, non-stop applications with hot code swapping.
Fedora Account System Username: codeblock


[ricky@t520 SRPMS]$ rpmlint ../SPECS/elixir.spec 
../SPECS/elixir.spec: W: invalid-url Source0: elixir-lang-elixir-v0.5.0-0-g6052352.tar.gz
0 packages and 1 specfiles checked; 0 errors, 1 warnings.

This one is due to pulling the source from a github tag, there's no easy way to link directly to the .tar.gz.


[ricky@t520 SRPMS]$ rpmlint ../RPMS/noarch/elixir-0.5.0-1.20120526git6052352.fc18.noarch.rpm 
elixir.noarch: W: no-manual-page-for-binary iex
elixir.noarch: W: no-manual-page-for-binary elixirc
elixir.noarch: W: no-manual-page-for-binary elixir
1 packages and 0 specfiles checked; 0 errors, 3 warnings.

There are no manpages currently for Elixir, unfortunately. I have a ping in with the lead dev about getting manpages in the next release.

Comment 1 Peter Lemenkov 2012-05-26 09:04:16 UTC
I'll review it.

Comment 2 Peter Lemenkov 2012-05-26 10:25:00 UTC
* First of all it fails to build (fails to pass the tests) until I removed all "time" invocations in the Makefile with the following line appended to the %prep section:

sed -i -e "s,time ,,g" Makefile

After that it builds just fine.

* Consider removing *.bat files entirely.

* I did a dependency  checking with my (yet to be published) API checker and found that there are some missing dependencies. At least you must explicitly add 

Requires: erlang-inets

My API checker shows that elixir's beam-files are also exporting functions from the following modules:

Requires: erlang-compiler
Requires: erlang-kernel
Requires: erlang-stdlib
Requires: erlang-syntax_tools

but these ones are safe to omit since they're in a default dependency chain from erlang-erts. Feel free either to add them or not.

* This package requires erlang-erts >= R15B - please fix your Requires directive. Just FYI - I plan to upgrade Erlang in F-16 and in EL6 up to R15B very soon. F-17 and F-18 already has R15B.

Actually the only missing function in R14B is "file:read_file_info/2" and I believe the package could be fixed to work with R14B but I wouldn't hold my breath waiting for someone who is willing to fix that in the nearest future. Anyway since we will see a R15B build for EL6 and F-16 soon then this shouldn't even bother you.

* Just FYI - The package won't work with R12B so no luck for EL5 users.

Error:erlang(erlang:atom_to_binary/2)
Error:erlang(erlang:binary_to_atom/2)
Error:erlang(erlang:port_command/3)
Error:erlang(erl_scan:token_info/2)
Error:erlang(file:read_file_info/2)
Error:erlang(io_lib:write_unicode_string/1)
Error:erlang(lists:keyfind/3)
Error:erlang(unicode:characters_to_binary/1)
Error:erlang(unicode:characters_to_list/1)

Some of these can be fixed easily, some cannot. My advice in case you have plans for EL5 builds (I hope you don't have them yet) is just to forget about that.

* You didn't package include/elixir.hrl Whenever package it or not is entirely depends on the typical workflow which involves elixir - if you will use it from within other erlang packages then it *might* (I'm not sure) be useful, otherwise it may not. If I were you I'd rather package it - I see that files files from tests/erlang/ have "-include("elixir.hrl") directive so one could use it this way.

Otherwise it looks quite good.

Comment 3 Rick Elrod 2012-05-26 18:01:40 UTC
Thanks for the review!

I've updated the spec with your suggestions.

Same URLs:

Spec URL: http://codeblock.fedorapeople.org/packages/elixir/elixir.spec
SRPM URL: http://codeblock.fedorapeople.org/packages/elixir/elixir-0.5.0-1.20120526git6052352.fc18.src.rpm

I'm not too worried about EL5 builds, but F16 and EPEL 6 will be nice, when Erlang gets updated there. :)

Here's a (successful) rawhide scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=4104402

And rpmlint output from the updated spec has not changed:

[ricky@t520 rpmbuild]$ rpmlint ./SPECS/elixir.spec 
./SPECS/elixir.spec: W: invalid-url Source0: elixir-lang-elixir-v0.5.0-0-g6052352.tar.gz
0 packages and 1 specfiles checked; 0 errors, 1 warnings.


[ricky@t520 rpmbuild]$ rpmlint ./RPMS/noarch/elixir-0.5.0-1.20120526git6052352.fc18.noarch.rpm 
elixir.noarch: W: no-manual-page-for-binary iex
elixir.noarch: W: no-manual-page-for-binary elixirc
elixir.noarch: W: no-manual-page-for-binary elixir
1 packages and 0 specfiles checked; 0 errors, 3 warnings.

Comment 4 Peter Lemenkov 2012-05-26 18:52:37 UTC
REVIEW:

Legend: + = PASSED, - = FAILED, 0 = Not Applicable

+ rpmlint is almost silent

sulaco ~/rpmbuild/SPECS: rpmlint ../RPMS/noarch/elixir-0.5.0-1.20120526git6052352.fc18.noarch.rpm ../SRPMS/elixir-0.5.0-1.20120526git6052352.fc18.src.rpm 
elixir.noarch: W: no-manual-page-for-binary iex
elixir.noarch: W: no-manual-page-for-binary elixirc
elixir.noarch: W: no-manual-page-for-binary elixir
elixir.src: W: invalid-url Source0: elixir-lang-elixir-v0.5.0-0-g6052352.tar.gz
2 packages and 0 specfiles checked; 0 errors, 4 warnings.
sulaco ~/rpmbuild/SPECS: 


+ The package is named according to the  Package Naming Guidelines.
+ The spec file name matches the base package %{name}, in the format %{name}.spec.
+ The package meets the Packaging Guidelines.
+ The package is licensed with a Fedora approved license and meets the Licensing Guidelines.
+ The License field in the package spec file matches the actual license (Apache Software License 2.0 and Erlang Public License).
+ The file, containing the text of the license(s) for the package, is included in %doc.
+ The spec file is written in American English.
+ The spec file for the package is legible.
+ The sources used to build the package, match the upstream source, as provided in the spec URL.

sulaco ~/rpmbuild/SPECS: sha256sum ../SOURCES/elixir-lang-elixir-v0.5.0-0-g6052352.tar.gz ~/Desktop/elixir-lang-elixir-v0.5.0-0-g6052352.tar.gz 
adcb2be56d4abe5c43244318d23696b14a1158a89a2260a8317a4689c5949c59  ../SOURCES/elixir-lang-elixir-v0.5.0-0-g6052352.tar.gz
adcb2be56d4abe5c43244318d23696b14a1158a89a2260a8317a4689c5949c59  /home/petro/Desktop/elixir-lang-elixir-v0.5.0-0-g6052352.tar.gz
sulaco ~/rpmbuild/SPECS:

+ The package successfully compiles and builds into binary rpms on at least one primary architecture.
+ All build dependencies are listed in BuildRequires.
0 No need to handle locales.
0 No shared library files.
+ The package does NOT bundle copies of system libraries.
+ The package is not designed to be relocatable.
+ The package owns all directories that it creates.
+ The package does not list a file more than once in the spec file's %files listings.
+ Permissions on files are set properly.
+ The package has a %clean section, which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT).
+ The package consistently uses macros.
+ The package contains code, or permissible content.
0 No extremely large documentation files.
+ Anything, the package includes as %doc, does not affect the runtime of the application.
0 No C/C++ header files.
0 No static libraries.
0 No pkgconfig(.pc) files.
0 The package doesn't contain library files with a suffix (e.g. libfoo.so.1.1).
0 No devel sub-package.
+ The package does NOT contain any .la libtool archives.
0 Not a GUI application.
+ The package does not own files or directories already owned by other packages.
+ At the beginning of %install, the package runs rm -rf %{buildroot} (or $RPM_BUILD_ROOT).
+ All filenames in rpm packages are valid UTF-8.


I don't see any other issues so this package is


APPROVED.


please add me (FAS name 'peter') to the InitialCC list. I'd like to stay informed about changes in the Erlang-related packages.

Comment 5 Rick Elrod 2012-05-26 19:03:45 UTC
New Package SCM Request
=======================
Package Name: elixir
Short Description: A modern approach to programming for the Erlang VM
Owners: codeblock
Branches: f17
InitialCC: peter

Comment 6 Kevin Fenzi 2012-05-27 01:50:04 UTC
Git done (by process-git-requests).

Comment 7 Fedora Update System 2012-05-27 03:59:25 UTC
elixir-0.5.0-1.20120526git6052352.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/elixir-0.5.0-1.20120526git6052352.fc17

Comment 8 Fedora Update System 2012-05-28 01:18:40 UTC
elixir-0.5.0-1.20120526git6052352.fc17 has been pushed to the Fedora 17 testing repository.

Comment 9 Fedora Update System 2012-06-05 23:01:53 UTC
elixir-0.5.0-1.20120526git6052352.fc17 has been pushed to the Fedora 17 stable repository.

Comment 10 Peter Lemenkov 2013-10-23 18:00:10 UTC
Package Change Request
======================
Package Name: elixir
InitialCC: erlang-sig

Comment 11 Gwyn Ciesla 2013-10-23 18:21:31 UTC
Done.


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