From Fedora Project Wiki
(updates for pending 3.x release)
(→‎Open review requests: literati is compmlete)
 
(64 intermediate revisions by the same user not shown)
Line 5: Line 5:
# Get all Gitorious' dependencies into Fedora.
# Get all Gitorious' dependencies into Fedora.
#* Several Rubygems.
#* Several Rubygems.
#* Several Javascripts.
# Get Gitorious into Fedora.
# Get Gitorious into Fedora.
#* Bundler issues: If we use different Gem versions than upstream, Bundler wants to write to Gemfile and Gemfile.lock. We should [https://lists.fedoraproject.org/pipermail/ruby-sig/2013-July/001367.html look into bundler_ext]. This will require the [https://bugzilla.redhat.com/show_bug.cgi?id=878421 bundler_ext gem in Fedora], and a lot of testing.
#* Bundler issues: If we use different Gem versions than upstream, Bundler wants to write to Gemfile and Gemfile.lock. We will use bundler_ext to work around this. This will require the {{Pkg|rubygem-bundler_ext}} package and a lot of testing.
#* Init scripts: Create equivalent systemd unit files for Fedora & RHEL 7.
#* Init scripts: Create equivalent systemd unit files for Fedora & RHEL 7.
#* Ruby version: Upstream "next" branch works with Ruby 1.8.7, 1.9.3, and 2.0.0. I'm working with upstream to maintain this compatibility via [https://ci.gitorious.org/jenkins/ Jenkins].
#* Ruby version: Upstream "master" branch works with Ruby 1.9.3 and 2.0.0. I'm working with upstream to maintain this compatibility via [https://ci.gitorious.org/jenkins/ Jenkins].
#* Gem versions: Upstream uses different Gem versions than Fedora has. The biggest difference is Rails, but others are documented below. Plan of attack is to ensure that the test suite passes with both.
#* Gem versions: Upstream uses different Gem versions than Fedora has. The biggest difference is Rails, but others are documented below. Plan of attack is to ensure that the test suite passes with both.
#* Javascript libs: There are several Git submodules in upstream (bane, capillary-js, raphael, spin.js, others). We must unbundle these and [[JavaScript libraries packaging guideline draft|package them]] separately.
#* Javascript libs: There are several Git submodules in upstream (bane, capillary-js, raphael, spin.js, others). We must unbundle these and [[JavaScript libraries packaging guideline draft|package them]] separately.
Line 19: Line 20:
#* Various Rubygems must be branched for EPEL.
#* Various Rubygems must be branched for EPEL.
# Get Gitorious into EPEL.
# Get Gitorious into EPEL.
#* Ruby 1.8 will work for now, but upstream plans to drop support eventually. Hopefully that happens after RHEL 7 is released.
#* Unfortunately upstream has dropped support for Ruby 1.8, so formal EPEL inclusion can only happen in EPEL 7.
#* riddle doesn't like the version of RSpec in EPEL 6.
#* bundler is not in EPEL 6, so we may end up patching out bundler support.


== Dependencies ==
== Open review requests ==


* [[File:Test-result-fail.png|alt=Fail|link=]] - The package is not in Fedora/EPEL
Please review some of these. I'm willing to trade reviews.
* [[File:Artwork_EchoDevelopment_dialog-question16.png|alt=Pass|link=]] - The package is not in Fedora/EPEL, and I'm unsure how to proceed (lib might be deprecated, etc.)
* [[File:Test-result-inprogress.gif|alt=Inprogress|link=]] - The package spec is written, but not yet accepted into Fedora/EPEL
* [[File:Test-result-warn.png|alt=Pass|link=]] - The package is present in Fedora/EPEL and versions differ from upstream
* [[File:Test-result-pass.png|alt=Pass|link=]] - The package is present in Fedora/EPEL and versions match upstream
 
