coverband 5.2.6.rc.5 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a1de64754e397a6626449593243af6e5e89028b6b3a66b33ffe36d9ef7dde971
4
- data.tar.gz: 58e2b221b3ed8e9c6280cd1a891dcb4e0d62e2d9d6ae14d565c0467e822af630
3
+ metadata.gz: 49c21ff66d025758b2d3edca8a16bd3863aad9ad38df0f084fd5171e5fb2243d
4
+ data.tar.gz: 1428dcab49562e2d244e466c06c60e5259a10c3191dd712d8c011ab95e454975
5
5
  SHA512:
6
- metadata.gz: 4f68951b6a6d50dd4417970405ecc3d4ed00e64988ec3d2ef9da6136554c532edd9b7eddaacc12dbd4ee7a742e57bd90e565cd6fd2e35d9528bd4a35b20f37a8
7
- data.tar.gz: bac5705947acbc4eb3619f7e0a6bc1c4055ffe2ea463017b583db65ea6b3ce281d14204b4b41149e44ab24b0ee722fad837595744158d452f19abc1941f5e245
6
+ metadata.gz: 9638310cb885222da8e13e4246f13935621be71f1ab5c92a6f7f13e1c3514053575c4ac1a3dcb681785ddd52c3b3d56e67b3f27e02bfc5cc24863799aaba4837
7
+ data.tar.gz: d21c5595168eb920f73176b6e4a2edf1b145c37d9abf138e296a921c86d8603b274166fea358d61a8df2b592e6349104833e7c8ff7a45b02f776feba5868a559
@@ -19,6 +19,7 @@ jobs:
19
19
  # truffleruby,
20
20
  # truffleruby-head,
21
21
  # removing jruby again to flaky
22
+ gemfile: [ Gemfile.rails6.0, Gemfile.rails6.1, Gemfile.rails7.0, Gemfile.rails7.1 ]
22
23
  # ruby: [2.3, 2.4, 2.5, 2.6, 2.7, "3.0", "3.1", jruby]
23
24
  # need to add support for multiple gemfiles
24
25
  ruby: ["2.7", "3.0", "3.1", "3.2"]
data/Gemfile.rails6.0 ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in coverband.gemspec
6
+ gemspec
7
+ gem "rails", "~>6.0.0"
8
+ gem "haml"
9
+ gem "slim"
10
+ gem "webrick"
data/Gemfile.rails6.1 ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in coverband.gemspec
6
+ gemspec
7
+ gem "rails", "~>6.1.0"
8
+ gem "haml"
9
+ gem "slim"
10
+ gem "webrick"
data/Gemfile.rails7.0 ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ # Specify your gem's dependencies in coverband.gemspec
6
+ gemspec
7
+ gem 'rails', '~>7.0.0'
8
+ gem "haml"
9
+ gem "slim"
10
+ gem "webrick"
data/Gemfile.rails7.1 ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ # Specify your gem's dependencies in coverband.gemspec
6
+ gemspec
7
+ gem 'rails', '~>7.1.0'
8
+ gem "haml"
9
+ gem "slim"
10
+ gem "webrick"
data/README.md CHANGED
@@ -407,7 +407,7 @@ If you submit a change please make sure the tests and benchmarks are passing.
407
407
 
408
408
  - run tests:
409
409
  - `bundle exec rake`
410
- - `BUNDLE_GEMFILE=Gemfile.rails6 bundle exec rake` (Same tests using rails 6 instead of 5)
410
+ - `BUNDLE_GEMFILE=Gemfile.rails7 bundle exec rake` (Same tests using rails 7 instead of 6)
411
411
  - view test coverage: `open coverage/index.html`
412
412
  - run the benchmarks before and after your change to see impact
413
413
  - `rake benchmarks`
data/changes.md CHANGED
@@ -1,3 +1,11 @@
1
+ ### Coverband 6.0.0
2
+
3
+ __NOTE: I ended up having 5.2.6 in various RCs for a long time, mostly because I had some breaking changes that were related to dropping support for old versions of Ruby and Rails__
4
+
5
+ * The 6.0.0 release is all that was the 6 different RC releases of 5.2.6
6
+ * Added Rails test matrix to github actions to test on all the supported versions
7
+ - Rails: 6.0.x, 6.1.x, 7.0.x, 7.1.x
8
+
1
9
  ### Coverband 5.2.6
2
10
 
3
11
  __NOTE: the current RCs include below, but this might turn into coverband 6.0__
data/coverband.gemspec CHANGED
@@ -35,7 +35,8 @@ Gem::Specification.new do |spec|
35
35
  spec.add_development_dependency "capybara"
