Ruby 2.2
by Vít Ondruch
Hi everybody,
Since Ruby 2.2 is going to be released during Christmas and -preview1
release is imminent (this Wednesday?), it is probably time to start
looking into its packaging. So here is the updated .spec file [1] and
scratch build [2], which can be finally build on all platforms. Sorry,
no Copr for you, since Ruby's build fails there due to old RHEL kernel :/.
What has changed from packaging point of view? Luckily, not much, but
here are a few bullets which comes to my mind:
* RPM 4.12 introduces new %load function, which is used to load RPM
macros during RPM build. This allowed to drop my custom RPM macro [3].
On the other hand, you'll be able to build the Ruby only on F21+
(luckily, you should be able to build SRPM everywhere).
* The RubyGems filesystem was not explicit enough, so there might be
something accidentally packages. This is now more explicit, so we should
be safer.
* Ruby now ships with MiniTest and Test::Unit. The very good news is
that they are installed so far as a regular gems. This means that you
have to always specify them in your Gemfile, if you are using Bundler,
but this is generally step in good direction. I hope that upstream will
not change their mind :) Due to this change, we have new subpackages
rubygem-test-unit (and rubygem-power_assert, which is now Test::Unit's
dependency). No more %{_bindir}/testrb (but nobody is using it these
days anyway, right? ;)
* Some prevailing test failures were resolved, some others introduced,
but hopefully they'll get resolved prior stable release.
Generally, I'd say that not much has changed since 2.1, which is good news.
Please test the packaging if you can and let me know about any issues
you encountered.
Also, if you have any other suggestions about Ruby packaging in general,
what we could improve etc, this is probably good time to share. It seems
that OpenSUSE guys are improving their packaging, so you might want to
get some inspiration there [4, 5, 6] ;)
Vít
[1] http://pkgs.fedoraproject.org/cgit/ruby.git/log/?h=private-ruby-2.2
[2] http://koji.fedoraproject.org/koji/taskinfo?taskID=7578843
[3]
http://pkgs.fedoraproject.org/cgit/ruby.git/commit/?h=private-ruby-2.2&id...
[4] https://build.opensuse.org/package/show/home:darix:ruby/ruby-common
[5] https://build.opensuse.org/package/show/home:darix:ruby/ruby2.2
[6] https://github.com/openSUSE/gem2rpm/commits/master
5 months, 4 weeks
ruby-sig FAS group and rubygems build in Copr
by Vít Ondruch
Hi everybody,
You probably noticed, that there is ongoing build of all Python packages
in Copr [1] and today, I was approached by Miroslav Suchý, that he'd
like to do the same for rubygems. And this in turn triggered these
questions:
1) Would you be interested to create ruby-sig group in FAS? We could
make the group owner of some packages and in turn, the members of the
group could maintain the packages, without explicitly asking for some ACLs.
2) For the Copr rebuild of rubygems, there needs to be some FAS group
again. Python guys are asking for "pypi-builds-sig" group [2], hence
following their lead, I'd like to ask for "rubygems-builds-sig" group
(note that although I don't like the '-sig' suffix in this case, it is
mandated by the infrastructure ticket template).
So what are your thoughts?
Vít
[1]
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.o...
[2] https://fedorahosted.org/fedora-infrastructure/ticket/5311
6 years, 11 months
[ANN] gem2rpm 1.0.0
by Vít Ondruch
Hi everybody,
I spent last few days working on gem2rpm. There got some nice improvements:
* Better handling %files section.
* Improved handling of {Build,}Requires.
* Basic detection of test frameworks.
* Updated and simplified templates for Fedora 26+.
Due to this changes, I decided it is about the time to release version
1.0.0. You can get the package from RubyGems.org or from Fedora/EPEL
updates-testing packages.
Thanks everybody who helped with this release!
Vít
6 years, 11 months
Brittle gemspec surgery logic in rawhide
by Dan Allen
I'm seeing the following message in the build failure in the gem I
maintain, asciidoctor:
+ rm Rakefile
+ sed -i 's|"Rakefile",||g' asciidoctor.gemspec
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.0fctL3
+ umask 022
+ cd /builddir/build/BUILD
+ cd asciidoctor-1.5.4
+ gem build asciidoctor.gemspec
WARNING: See http://guides.rubygems.org/specification-reference/ for help
ERROR: While executing gem ... (Gem::InvalidSpecificationException)
["Rakefile"] are not files
That sed expression is highly dependent on how files are specified in a
gemspec, and it doesn't match how the asciidoctor gemspec defines files.
Can this alteration be updated to be more robust?
One way would be to look for the files assignment and subtract an entry
from it. Something like:
sed -i "s|\.files *=.*|& - ['Rakefile']|" asciidoctor.gemspec
Until this is fixed, my gem is going to fail in rawhide because I can't
change the already released gem. I suspect there are others that are
failing as well.
-Dan
--
Dan Allen | @mojavelinux | https://twitter.com/mojavelinux
6 years, 11 months
Rails 5 update
by Pavel Valena
Rails 5.1 is coming with RC recently released.
As a first overview, I run `gem compare`[1] to figure out new or updated dependencies,
which concludes following:
[deps = dependencies, dep = dependency]
* new runtime dep 'erubi' (instead of 'erubis')
- adds no deps
* update to rubygem-arel ~> 8.0
- no deps change
* update to rubygem-nio4r ~> 2.0
- adds dep guard-rspec, which depends on
. guard (which requires new deps lumberjack and notiffany)
. guard-compat (has no deps)
- adds dep 'rspec-retry'
. adds no deps
According to Vít[cc], the 'guard' dependency could be just a development one, and 'rspec-retry' plausibly too. Jun[cc] confirmed to work on an update of rubygem-nio4r.
Any help with packaging new Rails deps is greatly appreciated!
[1] https://github.com/fedora-ruby/gem-compare
`gem compare` output for respective gems:
```
>> activesupport
Fetching: activesupport-5.1.0.rc1.gem (100%)
Compared versions: ["5.0.2", "5.1.0.rc1"]
DIFFERENT required_rubygems_version:
5.0.2: >= 0
5.1.0.rc1: > 1.3.1
>> activemodel
Fetching: activemodel-5.1.0.rc1.gem (100%)
Compared versions: ["5.0.2", "5.1.0.rc1"]
DIFFERENT required_rubygems_version:
5.0.2: >= 0
5.1.0.rc1: > 1.3.1
DIFFERENT runtime dependencies:
5.0.2->5.1.0.rc1:
* Updated:
activesupport from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
>> activerecord
Fetching: activerecord-5.1.0.rc1.gem (100%)
Compared versions: ["5.0.2", "5.1.0.rc1"]
DIFFERENT required_rubygems_version:
5.0.2: >= 0
5.1.0.rc1: > 1.3.1
DIFFERENT runtime dependencies:
5.0.2->5.1.0.rc1:
* Updated:
activesupport from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
activemodel from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
arel from: ["~> 7.0"] to: ["~> 8.0"]
>> actionview
Fetching: actionview-5.1.0.rc1.gem (100%)
Compared versions: ["5.0.2", "5.1.0.rc1"]
DIFFERENT required_rubygems_version:
5.0.2: >= 0
5.1.0.rc1: > 1.3.1
DIFFERENT files:
5.0.2->5.1.0.rc1:
* Added:
lib/action_view/template/handlers/erb/
lib/assets/compiled/
DIFFERENT runtime dependencies:
5.0.2->5.1.0.rc1:
* Deleted:
erubis ["~> 2.7.0"] (runtime)
* Added:
erubi ["~> 1.4"] (runtime)
* Updated:
activesupport from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
DIFFERENT development dependencies:
5.0.2->5.1.0.rc1:
* Updated:
actionpack from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
activemodel from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
>> actionpack
Fetching: actionpack-5.1.0.rc1.gem (100%)
Compared versions: ["5.0.2", "5.1.0.rc1"]
DIFFERENT required_rubygems_version:
5.0.2: >= 0
5.1.0.rc1: > 1.3.1
DIFFERENT files:
5.0.2->5.1.0.rc1:
* Added:
lib/action_dispatch/system_testing/
lib/action_dispatch/system_testing/test_helpers/
DIFFERENT runtime dependencies:
5.0.2->5.1.0.rc1:
* Updated:
activesupport from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
actionview from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
DIFFERENT development dependencies:
5.0.2->5.1.0.rc1:
* Updated:
activemodel from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
>> actionmailer
Fetching: actionmailer-5.1.0.rc1.gem (100%)
Compared versions: ["5.0.2", "5.1.0.rc1"]
DIFFERENT required_rubygems_version:
5.0.2: >= 0
5.1.0.rc1: > 1.3.1
DIFFERENT runtime dependencies:
5.0.2->5.1.0.rc1:
* Updated:
actionpack from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
actionview from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
activejob from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
>> actioncable
Fetching: actioncable-5.1.0.rc1.gem (100%)
Compared versions: ["5.0.2", "5.1.0.rc1"]
DIFFERENT required_rubygems_version:
5.0.2: >= 0
5.1.0.rc1: > 1.3.1
DIFFERENT runtime dependencies:
5.0.2->5.1.0.rc1:
* Updated:
actionpack from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
nio4r from: ["< 3.0", ">= 1.2"] to: ["~> 2.0"]
DIFFERENT development dependencies:
5.0.2->5.1.0.rc1:
* Deleted:
blade ["~> 0.5.1"] (development)
>> railties
Fetching: railties-5.1.0.rc1.gem (100%)
Compared versions: ["5.0.2", "5.1.0.rc1"]
DIFFERENT required_rubygems_version:
5.0.2: >= 0
5.1.0.rc1: > 1.3.1
DIFFERENT files:
5.0.2->5.1.0.rc1:
* Deleted:
lib/rails/commands/
* Added:
lib/rails/command/
lib/rails/commands/application/
lib/rails/commands/console/
lib/rails/commands/dbconsole/
lib/rails/commands/destroy/
lib/rails/commands/generate/
lib/rails/commands/help/
lib/rails/commands/new/
lib/rails/commands/plugin/
lib/rails/commands/rake/
lib/rails/commands/runner/
lib/rails/commands/secrets/
lib/rails/commands/server/
lib/rails/commands/test/
lib/rails/commands/version/
lib/rails/generators/rails/encrypted_secrets/
lib/rails/generators/rails/encrypted_secrets/templates/config/
lib/rails/generators/rails/system_test/
lib/rails/generators/test_unit/system/
lib/rails/generators/test_unit/system/templates/
lib/rails/plugin/
lib/rails/generators/rails/app/templates/bin/setup.tt
(!) File is not executable
lib/rails/generators/rails/app/templates/bin/update.tt
(!) File is not executable
lib/rails/generators/rails/app/templates/bin/yarn
(!) File is not executable
DIFFERENT runtime dependencies:
5.0.2->5.1.0.rc1:
* Updated:
activesupport from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
actionpack from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
DIFFERENT development dependencies:
5.0.2->5.1.0.rc1:
* Updated:
actionview from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
>> rails
Fetching: rails-5.1.0.rc1.gem (100%)
Compared versions: ["5.0.2", "5.1.0.rc1"]
DIFFERENT runtime dependencies:
5.0.2->5.1.0.rc1:
* Updated:
activesupport from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
actionpack from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
actionview from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
activemodel from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
activerecord from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
actionmailer from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
activejob from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
actioncable from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
railties from: ["= 5.0.2"] to: ["= 5.1.0.rc1"]
>> nio4r
Fetching: nio4r-1.2.1.gem (100%)
Fetching: nio4r-2.0.0.gem (100%)
Compared versions: ["1.2.1", "2.0.0"]
DIFFERENT description:
1.2.1: New IO for Ruby
2.0.0: Cross-platform asynchronous I/O primitives for scalable network clients and servers. Inspired by the Java NIO API, but simplified for ease-of-use.
DIFFERENT email:
1.2.1: ["tony.arcieri(a)gmail.com"]
2.0.0: ["bascule(a)gmail.com"]
DIFFERENT homepage:
1.2.1: https://github.com/celluloid/nio4r
2.0.0: https://github.com/socketry/nio4r
DIFFERENT require_paths:
1.2.1: ["/home/pvalena/.gem/ruby/extensions/x86_64-linux/2.3.0/nio4r-1.2.1", "lib"]
2.0.0: ["/home/pvalena/.gem/ruby/extensions/x86_64-linux/2.3.0/nio4r-2.0.0", "lib"]
DIFFERENT required_ruby_version:
1.2.1: >= 0
2.0.0: >= 2.2.2
DIFFERENT summary:
1.2.1: NIO provides a high performance selector API for monitoring IO objects
2.0.0: New IO for Ruby
DIFFERENT files:
1.2.1->2.0.0:
* Deleted:
.rubocop_todo.yml
* Added:
.ruby-version
Guardfile
* Changed:
Rakefile +2/-1
(!) Shebang probably lost: #!/usr/bin/env rake
examples/echo_server.rb +1/-0
(!) New permissions: 100644 -> 100755
(!) File is now executable!
DIFFERENT Gemfile dependencies
1.2.1->2.0.0:
* Added:
guard-rspec [">= 0"]
pry [">= 0"]
rspec-retry [">= 0"]
* Updated
rspec from: ["~> 3.0"] to: ["~> 3"]
rubocop from: ["= 0.36.0"] to: ["= 0.46.0"]
>> arel 7.1.4 8.0.0
Fetching: arel-7.1.4.gem (100%)
Fetching: arel-8.0.0.gem (100%)
```
Regards,
Pavel Valena
Associate Software Engineer
Brno, Czech Republic
RED HAT | TRIED. TESTED. TRUSTED.
All of the airlines in the Fortune Global 500 rely on Red Hat.
Find out why at Trusted | Red Hat
<http://www.redhat.com/en/about/trusted>
6 years, 12 months