(FYI, the ordering in these tables matches [https://gitorious.org/gitorious/mainline/blobs/master/Gemfile upstream's Gemfile].)
 
=== Gitorious Web Application Gems ===
{|border="2" cellpadding="2" cellspacing="0"
! Gem !! Upstream Gemfile !! Fedora !! EPEL 6
|-
| rails || 2.3.17 || {{result|warn}} 3.0/3.2 in F18  || {{result|inprogress}} 2.3.17, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-rails.git git]
|-
| activeresource || 2.3.17 || {{result|warn}} 3.0/3.2 in F18 || {{result|inprogress}} 2.3.17, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-activeresource.git git]
|-
| actionmailer || 2.3.17 || {{result|warn}} 3.0/3.2 in F18  || {{result|inprogress}} 2.3.17, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-actionmailer.git git]
|-
| chronic        || 0.3.0<ref name="GoneInRails3">Gone in Gitorious's upstream/feature/rails3 branch</ref>  || {{result|warn}} 0.6.6  || {{result|inprogress}} 0.3.0, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-chronic.git git]
|-
| geoip          || 0.8.9 || {{result|inprogress}} 1.2.1, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-geoip.git git]  || {{result|inprogress}} 1.2.1, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-geoip.git git]
|-
| daemons        || 1.1.0  || {{result|warn}} 1.0.10<ref>RFE filed at https://bugzilla.redhat.com/906159</ref> || {{result|inprogress}} 1.1.0, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-daemons.git git]
|-
| hoe            || 2.8.0<ref name="GoneInRails3" />  || {{result|warn}} 2.12.5  || {{result|inprogress}} 2.8.0, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-hoe.git git]
|-
| echoe          || 4.3.1<ref name="GoneInRails3" />  || {{result|pass}} 4.3.1  || {{result|inprogress}} 4.3.1, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-echoe.git git]
|-
| ruby-yadis      || 0.3.4  ||  {{result|inprogress}} 0.3.4, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-ruby-yadis.git git] || {{result|inprogress}} 0.3.4, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-ruby-yadis.git git]
|-
| ruby-openid      || 2.2.2  || {{result|warn}} 2.1.7<ref>RFE filed at https://bugzilla.redhat.com/903854</ref> || {{result|inprogress}} 2.2.2, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-ruby-openid.git git]
|-
| rdiscount      || 1.3.1.1 || {{result|warn}}1.6.3.2 || {{result|inprogress}} 1.3.1.1, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-rdiscount.git git]
|-
| mime-types      || 1.16  || {{result|pass}} 1.16 || {{result|pass}} 1.16
|-
| diff-lcs        || 1.1.2  || {{result|pass}} 1.1.2  || {{result|pass}} 1.1.2
|-
| oauth          || 0.4.4  || {{result|warn}} 0.4.7 in F19 || {{result|inprogress}} 0.4.4, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-oauth.git git]
|-
| typhoeus        || Buildreq for oauth  || {{result|pass}} || {{result|inprogress}} [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-typhoeus.git git]
|-
| curb            || Buildreq for oauth  || {{result|pass}} || {{result|inprogress}} [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-curb.git git]
|-
| actionpack      || Buildreq for oauth  || {{result|warn}} 3.2 || {{result|inprogress}} 2.3.17 [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-actionpack.git git]
|-
| paperclip      || 2.7.4  || {{result|inprogress}} 3.1.4, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-paperclip.git git] || {{result|inprogress}} 2.7.4, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-paperclip.git git]
|-
| activesupport  || Dep for paperclip (2.3.17)  || {{result|warn}} 3.2.11 in F18 || {{result|inprogress}} 2.3.17, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-activesupport.git git]
|-
| activerecord    || Dep for paperclip (2.3.17)  || {{result|warn}} 3.2.11 in F18  || {{result|inprogress}} 2.3.17, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-activerecord.git git]
|-
| cocaine        || Dep for paperclip  || {{result|inprogress}} 0.2.1, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-cocaine.git git] || {{result|inprogress}} 0.3.0, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-cocaine.git git]
|-
| bourne          || Dep for cocaine    || {{result|inprogress}} 1.1.2, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-bourne.git git] || {{result|inprogress}} 1.0, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-bourne.git git]
|-
| state_machine  || 0.9.4  || {{result|warn}} 1.1.2 || {{result|warn}} 1.1.2
|-
| rack            || 1.0.1  || {{result|warn}} 1.4.0  || {{result|warn}} 1.1.0
|-
| thinking-sphinx || 1.4.13 || {{result|inprogress}} 1.4.13, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-thinking-sphinx.git git] || {{result|inprogress}} 1.4.13, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-thinking-sphinx.git git]
|-
| after_commit    || Dep for thinking-sphinx  || {{result|inprogress}} 1.5.3, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-after_commit.git git] || {{result|inprogress}} 1.5.3, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-after_commit.git git]
|-
| activerecord-mysql2-adapter || BuildReq for thinking-sphinx  || {{result|inprogress}} 1.0.10 [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-activerecord-mysql2-adapter.git git] || {{result|inprogress}} 1.0.10 [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-activerecord-mysql2-adapter.git git]
|-
| riddle          || Dep for thinking-sphinx (1.5.3)  || {{result|inprogress}} 1.5.3, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-riddle.git git] || {{result|inprogress}} 1.5.3, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-riddle.git git]
|-
| mysql2          || Dep for riddle || {{result|inprogress}} 0.3.11, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-mysql2.git git] || {{result|inprogress}} 0.3.11, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-mysql2.git git]
|-
| yard            || Dep for riddle || {{result|pass}} 0.8.2.1 in F19 || {{result|inprogress}} 0.8.2.1, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-yard.git git]
|-
| rspec-core      || Dep for yard || {{result|pass}} || {{result|pass}}
|-
| rspec-expectations || Dep for rspec-core || {{result|pass}} || {{result|pass}}
|-
| rspec-mocks    || Dep for rspec-core || {{result|pass}} || {{result|pass}}
|-
| builder        || 3.0.0  || {{result|warn}} 3.1.4 in F19 || {{result|inprogress}} 3.0.0, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-builder.git git] <ref>Request for EPEL 6 branch: https://bugzilla.redhat.com/723145</ref>
|-
| mysql          || 2.8.1  || {{result|warn}} 2.8.2? || {{result|warn}} 2.8.2?
|-
| validates_url_format_of || 0.1.1  || {{result|inprogress}} 0.3.0, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-validates_url_format_of.git git] || {{result|inprogress}} 0.1.1, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-validates_url_format_of.git git]
|-
| acts-as-taggable-on || 2.0.6 || {{result|inprogress}} 2.3.3, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-acts-as-taggable-on.git git] || {{result|inprogress}} 2.0.6, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-acts-as-taggable-on.git git]
|-
| will_paginate  || 2.3.15 || {{result|warn}} 3.0.2 || {{result|inprogress}} 2.3.15, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-will_paginate.git git]
|-
| just_paginate  || 0.0.6 || {{result|fail}} || {{result|inprogress}} 0.0.6, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-just_paginate.git git]
|-
| shoulda-context || BR for just_paginate || {{result|fail}} || {{result|inprogress}} 1.0.2, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-shoulda-context.git git]
|-
| hodel_3000_compliant_logger || 0.1.0, gone in rails3 || {{result|inprogress}} 0.1.0, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-hodel_3000_compliant_logger.git git] || {{result|inprogress}} 0.1.0, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-hodel_3000_compliant_logger.git git]
|-
| net-ldap  || 0.3.1 || {{result|pass}} 0.3.1 in F18 || {{result|inprogress}} 0.3.1, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-net-ldap.git git]
|-
| capillary      || 1.0.2  || {{result|inprogress}} 1.0.2, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-capillary.git git] || {{result|inprogress}} 1.0.2, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-capillary.git git]
|-
| mini_shoulda    || BR for capillary || {{result|inprogress}} 0.5.0, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-mini_shoulda.git git] || N/A<ref>EPEL 6's minitest 1.6.0 is too old for mini_shoulda, so we cannot run the test suite for mini_shoulda (and by extension, capillary).</ref>
|-
| nokogiri        || 1.5.0  || {{result|warn}} 1.5.5  || {{result|warn}} 1.4.3.1, <br /> 1.5.0 in [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-nokogiri.git git]
|-
| unicorn        || 4.3.1  || {{result|fail}}<ref>Unicorn package review request at https://bugzilla.redhat.com/786636</ref> || {{result|inprogress}} 4.3.1 in [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-unicorn.git git]
|-
| kgio          || Dep for unicorn (2.7.4)  || {{result|warn}} 2.8.0 || {{result|warn}} 2.8.0 in epel-testing,<br /> 2.7.4 in [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-kgio.git git]
|-
| raindrops      || Dep for unicorn (0.10.0) || {{result|pass}} 0.10.0 || {{result|warn}} 0.10.0 in epel-testing
|-
| exception_notification || 1.0.20090728 || {{result|inprogress}} 2.6.1, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-exception_notification.git git] || {{result|inprogress}} 1.0.20090728, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-exception_notification.git git]
|-
| revo-ssl_requirement || 1.1.0 || {{result|warn}}unneeded?<ref name="ssl_requirement">[http://stackoverflow.com/questions/3634100/rails-3-ssl-deprecation SSL requirement is built into Rails 3]</ref> || {{result|inprogress}} 1.1.0, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-revo-ssl_requirement.git git]
|-
| ruby-hmac || 0.4.0 || {{result|warn}} unneeded<ref>https://groups.google.com/d/topic/gitorious/yNDA9ipKe8I/discussion</ref> || {{result|inprogress}} 0.4.0 in [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-ruby-hmac.git git]
|-
| json            || 1.7.7  || {{result|warn}} 1.7.5 || {{result|warn}} 1.4.6, <br /> 1.7.7 in [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-json.git git]
|}
 
=== Queue Manager Gem dependencies ===


{|border="2" cellpadding="2" cellspacing="0"
{|border="2" cellpadding="2" cellspacing="0"
! Gem !! Upstream Gemfile !! Fedora !! EPEL 6
! Gem !! Package Review Request
|-
|-
| resque || 1.9.8  || {{result|fail}} || {{result|fail}}
| resque-cleaner || {{bz|1037278}}
|-
|-
| redis || 2.2.2  || {{result|fail}} || {{result|fail}}
| resque-job-stats || {{bz|1037900}}
|-
|-
| redis-namespace  || 0.7.0  || {{result|fail}} || {{result|fail}}
| paperclip || {{bz|1065682}}
|-
|-
| sinatra        || Dep for resque 1.2.8    || {{result|warn}} 1.3.2 in F19 || {{result|warn}} 1.0
|-
| vegas || Dep for resque 0.1.11 || {{result|fail}} || {{result|fail}}
|-
| SystemTimer || Dep for resque 1.2.3  || {{result|warn}}(gone from Ruby<ref name="SystemTimer">does not build on Fedora 17</ref>) || {{result|fail}}
|}
|}


=== Test suite Gem dependencies ===
== Checking progress with rhgc.rb ==


{|border="2" cellpadding="2" cellspacing="0"
In order to see the list of gems that must still be packaged:
! Gem !! Upstream Gemfile !! Fedora !! EPEL 6
|-
| mocha            || 0.9.10 || {{result|warn}} 0.11.0 || {{result|warn}} 0.9.8
|-
| factory_girl    || 1.3.3, 2.6.4 in rails3  || {{result|warn}} 2.3.2 || {{result|inprogress}} 1.3.3, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-factory_girl.git git]
|-
| shoulda          || 2.9.2, 3.3.2 in rails3  || {{result|warn}} 2.11.3 || {{result|warn}} 2.11.3
|-
| tuxml            || 0.0.1, gone in rails3  || {{result|pass}}unneeded<ref>tuxml is apparently only needed for automated builds inside Hudson. In F17, Gitorious tests crash with "uninitialized constant Test::Unit::AutoRunner::RUNNERS", which comes from tuxml. Remove it and the tests succeed.</ref> || {{result|pass}}
|-
| rots            || git clone (babb555)  || {{result|fail}} || {{result|inprogress}} babb555, [http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-rots.git git]
|-
| capybara        || 1.0.1  || {{result|warn}} 1.1.2  || {{result|fail}}
|-
| rack-test        || Dep for capybara (0.6.2)  || {{result|warn}} 0.6.0  || {{result|warn}} 0.5.4
|-
| selenium-webdriver || Dep for capybara (2.25.0) || {{result|warn}} 2.3.2 || {{result|fail}}
|-
| childprocess    || Dep for selenium-webdriver (0.3.6) || {{result|warn}} 0.2.0  || {{result|fail}}
|-
| ffi              || Dep for selenium-webdriver (1.0.11) || {{result|warn}} 1.0.9 || {{result|warn}} 1.0.9
|-
| multi_json      || Dep for selenium-webdriver (1.3.6) || {{result|warn}} 1.0.3 || {{result|fail}}
|-
| rubyzip          || Dep for selenium-webdriver (0.9.9) || {{result|pass}} 0.9.4 || {{result|fail}}
|-
| xpath            || Dep for capybara (0.1.4)  || {{result|pass}} 0.1.4 || {{result|fail}}
|-
| launchy          || 2.0.5  || {{result|warn}} 0.4.0 || {{result|warn}} 0.3.7
|-
| addressable      || Dep for launchy (2.2.8)  || {{result|pass}} 2.2.6 in F17/F18<br> 2.3.2 in F19 || {{result|fail}} (unneeded?)
|}