36
36
  spec.add_development_dependency "m"
37
37
  spec.add_development_dependency "memory_profiler"
38
- spec.add_development_dependency "minitest"
38
+ # breaking change in minitest and mocha
39
+ spec.add_development_dependency "minitest", "= 5.18.1"
39
40
  spec.add_development_dependency "minitest-fork_executor"
40
41
  spec.add_development_dependency "minitest-stub-const"
41
42
  spec.add_development_dependency "mocha", "~> 1.7.0"
@@ -47,7 +48,8 @@ Gem::Specification.new do |spec|
47
48
  spec.add_development_dependency "standardrb"
48
49
 
49
50
  spec.add_development_dependency "coveralls"
50
- spec.add_development_dependency "minitest-profile"
51
+ # minitest-profile is not compatible with Rails 7.1.0 setup... dropping it for now
52
+ # spec.add_development_dependency "minitest-profile"
51
53
  spec.add_development_dependency "webmock"
52
54
 
53
55
  # TODO: Remove when other production adapters exist
@@ -51,7 +51,7 @@ module Coverband
51
51
  local_type ||= opts.key?(:override_type) ? opts[:override_type] : type
52
52
  env_filter = opts.key?(:env_filter) ? opts[:env_filter] : "production"
53
53
  uri = URI("#{coverband_url}/api/coverage?type=#{local_type}&env_filter=#{env_filter}")
54
- req = Net::HTTP::Get.new(uri, "Content-Type" => "application/json", "Coverband-Token" => Coverband.configuration.api_key)
54
+ req = Net::HTTP::Get.new(uri, "content-type" => "application/json", "Coverband-Token" => Coverband.configuration.api_key)
55
55
  res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
56
56
  http.request(req)
57
57
  end
@@ -133,7 +133,7 @@ module Coverband
133
133
 
134
134
  def send_report_body(coverage_body)
135
135
  uri = URI("#{coverband_url}/api/collector")
136
- req = ::Net::HTTP::Post.new(uri, "Content-Type" => "application/json", "Coverband-Token" => Coverband.configuration.api_key)
136
+ req = ::Net::HTTP::Post.new(uri, "content-type" => "application/json", "Coverband-Token" => Coverband.configuration.api_key)
137
137
  req.body = coverage_body
138
138
  logger&.info "Coverband: saving (#{uri}) #{req.body}" if Coverband.configuration.verbose
