Hi Joe,
This is what semver [1] says about changes in "patch" version:
PATCH version when you make backwards-compatible bug fixes.
It specifically speaks about "bug fixes". I can't see any bug which
freezing all strings in generated .gemspec solves. Such change should
never be part of the patch release.
And what I am doing with the "gem spec" output is my business, I might
just checking its checksum, or I might modify it, it doesn't really
matter. And since upstream has no idea what I do with the output and for
what purpose, it should do only bugfixes. I thought that is the whole
idea of semver ...
Vít
[1]
http://semver.org/
Dne 19.11.2016 v 00:06 Joe Rafaniello napsal(a):
Hi Vit,
I'm not sure how this is something that upstream ruby/rubygems can
know. How is this a breaking change?
It's completely compatible with older versions of ruby.
We're tying our .spec file to very specific details of a .gemspec and
hacking it with sed.
Anytime we modify upstream source code in .spec files, we are risking
breakage.
If you have PRs on upstream repos that will help to remove this
technical debt from our spec files, please provide links
so that we can support them and work toward their acceptance.
thanks,
Joe
On Fri, Nov 18, 2016 at 3:38 PM, Vít Ondruch <vondruch(a)redhat.com
<mailto:vondruch@redhat.com>> wrote:
Hi,
I am slowly pushing Ruby 2.3.2 into Fedora.
Unfortunately, part of Ruby 2.3.2 is update of RubyGems and this
update
has one annoying consequence. RubyGems developers decided, that it is
good idea to freeze all strings in generated .gemspec file. But
because
of this, there might be several rubygem- packages FTBFS. For example,
rubygem-execjs fails to build with following errror:
```
+ gem build execjs.gemspec
WARNING: See
http://guides.rubygems.org/specification-reference/
<
http://guides.rubygems.org/specification-reference/> for help
ERROR: While executing gem ... (Gem::InvalidSpecificationException)
["lib/execjs/support/jscript_runner.js",
"lib/execjs/support/json2.js"] are not files
```
This is because there are some files removed from the package and the
previous sed:
```
+ sed -i -e '/files/ s|"lib/execjs/support/jscript_runner.js", ||'
-e
'/files/ s|"lib/execjs/support/json2.js", ||' execjs.gemspec
```
Does not match/substitute anything, due to .freeze call :/ This is the
fix for rubygem-execjs:
```
$ git diff
diff --git a/rubygem-execjs.spec b/rubygem-execjs.spec
index b2df67c..fddb541 100644
--- a/rubygem-execjs.spec
+++ b/rubygem-execjs.spec
@@ -41,8 +41,8 @@ gem unpack %{SOURCE0}
gem spec %{SOURCE0} -l --ruby > %{gem_name}.gemspec
%patch0 -p1
-sed -i -e '/files/ s|"lib/execjs/support/jscript_runner.js", ||'
\
- -e '/files/ s|"lib/execjs/support/json2.js", ||'
%{gem_name}.gemspec
+sed -i -e '/files/
s|"lib/execjs/support/jscript_runner.js".freeze, ||' \
+ -e '/files/ s|"lib/execjs/support/json2.js".freeze, ||'
%{gem_name}.gemspec
%build
# Create the gem as gem install only works on a gem file
```
I'm sorry for any inconvenience, but suggest to complain to
Ruby/RubyGems upstream, since minor/teeny version changes should not
break anything ...
Vít
_______________________________________________
ruby-sig mailing list -- ruby-sig(a)lists.fedoraproject.org
<mailto:ruby-sig@lists.fedoraproject.org>
To unsubscribe send an email to
ruby-sig-leave(a)lists.fedoraproject.org
<mailto:ruby-sig-leave@lists.fedoraproject.org>
_______________________________________________
ruby-sig mailing list -- ruby-sig(a)lists.fedoraproject.org
To unsubscribe send an email to ruby-sig-leave(a)lists.fedoraproject.org