=== Possibly optional Gem dependencies ===
# <code>git clone git://gitorious.org/gitorious/mainline.git gitorious</code>
# <code>git clone git://gist.github.com/movitto/6086381 rhgc</code>
# <code>./rhgc/rhgc.rb --gemfile gitorious/Gemfile</code>


{|border="2" cellpadding="2" cellspacing="0"
== Gem dependency graph ==
! Gem !! Upstream Gemfile !! Fedora !! EPEL 6
|-
| foreman (only needed for Procfile tasks) || 0.60.2 || {{result|fail}}  || {{result|fail}}
|-
| thor (Rails dep that we may not need) || Dep for foreman and Rails (0.14.6) || {{result|pass}} 0.14.6 || {{result|fail}}
|-
| stompserver      || 0.9.9<ref name="GoneInRails3" /> || {{result|fail}}<ref>We just need a stomp-compatible server. [https://olezfdtd.wordpress.com/2010/04/22/install-gitorious-on-your-own-fedora-11-server/#section2 ActiveMQ Messaging Server] would work equally well. The stompserver gem needs [https://github.com/drizztbsd/stompserver/commit/b2dd714f9bc6d7b831767cc0d45d7f00cae2bde5 this patch] to not crash on Ruby 1.9. TBD: investigate the "stompserver_ng" fork.</ref>  || {{result|fail}}
|-
| thin (for dev)  || 1.5.0 || {{result|warn}} 1.3.1<ref>See https://bugzilla.redhat.com/837568. Emailed maintainer January 2013.</ref> || {{result|warn}} 1.2.8
|-
| proxymachine (for dev, and git proxy) || 1.2.4 || {{result|fail}} || {{result|fail}}
|-
| eventmachine  || Dep for proxymachine (0.12.10) || {{result|pass}} 0.12.10 || {{result|pass}} 0.12.10
|-
| rake  (for git proxy) || 0.8.7  || {{result|warn}} 0.9.6 in F18<br>10.0.3 in F19 || {{result|pass}} 0.8.7
|-
| stomp (for stomp) || 1.1<ref name="GoneInRails3" />  || {{result|warn}} 1.2.2 || {{result|warn}} 1.1.8
|-
| activemessaging (for active messaging) || 0.7.1<ref name="GoneInRails3" />  || (gone from rails?) || {{result|fail}}
|}
 
=== Bundled (vendored) dependencies ===
These deps are bundled in /vendor:
 
{|border="2" cellpadding="2" cellspacing="0"
! Name !! Bundled version !! Fedora !! EPEL 6
|-
| [https://gitorious.org/diff-display diff-display] || ??? || {{result|fail}}  || {{result|fail}}
|-
| grit || ??? || {{result|warn}} 2.4.1  || {{result|fail}}
|-
| ruby-git || ??? || {{result|warn}} 1.2.5<ref name="rubygem-git">Called "rubygem-git" in Fedora</ref>  || {{result|fail}}
|-
| plugins/localized_dates || ??? || {{result|unknown}}  || {{result|fail}}
|-
| plugins/open_id_authentication || ??? || {{result|unknown}}  || {{result|fail}}
|-
| plugins/restful_authentication || ??? || {{result|unknown}}  || {{result|fail}}
|-
| plugins/routing-filter || ??? || {{result|unknown}}  || {{result|fail}}
|}
 
These deps are git submodules under public/javascripts/lib/:
 
{|border="2" cellpadding="2" cellspacing="0"
! Name !! Bundled version !! Fedora !! EPEL 6
|-
| [https://gitorious.org/buster/bane bane] || 0.4.0 || {{result|inprogress}} 0.4.0, [http://fedorapeople.org/cgit/ktdreyer/public_git/bane.git git] || {{result|inprogress}} 0.4.0, [http://fedorapeople.org/cgit/ktdreyer/public_git/bane.git git]
|-
| [https://gitorious.org/capillary/capillary-js capillary-js] || 0.1.0 || {{result|inprogress}} 0.1.0, [http://fedorapeople.org/cgit/ktdreyer/public_git/capillary-js.git git] || {{result|inprogress}} 0.1.0, [http://fedorapeople.org/cgit/ktdreyer/public_git/capillary-js.git git]
|-
| [https://github.com/DmitryBaranovskiy/raphael.git raphael] || 2.1.0 || {{result|inprogress}} 2.1.0, [http://fedorapeople.org/cgit/ktdreyer/public_git/raphael.git git] || {{result|inprogress}} 2.1.0, [http://fedorapeople.org/cgit/ktdreyer/public_git/raphael.git git]
|-
| [https://github.com/fgnass/spin.js.git spin.js] || 1.2.7 || {{result|inprogress}} 1.2.7, [http://fedorapeople.org/cgit/ktdreyer/public_git/spin.js.git git] || {{result|inprogress}} 1.2.7, [http://fedorapeople.org/cgit/ktdreyer/public_git/spin.js.git git]
|}


You can view the [http://ktdreyer.fedorapeople.org/gitorious/graph.png outstanding Gem dependency chart] ([http://ktdreyer.fedorapeople.org/gitorious/graph.dot graphviz source]). I will attempt to keep this graph up to date, but it is a manual process. For "live" data, see the rhgc.rb section above.


This graph does not take into account Javascript libraries.


<references />
<references />

Latest revision as of 21:07, 8 July 2014

This document outlines the steps to get Gitorious into Fedora and EPEL.

High Level Steps and Issues

Fedora

  1. Get all Gitorious' dependencies into Fedora.
    • Several Rubygems.
    • Several Javascripts.
  2. Get Gitorious into Fedora.
    • Bundler issues: If we use different Gem versions than upstream, Bundler wants to write to Gemfile and Gemfile.lock. We will use bundler_ext to work around this. This will require the rubygem-bundler_ext package and a lot of testing.
    • Init scripts: Create equivalent systemd unit files for Fedora & RHEL 7.
    • Ruby version: Upstream "master" branch works with Ruby 1.9.3 and 2.0.0. I'm working with upstream to maintain this compatibility via Jenkins.
    • Gem versions: Upstream uses different Gem versions than Fedora has. The biggest difference is Rails, but others are documented below. Plan of attack is to ensure that the test suite passes with both.
    • Javascript libs: There are several Git submodules in upstream (bane, capillary-js, raphael, spin.js, others). We must unbundle these and package them separately.
    • GeoIP data: Gitorious bundles GeoIP.dat, which is already available in Fedora as the "GeoIP" package.
    • FHS considerations: for the Gitorious web application itself, we need to discover how to split up the package to fit the FHS conventions of /etc/, /usr/, and so on.

EPEL

  1. Get all Gitorious's dependencies into EPEL.
    • Rails. I don't have experience packaging Rails, and there's been questions about which version to put into EPEL.
    • Various Rubygems must be branched for EPEL.
  2. Get Gitorious into EPEL.
    • Unfortunately upstream has dropped support for Ruby 1.8, so formal EPEL inclusion can only happen in EPEL 7.

Open review requests

Please review some of these. I'm willing to trade reviews.

Gem Package Review Request
resque-cleaner RHBZ #1037278
resque-job-stats RHBZ #1037900
paperclip RHBZ #1065682

Checking progress with rhgc.rb

In order to see the list of gems that must still be packaged:

  1. git clone git://gitorious.org/gitorious/mainline.git gitorious
  2. git clone git://gist.github.com/movitto/6086381 rhgc
  3. ./rhgc/rhgc.rb --gemfile gitorious/Gemfile

Gem dependency graph

You can view the outstanding Gem dependency chart (graphviz source). I will attempt to keep this graph up to date, but it is a manual process. For "live" data, see the rhgc.rb section above.

This graph does not take into account Javascript libraries.