139
139
  res = ::Net::HTTP.start(
@@ -35,7 +35,7 @@ module Coverband
35
35
 
36
36
  def save_tracked_views(views:, reported_time:)
37
37
  uri = URI("#{Coverband.configuration.service_url}/api/collector")
38
- req = Net::HTTP::Post.new(uri, "Content-Type" => "application/json", "Coverband-Token" => Coverband.configuration.api_key)
38
+ req = Net::HTTP::Post.new(uri, "content-type" => "application/json", "Coverband-Token" => Coverband.configuration.api_key)
39
39
  data = {
40
40
  collection_type: "view_tracker_delta",
41
41
  collection_data: {
@@ -66,7 +66,7 @@ module Coverband
66
66
  elsif request_path_info =~ %r{\/clear_.*}
67
67
  return clear_abstract_tracking(tracker)
68
68
  else
69
- return [200, {"Content-Type" => "text/html"}, [display_abstract_tracker(tracker)]]
69
+ return [200, {"content-type" => "text/html"}, [display_abstract_tracker(tracker)]]
70
70
  end
71
71
  end
72
72
  end
@@ -203,9 +203,9 @@ module Coverband
203
203
 
204
204
  def coverband_headers(content_type: "text/html")
205
205
  web_headers = {
206
- "Content-Type" => content_type
206
+ "content-type" => content_type
207
207
  }
208
- web_headers["Content-Security-Policy-Report-Only"] = CSP_HEADER if Coverband.configuration.csp_policy
208
+ web_headers["content-security-policy-report-only"] = CSP_HEADER if Coverband.configuration.csp_policy
209
209
  web_headers
210
210
  end
211
211
 
@@ -46,9 +46,9 @@ module ActionDispatch
46
46
  body = ""
47
47
 
48
48
  headers = {
49
- "Location" => uri.to_s,
50
- "Content-Type" => "text/html",
51
- "Content-Length" => body.length.to_s
49
+ "location" => uri.to_s,
50
+ "content-type" => "text/html",
51
+ "content-length" => body.length.to_s
52
52
  }
53
53
 
54
54
  ActionDispatch::Response.new(status, headers, body)
@@ -46,6 +46,15 @@ namespace :coverband do
46
46
  Coverband.configuration.store.clear!
47
47
  end
48
48
 
49
+ ###
50
+ # clear all coverband trackers data
51
+ ###
52
+ desc "reset Coverband trackers data (view, routes, translations, etc), helpful for development, debugging, etc"
53
+ task :clear_tracker do
54
+ trackers = Coverband.configuration.trackers
55
+ trackers.each(&:reset_recordings)
56
+ end
57
+
49
58
  ###
50
59
  # Updates the data in the coverband store from one format to another
51
60
  ###
@@ -5,5 +5,5 @@
5
5
  # use format "4.2.1.rc.1" ~> 4.2.1.rc to prerelease versions like v4.2.1.rc.2 and v4.2.1.rc.3
6
6
  ###
7
7
  module Coverband
8
- VERSION = "5.2.6.rc.5"
8
+ VERSION = "6.0.0"
9
9
  end
data/lib/coverband.rb CHANGED
@@ -140,6 +140,11 @@ module Coverband
140
140
  require "coverband/reporters/json_report"
141
141
  init_web
142
142
  end
143
+
144
+ def self.call(env)
145
+ @app ||= new
146
+ @app.call(env)
147
+ end
143
148
  end
144
149
  end
145
150
  end
@@ -38,7 +38,7 @@ class BackgroundMiddlewareTest < Minitest::Test
38
38
 
39
39
  def fake_app
40
40
  @fake_app ||= lambda do |env|
41
- [200, {"Content-Type" => "text/plain"}, env["PATH_INFO"]]
41
+ [200, {"content-type" => "text/plain"}, env["PATH_INFO"]]
42
42
  end
43
43
  end
44
44
  end
@@ -34,7 +34,7 @@ class ReportMiddlewareTest < Minitest::Test
34
34
 
35
35
  def fake_app
36
36
  @fake_app ||= lambda do |env|
37
- [200, {"Content-Type" => "text/plain"}, env["PATH_INFO"]]
37
+ [200, {"content-type" => "text/plain"}, env["PATH_INFO"]]
38
38
  end
39
39
  end
40
40
 
@@ -4,6 +4,6 @@ require "rack"
4
4
 
5
5
  class HelloWorld
6
6
  def call(_env)
7
- [200, {"Content-Type" => "text/html"}, "Hello Rack!"]
7
+ [200, {"content-type" => "text/html"}, "Hello Rack!"]
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coverband
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.6.rc.5
4
+ version: 6.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Mayer
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-07-04 00:00:00.000000000 Z
12
+ date: 2023-10-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: benchmark-ips
@@ -71,16 +71,16 @@ dependencies:
71
71
  name: minitest
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - ">="
74
+ - - '='
75
75
  - !ruby/object:Gem::Version
76
- version: '0'
76
+ version: 5.18.1
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - ">="
81
+ - - '='
82
82
  - !ruby/object:Gem::Version
83
- version: '0'
83
+ version: 5.18.1
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: minitest-fork_executor
86
86
  requirement: !ruby/object:Gem::Requirement
@@ -221,20 +221,6 @@ dependencies:
221
221
  - - ">="
222
222
  - !ruby/object:Gem::Version
223
223
  version: '0'
224
- - !ruby/object:Gem::Dependency
225
- name: minitest-profile
226
- requirement: !ruby/object:Gem::Requirement
227
- requirements:
228
- - - ">="
229
- - !ruby/object:Gem::Version
230
- version: '0'
231
- type: :development
232
- prerelease: false
233
- version_requirements: !ruby/object:Gem::Requirement
234
- requirements:
235
- - - ">="
236
- - !ruby/object:Gem::Version
237
- version: '0'
238
224
  - !ruby/object:Gem::Dependency
239
225
  name: webmock
240
226
  requirement: !ruby/object:Gem::Requirement
@@ -280,7 +266,11 @@ files:
280
266
  - CODE_OF_CONDUCT.md
281
267
  - CONTRIBUTING.md
282
268
  - Gemfile
269
+ - Gemfile.rails6.0
270
+ - Gemfile.rails6.1
283
271
  - Gemfile.rails7
272
+ - Gemfile.rails7.0
273
+ - Gemfile.rails7.1
284
274
  - LICENSE
285
275
  - LICENSE.txt
286
276
  - README.md
@@ -519,9 +509,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
519
509
  version: '2.3'
520
510
  required_rubygems_version: !ruby/object:Gem::Requirement
521
511
  requirements:
522
- - - ">"
512
+ - - ">="
523
513
  - !ruby/object:Gem::Version
524
- version: 1.3.1
514
+ version: '0'
525
515
  requirements: []
526
516
  rubygems_version: 3.2.32
527
517
  signing_key: