Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Remove Jeweler #27

Open
wants to merge 1 commit into from

1 participant

@timcharper

Gems are just as easy to release without Jeweler than it is with it. It
usually gets needlessly injected as a runtime dependency (the gemspec it
generated for soca did mark itself as a development dependency in one of
the conditional branches, but in reality, using rubygems 1.8.7 and ruby
1.9.2, it's getting included as a runtime dependency). Why does this
matter? Jeweler has other dependencies, such as bundler. Not only such
as bundler, but bundler 1.0! If you are using bundler 1.1, you get
needless dependency headaches.

True, this could be fixed upstream in jeweler. But I don't think it's
worth it since it is so easy (easier?) to build gems without jeweler.

There was a place for jeweler back when we had servers that built gems
automatically. Since now the convention is to build the gem locally and
push it to the server, we can write as much ruby code as we like in the
gemspec. The gemspec gets expanded and re-serialized without the code,
so you can use things like Date.today, etc. (tar xzf the generated gem
if you don't believe me)

@timcharper

To build and push soca after this change:

update the file VERSION
gem build soca.gemspec
gem push soca-0.2.0.gem

@timcharper timcharper Remove Jeweler
Gems are just as easy to release without Jeweler than it is with it.  It
usually gets needlessly injected as a runtime dependency (the gemspec it
generated for soca did mark itself as a development dependency in one of
the conditional branches, but in reality, using rubygems 1.8.7 and ruby
1.9.2, it's getting included as a runtime dependency). Why does this
matter?  Jeweler has other dependencies, such as bundler.  Not only such
as bundler, but bundler 1.0! If you are using bundler 1.1, you get
needless dependency headaches.

True, this could be fixed upstream in jeweler. But I don't think it's
worth it since it is so easy (easier?) to build gems without jeweler.

There was a place for jeweler back when we had servers that built gems
automatically. Since now the convention is to build the gem locally and
push it to the server, we can write as much ruby code as we like in the
gemspec. The gemspec gets expanded and re-serialized without the code,
so you can use things like Date.today, etc. (tar xzf the generated gem
if you don't believe me)
f47f9b8
@timcharper

I have tested this patch by uninstalling soca, building a new soca gem using the new gemspec, installing the new gem, then running the following commands:

soca -v
soca generate test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Oct 28, 2011
  1. @timcharper

    Remove Jeweler

    timcharper authored
    Gems are just as easy to release without Jeweler than it is with it.  It
    usually gets needlessly injected as a runtime dependency (the gemspec it
    generated for soca did mark itself as a development dependency in one of
    the conditional branches, but in reality, using rubygems 1.8.7 and ruby
    1.9.2, it's getting included as a runtime dependency). Why does this
    matter?  Jeweler has other dependencies, such as bundler.  Not only such
    as bundler, but bundler 1.0! If you are using bundler 1.1, you get
    needless dependency headaches.
    
    True, this could be fixed upstream in jeweler. But I don't think it's
    worth it since it is so easy (easier?) to build gems without jeweler.
    
    There was a place for jeweler back when we had servers that built gems
    automatically. Since now the convention is to build the gem locally and
    push it to the server, we can write as much ruby code as we like in the
    gemspec. The gemspec gets expanded and re-serialized without the code,
    so you can use things like Date.today, etc. (tar xzf the generated gem
    if you don't believe me)
This page is out of date. Refresh to see the latest.
View
1  .gitignore
@@ -20,3 +20,4 @@ rdoc
pkg
## PROJECT::SPECIFIC
+*.gem
View
17 Gemfile
@@ -1,19 +1,4 @@
# A sample Gemfile
source "http://rubygems.org"
-gem 'json', '~>1.4.6'
-gem 'mime-types', '~>1.16'
-gem 'typhoeus', '~>0.2.4'
-gem 'thor', '~>0.14.0'
-gem 'jim', '~>0.3.1'
-gem 'compass', '~>0.10.5'
-gem 'mustache', '~>0.11.2'
-gem 'coffee-script', '~> 2.1.2'
-group :development do
- gem 'rake'
- gem 'jeweler'
- gem "yard", ">= 0"
-end
-group :test do
- gem "shoulda", ">= 0"
-end
+gemspec
View
54 Gemfile.lock
@@ -1,21 +1,34 @@
+PATH
+ remote: .
+ specs:
+ soca (0.2.0)
+ coffee-script (~> 2.1.2)
+ compass (~> 0.10.5)
+ jim (~> 0.3.1)
+ json (~> 1.4.6)
+ mime-types (~> 1.16)
+ mustache (~> 0.11.2)
+ thor (~> 0.14.0)
+ typhoeus (~> 0.2.4)
+
GEM
remote: http://rubygems.org/
specs:
archive-tar-minitar (0.5.2)
coffee-script (2.1.3)
coffee-script-source
- coffee-script-source (1.0.1)
+ coffee-script-source (1.1.2)
compass (0.10.6)
haml (>= 3.0.4)
downlow (0.1.4)
archive-tar-minitar (>= 0.5.2)
rubyzip (>= 0.9.4)
fakeweb (1.3.0)
- fssm (0.2.5)
+ fssm (0.2.7)
git (1.2.5)
- haml (3.0.25)
- jeweler (1.5.2)
- bundler (~> 1.0.0)
+ haml (3.1.3)
+ jeweler (1.6.4)
+ bundler (~> 1.0)
git (>= 1.2.5)
rake
jim (0.3.1)
@@ -38,39 +51,32 @@ GEM
yajl-ruby
yajl-ruby
json (1.4.6)
- leftright (0.9.0)
- mime-types (1.16)
- mocha (0.9.10)
- rake
+ leftright (0.9.1)
+ metaclass (0.0.1)
+ mime-types (1.17.2)
+ mocha (0.10.0)
+ metaclass (~> 0.0.1)
mustache (0.11.2)
- rack (1.2.1)
- rack-test (0.5.7)
+ rack (1.3.5)
+ rack-test (0.6.1)
rack (>= 1.0)
- rake (0.8.7)
+ rake (0.9.2.2)
rubyzip (0.9.4)
shoulda (2.11.3)
- test-unit (2.1.2)
+ test-unit (2.4.0)
thor (0.14.6)
typhoeus (0.2.4)
mime-types
mime-types
version_sorter (1.1.0)
- yajl-ruby (0.8.0)
- yard (0.6.4)
+ yajl-ruby (1.0.0)
+ yard (0.7.3)
PLATFORMS
ruby
DEPENDENCIES
- coffee-script (~> 2.1.2)
- compass (~> 0.10.5)
- jeweler
- jim (~> 0.3.1)
- json (~> 1.4.6)
- mime-types (~> 1.16)
- mustache (~> 0.11.2)
rake
shoulda
- thor (~> 0.14.0)
- typhoeus (~> 0.2.4)
+ soca!
yard
View
27 Rakefile
@@ -3,33 +3,6 @@ require 'soca'
require 'bundler'
Bundler.require
-begin
- require 'jeweler'
- Jeweler::Tasks.new do |gem|
- gem.name = "soca"
- gem.version = Soca::VERSION
- gem.summary = %Q{Sammy on CouchApp}
- gem.description = %Q{soca is a different way of writing apps for CouchDB. The structure is up to you.}
- gem.email = "aaron@quirkey.com"
- gem.homepage = "http://github.com/quirkey/soca"
- gem.authors = ["Aaron Quint"]
- gem.add_dependency 'json', '~>1.4.6'
- gem.add_dependency 'mime-types', '~>1.16'
- gem.add_dependency 'typhoeus', '~>0.2.4'
- gem.add_dependency 'thor', '~>0.14.0'
- gem.add_dependency 'jim', '~>0.3.1'
- gem.add_dependency 'compass', '~>0.10.5'
- gem.add_dependency 'mustache', '~>0.11.2'
- gem.add_dependency 'coffee-script', '~> 2.1.2'
- gem.add_development_dependency "shoulda", ">= 0"
- gem.add_development_dependency "yard", ">= 0"
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
- end
- Jeweler::GemcutterTasks.new
-rescue LoadError
- puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
-end
-
require 'rake/testtask'
Rake::TestTask.new(:test) do |test|
test.libs << 'lib' << 'test'
View
1  VERSION
@@ -0,0 +1 @@
+0.2.0
View
2  lib/soca.rb
@@ -7,7 +7,7 @@
$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__))))
module Soca
- VERSION = '0.2.0'
+ VERSION = File.read(File.expand_path("../VERSION", File.dirname(__FILE__))).chomp
class << self
attr_accessor :debug
View
185 soca.gemspec
@@ -1,166 +1,35 @@
-# Generated by jeweler
-# DO NOT EDIT THIS FILE DIRECTLY
-# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
# -*- encoding: utf-8 -*-
Gem::Specification.new do |s|
- s.name = %q{soca}
- s.version = "0.2.0"
+ s.name = 'soca'
+ s.version = File.read(File.expand_path("VERSION", File.dirname(__FILE__))).chomp
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
- s.authors = ["Aaron Quint"]
- s.date = %q{2011-03-21}
- s.default_executable = %q{soca}
- s.description = %q{soca is a different way of writing apps for CouchDB. The structure is up to you.}
- s.email = %q{aaron@quirkey.com}
- s.executables = ["soca"]
- s.extra_rdoc_files = [
- "LICENSE",
- "README.md"
- ]
- s.files = [
- ".document",
- "Gemfile",
- "Gemfile.lock",
- "HISTORY",
- "LICENSE",
- "README.md",
- "Rakefile",
- "bin/soca",
- "lib/soca.rb",
- "lib/soca/cli.rb",
- "lib/soca/plugin.rb",
- "lib/soca/plugins/coffeescript.rb",
- "lib/soca/plugins/compass.rb",
- "lib/soca/plugins/jim.rb",
- "lib/soca/plugins/macro.rb",
- "lib/soca/plugins/mustache.rb",
- "lib/soca/pusher.rb",
- "lib/soca/templates/Jimfile",
- "lib/soca/templates/config.js.erb",
- "lib/soca/templates/couchapprc.erb",
- "lib/soca/templates/css/screen.css",
- "lib/soca/templates/db/views/by_type/map.js",
- "lib/soca/templates/hooks/before_build.rb",
- "lib/soca/templates/index.html.erb",
- "lib/soca/templates/js/app.js",
- "lib/soca/templates/js/vendor/jquery-1.4.2.js",
- "lib/soca/templates/js/vendor/jquery.couch-0.11.js",
- "lib/soca/templates/js/vendor/sammy-0.6.3.js",
- "lib/soca/templates/js/vendor/sammy.couch-0.1.0.js",
- "lib/soca/templates/js/vendor/sha1.js",
- "lib/soca/templates/rewrites.js.erb",
- "soca.gemspec",
- "test/helper.rb",
- "test/test_plugins.rb",
- "test/test_soca_cli.rb",
- "test/test_soca_pusher.rb",
- "test/testapp/.couchapprc",
- "test/testapp/Jimfile",
- "test/testapp/config.js",
- "test/testapp/css/app.css",
- "test/testapp/db/views/only_map/map.js",
- "test/testapp/db/views/recent/map.js",
- "test/testapp/db/views/recent/reduce.js",
- "test/testapp/hooks/before_build.rb",
- "test/testapp/hooks/before_push.rb",
- "test/testapp/index.html",
- "test/testapp/js/app.js",
- "test/testapp/js/default.js",
- "test/testapp/js/vendor/jquery-1.4.2.js",
- "test/testapp/js/vendor/json2.js",
- "test/testapp/js/vendor/sammy-0.5.4.js",
- "test/testapp/js/vendor/sammy.mustache-0.5.4.js",
- "test/testapp/rewrites.js",
- "test/testapp/templates/index.mustache"
- ]
- s.homepage = %q{http://github.com/quirkey/soca}
- s.require_paths = ["lib"]
- s.rubygems_version = %q{1.3.7}
- s.summary = %q{Sammy on CouchApp}
- s.test_files = [
- "test/helper.rb",
- "test/test_plugins.rb",
- "test/test_soca_cli.rb",
- "test/test_soca_pusher.rb",
- "test/testapp/hooks/before_build.rb",
- "test/testapp/hooks/before_push.rb"
- ]
+ s.authors = ['Aaron Quint']
+ s.date = Date.today
+ s.default_executable = 'soca'
+ s.description = 'soca is a different way of writing apps for CouchDB. The structure is up to you.'
+ s.email = 'aaron@quirkey.com'
+ s.executables = ['soca']
+ s.homepage = 'http://github.com/quirkey/soca'
+ s.rubygems_version = '1.3.7'
+ s.summary = 'Sammy on CouchApp'
+ s.require_paths = ['lib']
- if s.respond_to? :specification_version then
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
- s.specification_version = 3
+ s.files = %w[.document Gemfile Gemfile.lock HISTORY LICENSE VERSION README.md Rakefile] + Dir.glob('{lib,test}/**/*')
+ s.extra_rdoc_files = %w[LICENSE README.md]
+ s.test_files = Dir.glob('test/**/*.rb')
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
- s.add_runtime_dependency(%q<json>, ["~> 1.4.6"])
- s.add_runtime_dependency(%q<mime-types>, ["~> 1.16"])
- s.add_runtime_dependency(%q<typhoeus>, ["~> 0.2"])
- s.add_runtime_dependency(%q<thor>, ["~> 0.14.0"])
- s.add_runtime_dependency(%q<jim>, ["~> 0.3.1"])
- s.add_runtime_dependency(%q<compass>, ["~> 0.10.5"])
- s.add_runtime_dependency(%q<mustache>, ["~> 0.11.2"])
- s.add_runtime_dependency(%q<coffee-script>, ["~> 2.1.2"])
- s.add_development_dependency(%q<rake>, [">= 0"])
- s.add_development_dependency(%q<jeweler>, [">= 0"])
- s.add_development_dependency(%q<shoulda>, [">= 0"])
- s.add_development_dependency(%q<yard>, [">= 0"])
- s.add_runtime_dependency(%q<json>, ["~> 1.4.6"])
- s.add_runtime_dependency(%q<mime-types>, ["~> 1.16"])
- s.add_runtime_dependency(%q<typhoeus>, ["~> 0.2"])
- s.add_runtime_dependency(%q<thor>, ["~> 0.14.0"])
- s.add_runtime_dependency(%q<jim>, ["~> 0.3.1"])
- s.add_runtime_dependency(%q<compass>, ["~> 0.10.5"])
- s.add_runtime_dependency(%q<mustache>, ["~> 0.11.2"])
- s.add_runtime_dependency(%q<coffee-script>, ["~> 2.1.2"])
- s.add_development_dependency(%q<shoulda>, [">= 0"])
- s.add_development_dependency(%q<yard>, [">= 0"])
- else
- s.add_dependency(%q<json>, ["~> 1.4.6"])
- s.add_dependency(%q<mime-types>, ["~> 1.16"])
- s.add_dependency(%q<typhoeus>, ["~> 0.2"])
- s.add_dependency(%q<thor>, ["~> 0.14.0"])
- s.add_dependency(%q<jim>, ["~> 0.3.1"])
- s.add_dependency(%q<compass>, ["~> 0.10.5"])
- s.add_dependency(%q<mustache>, ["~> 0.11.2"])
- s.add_dependency(%q<coffee-script>, ["~> 2.1.2"])
- s.add_dependency(%q<rake>, [">= 0"])
- s.add_dependency(%q<jeweler>, [">= 0"])
- s.add_dependency(%q<shoulda>, [">= 0"])
- s.add_dependency(%q<yard>, [">= 0"])
- s.add_dependency(%q<json>, ["~> 1.4.6"])
- s.add_dependency(%q<mime-types>, ["~> 1.16"])
- s.add_dependency(%q<typhoeus>, ["~> 0.2"])
- s.add_dependency(%q<thor>, ["~> 0.14.0"])
- s.add_dependency(%q<jim>, ["~> 0.3.1"])
- s.add_dependency(%q<compass>, ["~> 0.10.5"])
- s.add_dependency(%q<mustache>, ["~> 0.11.2"])
- s.add_dependency(%q<coffee-script>, ["~> 2.1.2"])
- s.add_dependency(%q<shoulda>, [">= 0"])
- s.add_dependency(%q<yard>, [">= 0"])
- end
- else
- s.add_dependency(%q<json>, ["~> 1.4.6"])
- s.add_dependency(%q<mime-types>, ["~> 1.16"])
- s.add_dependency(%q<typhoeus>, ["~> 0.2"])
- s.add_dependency(%q<thor>, ["~> 0.14.0"])
- s.add_dependency(%q<jim>, ["~> 0.3.1"])
- s.add_dependency(%q<compass>, ["~> 0.10.5"])
- s.add_dependency(%q<mustache>, ["~> 0.11.2"])
- s.add_dependency(%q<coffee-script>, ["~> 2.1.2"])
- s.add_dependency(%q<rake>, [">= 0"])
- s.add_dependency(%q<jeweler>, [">= 0"])
- s.add_dependency(%q<shoulda>, [">= 0"])
- s.add_dependency(%q<yard>, [">= 0"])
- s.add_dependency(%q<json>, ["~> 1.4.6"])
- s.add_dependency(%q<mime-types>, ["~> 1.16"])
- s.add_dependency(%q<typhoeus>, ["~> 0.2"])
- s.add_dependency(%q<thor>, ["~> 0.14.0"])
- s.add_dependency(%q<jim>, ["~> 0.3.1"])
- s.add_dependency(%q<compass>, ["~> 0.10.5"])
- s.add_dependency(%q<mustache>, ["~> 0.11.2"])
- s.add_dependency(%q<coffee-script>, ["~> 2.1.2"])
- s.add_dependency(%q<shoulda>, [">= 0"])
- s.add_dependency(%q<yard>, [">= 0"])
- end
+ s.add_dependency 'json' , '~>1.4.6'
+ s.add_dependency 'mime-types' , '~>1.16'
+ s.add_dependency 'typhoeus' , '~>0.2.4'
+ s.add_dependency 'thor' , '~>0.14.0'
+ s.add_dependency 'jim' , '~>0.3.1'
+ s.add_dependency 'compass' , '~>0.10.5'
+ s.add_dependency 'mustache' , '~>0.11.2'
+ s.add_dependency 'coffee-script' , '~> 2.1.2'
+
+ s.add_development_dependency 'rake'
+ s.add_development_dependency 'yard', '>= 0'
+ s.add_development_dependency 'shoulda', '>= 0'
end
Something went wrong with that request. Please try again.