Hello community, here is the log from the commit of package rubygem-sprockets for openSUSE:Factory checked in at 2016-07-30 00:26:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rubygem-sprockets (Old) and /work/SRC/openSUSE:Factory/.rubygem-sprockets.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "rubygem-sprockets" Changes: -------- --- /work/SRC/openSUSE:Factory/rubygem-sprockets/rubygem-sprockets.changes 2016-07-21 07:57:29.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.rubygem-sprockets.new/rubygem-sprockets.changes 2016-07-30 00:26:30.000000000 +0200 @@ -1,0 +2,10 @@ +Sat Jul 23 04:33:33 UTC 2016 - coolo@suse.com + +- updated to version 3.7.0 + see installed CHANGELOG.md + + ** 3.7.0** (July 21, 2016) + + * Deprecated interfaces now emit deprecation warnings #345 + +------------------------------------------------------------------- Old: ---- sprockets-3.6.3.gem New: ---- sprockets-3.7.0.gem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rubygem-sprockets.spec ++++++ --- /var/tmp/diff_new_pack.um5Ao3/_old 2016-07-30 00:26:32.000000000 +0200 +++ /var/tmp/diff_new_pack.um5Ao3/_new 2016-07-30 00:26:32.000000000 +0200 @@ -24,7 +24,7 @@ # Name: rubygem-sprockets -Version: 3.6.3 +Version: 3.7.0 Release: 0 %define mod_name sprockets %define mod_full_name %{mod_name}-%{version} ++++++ sprockets-3.6.3.gem -> sprockets-3.7.0.gem ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CHANGELOG.md new/CHANGELOG.md --- old/CHANGELOG.md 2016-07-01 20:01:12.000000000 +0200 +++ new/CHANGELOG.md 2016-07-21 17:39:19.000000000 +0200 @@ -1,3 +1,7 @@ +** 3.7.0** (July 21, 2016) + +* Deprecated interfaces now emit deprecation warnings #345 + **3.6.3** (July 1, 2016) * Faster asset lookup in large directories #336 Files old/checksums.yaml.gz and new/checksums.yaml.gz differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/sprockets/coffee_script_template.rb new/lib/sprockets/coffee_script_template.rb --- old/lib/sprockets/coffee_script_template.rb 2016-07-01 20:01:12.000000000 +0200 +++ new/lib/sprockets/coffee_script_template.rb 2016-07-21 17:39:19.000000000 +0200 @@ -2,5 +2,16 @@ module Sprockets # Deprecated - CoffeeScriptTemplate = CoffeeScriptProcessor + module CoffeeScriptTemplate + VERSION = CoffeeScriptProcessor::VERSION + + def self.cache_key + CoffeeScriptProcessor.cache_key + end + + def self.call(*args) + Deprecation.new.warn "CoffeeScriptTemplate is deprecated please use CoffeeScriptProcessor instead" + CoffeeScriptProcessor.call(*args) + end + end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/sprockets/deprecation.rb new/lib/sprockets/deprecation.rb --- old/lib/sprockets/deprecation.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/lib/sprockets/deprecation.rb 2016-07-21 17:39:19.000000000 +0200 @@ -0,0 +1,90 @@ +module Sprockets + class Deprecation + THREAD_LOCAL__SILENCE_KEY = "_sprockets_deprecation_silence".freeze + DEFAULT_BEHAVIORS = { + raise: ->(message, callstack) { + e = DeprecationException.new(message) + e.set_backtrace(callstack.map(&:to_s)) + raise e + }, + + stderr: ->(message, callstack) { + $stderr.puts(message) + }, + } + + attr_reader :callstack + + def self.silence(&block) + Thread.current[THREAD_LOCAL__SILENCE_KEY] = true + block.call + ensure + Thread.current[THREAD_LOCAL__SILENCE_KEY] = false + end + + def initialize(callstack = nil) + @callstack = callstack || caller(2) + end + + def warn(message) + return if Thread.current[THREAD_LOCAL__SILENCE_KEY] + deprecation_message(message).tap do |m| + behavior.each { |b| b.call(m, callstack) } + end + end + + private + def behavior + @behavior ||= [DEFAULT_BEHAVIORS[:stderr]] + end + + def behavior=(behavior) + @behavior = Array(behavior).map { |b| DEFAULT_BEHAVIORS[b] || b } + end + + def deprecation_message(message = nil) + message ||= "You are using deprecated behavior which will be removed from the next major or minor release." + "DEPRECATION WARNING: #{message} #{ deprecation_caller_message }" + end + + def deprecation_caller_message + file, line, method = extract_callstack + if file + if line && method + "(called from #{method} at #{file}:#{line})" + else + "(called from #{file}:#{line})" + end + end + end + + SPROCKETS_GEM_ROOT = File.expand_path("../../../../..", __FILE__) + "/" + + def ignored_callstack(path) + path.start_with?(SPROCKETS_GEM_ROOT) || path.start_with?(RbConfig::CONFIG['rubylibdir']) + end + + def extract_callstack + return _extract_callstack if callstack.first.is_a? String + + offending_line = callstack.find { |frame| + frame.absolute_path && !ignored_callstack(frame.absolute_path) + } || callstack.first + + [offending_line.path, offending_line.lineno, offending_line.label] + end + + def _extract_callstack + offending_line = callstack.find { |line| !ignored_callstack(line) } || callstack.first + + if offending_line + if md = offending_line.match(/^(.+?):(\d+)(?::in `(.*?)')?/) + md.captures + else + offending_line + end + end + end + end + private_constant :Deprecation +end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/sprockets/eco_template.rb new/lib/sprockets/eco_template.rb --- old/lib/sprockets/eco_template.rb 2016-07-01 20:01:12.000000000 +0200 +++ new/lib/sprockets/eco_template.rb 2016-07-21 17:39:19.000000000 +0200 @@ -2,5 +2,16 @@ module Sprockets # Deprecated - EcoTemplate = EcoProcessor + module EcoTemplate + VERSION = EcoProcessor::VERSION + + def self.cache_key + EcoProcessor.cache_key + end + + def self.call(*args) + Deprecation.new.warn "EcoTemplate is deprecated please use EcoProcessor instead" + EcoProcessor.call(*args) + end + end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/sprockets/ejs_template.rb new/lib/sprockets/ejs_template.rb --- old/lib/sprockets/ejs_template.rb 2016-07-01 20:01:12.000000000 +0200 +++ new/lib/sprockets/ejs_template.rb 2016-07-21 17:39:19.000000000 +0200 @@ -2,5 +2,16 @@ module Sprockets # Deprecated - EjsTemplate = EjsProcessor + module EjsTemplate + VERSION = EjsProcessor::VERSION + + def self.cache_key + EjsProcessor.cache_key + end + + def self.call(*args) + Deprecation.new.warn "EjsTemplate is deprecated please use EjsProcessor instead" + EjsProcessor.call(*args) + end + end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/sprockets/engines.rb new/lib/sprockets/engines.rb --- old/lib/sprockets/engines.rb 2016-07-01 20:01:12.000000000 +0200 +++ new/lib/sprockets/engines.rb 2016-07-21 17:39:19.000000000 +0200 @@ -51,6 +51,17 @@ # environment.register_engine '.coffee', CoffeeScriptProcessor # def register_engine(ext, klass, options = {}) + unless options[:silence_deprecation] + msg = <<-MSG +Sprockets method `register_engine` is deprecated. +Please register a mime type using `register_mime_type` then +use `register_compressor` or `register_transformer`. +https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md... + MSG + + Deprecation.new([caller.first]).warn(msg) + end + ext = Sprockets::Utils.normalize_extension(ext) self.computed_config = {} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/sprockets/erb_template.rb new/lib/sprockets/erb_template.rb --- old/lib/sprockets/erb_template.rb 2016-07-01 20:01:12.000000000 +0200 +++ new/lib/sprockets/erb_template.rb 2016-07-21 17:39:19.000000000 +0200 @@ -2,5 +2,10 @@ module Sprockets # Deprecated - ERBTemplate = ERBProcessor + class ERBTemplate < ERBProcessor + def call(*args) + Deprecation.new.warn "ERBTemplate is deprecated please use ERBProcessor instead" + super + end + end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/sprockets/processing.rb new/lib/sprockets/processing.rb --- old/lib/sprockets/processing.rb 2016-07-01 20:01:12.000000000 +0200 +++ new/lib/sprockets/processing.rb 2016-07-21 17:39:19.000000000 +0200 @@ -231,14 +231,24 @@ compute_transformers! end + def deprecate_legacy_processor_interface(interface) + msg = "You are using the a deprecated processor interface #{ interface.inspect }.\n" + + "Please update your processor interface:\n" + + "https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md#supporting-all-versions-of-sprockets-in-processors\n" + + Deprecation.new([caller[3]]).warn msg + end + def wrap_processor(klass, proc) if !proc if klass.respond_to?(:call) klass else + deprecate_legacy_processor_interface(klass) LegacyTiltProcessor.new(klass) end elsif proc.respond_to?(:arity) && proc.arity == 2 + deprecate_legacy_processor_interface(proc) LegacyProcProcessor.new(klass.to_s, proc) else proc diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/sprockets/sass_cache_store.rb new/lib/sprockets/sass_cache_store.rb --- old/lib/sprockets/sass_cache_store.rb 2016-07-01 20:01:12.000000000 +0200 +++ new/lib/sprockets/sass_cache_store.rb 2016-07-21 17:39:19.000000000 +0200 @@ -25,5 +25,10 @@ end # Deprecated: Use Sprockets::SassProcessor::CacheStore instead. - SassCacheStore = SassProcessor::CacheStore + class SassCacheStore < SassProcessor::CacheStore + def initialize(*args) + Deprecation.new.warn "SassCacheStore is deprecated please use SassProcessor::CacheStore instead" + super + end + end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/sprockets/sass_template.rb new/lib/sprockets/sass_template.rb --- old/lib/sprockets/sass_template.rb 2016-07-01 20:01:12.000000000 +0200 +++ new/lib/sprockets/sass_template.rb 2016-07-21 17:39:19.000000000 +0200 @@ -2,6 +2,18 @@ module Sprockets # Deprecated - SassTemplate = SassProcessor - ScssTemplate = ScssProcessor + class SassTemplate < SassProcessor + def self.call(*args) + Deprecation.new.warn "SassTemplate is deprecated please use SassProcessor instead" + super + end + end + + # Deprecated + class ScssTemplate < ScssProcessor + def self.call(*args) + Deprecation.new.warn "ScssTemplate is deprecated please use ScssProcessor instead" + super + end + end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/sprockets/version.rb new/lib/sprockets/version.rb --- old/lib/sprockets/version.rb 2016-07-01 20:01:12.000000000 +0200 +++ new/lib/sprockets/version.rb 2016-07-21 17:39:19.000000000 +0200 @@ -1,3 +1,3 @@ module Sprockets - VERSION = "3.6.3" + VERSION = "3.7.0" end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/sprockets.rb new/lib/sprockets.rb --- old/lib/sprockets.rb 2016-07-01 20:01:12.000000000 +0200 +++ new/lib/sprockets.rb 2016-07-21 17:39:19.000000000 +0200 @@ -4,6 +4,7 @@ require 'sprockets/environment' require 'sprockets/errors' require 'sprockets/manifest' +require 'sprockets/deprecation' module Sprockets require 'sprockets/processor_utils' @@ -122,25 +123,31 @@ # Mmm, CoffeeScript require 'sprockets/coffee_script_processor' - register_engine '.coffee', CoffeeScriptProcessor, mime_type: 'application/javascript' + Deprecation.silence do + register_engine '.coffee', CoffeeScriptProcessor, mime_type: 'application/javascript', silence_deprecation: true + end # JST engines require 'sprockets/eco_processor' require 'sprockets/ejs_processor' require 'sprockets/jst_processor' - register_engine '.jst', JstProcessor, mime_type: 'application/javascript' - register_engine '.eco', EcoProcessor, mime_type: 'application/javascript' - register_engine '.ejs', EjsProcessor, mime_type: 'application/javascript' + Deprecation.silence do + register_engine '.jst', JstProcessor, mime_type: 'application/javascript', silence_deprecation: true + register_engine '.eco', EcoProcessor, mime_type: 'application/javascript', silence_deprecation: true + register_engine '.ejs', EjsProcessor, mime_type: 'application/javascript', silence_deprecation: true + end # CSS engines require 'sprockets/sass_processor' - register_engine '.sass', SassProcessor, mime_type: 'text/css' - register_engine '.scss', ScssProcessor, mime_type: 'text/css' + Deprecation.silence do + register_engine '.sass', SassProcessor, mime_type: 'text/css', silence_deprecation: true + register_engine '.scss', ScssProcessor, mime_type: 'text/css', silence_deprecation: true + end register_bundle_metadata_reducer 'text/css', :sass_dependencies, Set.new, :+ # Other require 'sprockets/erb_processor' - register_engine '.erb', ERBProcessor, mime_type: 'text/plain' + register_engine '.erb', ERBProcessor, mime_type: 'text/plain', silence_deprecation: true register_dependency_resolver 'environment-version' do |env| env.version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata --- old/metadata 2016-07-01 20:01:12.000000000 +0200 +++ new/metadata 2016-07-21 17:39:19.000000000 +0200 @@ -1,7 +1,7 @@ --- !ruby/object:Gem::Specification name: sprockets version: !ruby/object:Gem::Version - version: 3.6.3 + version: 3.7.0 platform: ruby authors: - Sam Stephenson @@ -9,7 +9,7 @@ autorequire: bindir: bin cert_chain: [] -date: 2016-07-01 00:00:00.000000000 Z +date: 2016-07-21 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: rack @@ -267,6 +267,7 @@ - lib/sprockets/configuration.rb - lib/sprockets/context.rb - lib/sprockets/dependencies.rb +- lib/sprockets/deprecation.rb - lib/sprockets/digest_utils.rb - lib/sprockets/directive_processor.rb - lib/sprockets/eco_processor.rb