nonnative 1.72.0 → 1.74.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: 514b3a80af664f7a1ab72c9a82745323f9320b410beda40ab980710c658be97e
4
- data.tar.gz: b7ca77733c8bde7aed33375c21a2c22190d3349d796762eb69bec11927510c3c
3
+ metadata.gz: acae0845e2d98d06c04910a7ead3b22ff614926878afb268e37f916c74f470e3
4
+ data.tar.gz: 04705b7c6f13f20f9dcf67cee5e9a63bf835abc927a8ccaff196fcf2748a3e4f
5
5
  SHA512:
6
- metadata.gz: 4565a6361d9d1e0bd370d2c15110b2bbed313c62fb4cbaa1a903ade728a103c17b60239eccfaa36772c74fef9b6bdaec05b81716fc313fed21fdc7e4bb62701d
7
- data.tar.gz: 45b64a6520e405d444d86adef42bd3b23131b9ba2369d6241754e16e0a1ad216c73982d14d01bf676df1d56edfd82b83c83b663137c4ca7c251c5caa85acddfc
6
+ metadata.gz: d539314d85773631c3880930aae5a2ffbe51bcd448511fed27fb611294410af0062af8806c0527a1bb2616ddaaff1de62f897a3793784502009ceac74ab95ecf
7
+ data.tar.gz: b1545342354a75d7010122304bebda429cb01eeb5f563130b4a79d293a66bf44ec27fd6e75a558278405ed8db74d567fddf8cdd7e1859addf61a23d99c4cac6c
data/.circleci/config.yml CHANGED
@@ -4,11 +4,23 @@ jobs:
4
4
  build:
5
5
  docker:
6
6
  - image: alexfalkowski/ruby:3.2
7
+ working_directory: ~/nonnative
7
8
  steps:
8
9
  - checkout
9
10
  - run: git submodule sync
10
11
  - run: git submodule update --init
12
+ - run: make setup
13
+ - restore_cache:
14
+ name: restore deps
15
+ keys:
16
+ - nonnative-cache-{{ checksum "Gemfile.lock" }}
17
+ - nonnative-cache-
11
18
  - run: make dep
19
+ - save_cache:
20
+ name: save deps
21
+ key: nonnative-cache-{{ checksum "Gemfile.lock" }}
22
+ paths:
23
+ - vendor
12
24
  - run: make lint
13
25
  - run: make features
14
26
  - store_test_results:
@@ -19,6 +31,7 @@ jobs:
19
31
  release:
20
32
  docker:
21
33
  - image: alexfalkowski/release:3.1
34
+ working_directory: ~/nonnative
22
35
  steps:
23
36
  - checkout
24
37
  - run: release
data/CHANGELOG.md CHANGED
@@ -6,6 +6,61 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
 
7
7
  ## Unreleased
8
8
 
9
+ ## [v1.74.0](https://github.com/alexfalkowski/nonnative/releases/tag/v1.74.0) - 2023-11-16
10
+
11
+ - [`82fa7dc`](https://github.com/alexfalkowski/nonnative/commit/82fa7dccda6acd5bccc2bc146decf8d1bad850db) feat(http): use resource so we can use opts (#276)
12
+ - [`4955fe9`](https://github.com/alexfalkowski/nonnative/commit/4955fe9d7b1e92c1438b43d88aeba12516df75ae) ci: cache deps (#275)
13
+ - [`2b372b8`](https://github.com/alexfalkowski/nonnative/commit/2b372b86ebbb2c0e45b4dc7503990a65aa75d906) build(deps): update bin (#274)
14
+ - [`02a15e5`](https://github.com/alexfalkowski/nonnative/commit/02a15e54035b7d1f68995733a8b0c0fd37e07a94) build(deps): update bin (#273)
15
+ - [`27755f0`](https://github.com/alexfalkowski/nonnative/commit/27755f0902ffccb254aa103d69bf38b453be5bc6) build(deps): update bin (#272)
16
+
17
+ ## [v1.73.0](https://github.com/alexfalkowski/nonnative/releases/tag/v1.73.0) - 2023-11-13
18
+
19
+ - [`37c5dd2`](https://github.com/alexfalkowski/nonnative/commit/37c5dd26b44b51b5f7b56ab36a0da226f9dd4222) feat(command): add tools to go command (#271)
20
+ - [`08912b1`](https://github.com/alexfalkowski/nonnative/commit/08912b14940da14b0ecf71f4531f30dc621f28ca) build(deps): update bin (#270)
21
+ - [`f94a4ef`](https://github.com/alexfalkowski/nonnative/commit/f94a4ef7d62cefd92e75de3e987c459043e927e2) build(deps): update bin (#269)
22
+
23
+ ## [v1.72.10](https://github.com/alexfalkowski/nonnative/releases/tag/v1.72.10) - 2023-11-02
24
+
25
+ - [`2f472aa`](https://github.com/alexfalkowski/nonnative/commit/2f472aad913ebddeb3f92f069891032f51fe3fce) fix(deps): bump grpc from 1.59.0 to 1.59.2 (#268)
26
+
27
+ ## [v1.72.9](https://github.com/alexfalkowski/nonnative/releases/tag/v1.72.9) - 2023-10-27
28
+
29
+ - [`b242203`](https://github.com/alexfalkowski/nonnative/commit/b242203c1cd8f3326dbdb8a0f39436bb3f67cd9d) fix(deps): bump rubocop from 1.57.1 to 1.57.2 (#267)
30
+ - [`0c1692d`](https://github.com/alexfalkowski/nonnative/commit/0c1692d336d770394727b57a2a36a388110739d6) build(deps): update bin (#266)
31
+
32
+ ## [v1.72.8](https://github.com/alexfalkowski/nonnative/releases/tag/v1.72.8) - 2023-10-16
33
+
34
+ - [`47160a4`](https://github.com/alexfalkowski/nonnative/commit/47160a47294a52cce3d894496d2cc69de5938018) fix(deps): bump rubocop from 1.57.0 to 1.57.1 (#263)
35
+
36
+ ## [v1.72.7](https://github.com/alexfalkowski/nonnative/releases/tag/v1.72.7) - 2023-10-12
37
+
38
+ - [`c38719a`](https://github.com/alexfalkowski/nonnative/commit/c38719a61df4053a437ccf1f6b993f526aecf585) fix(deps): bump rubocop from 1.56.4 to 1.57.0 (#262)
39
+
40
+ ## [v1.72.6](https://github.com/alexfalkowski/nonnative/releases/tag/v1.72.6) - 2023-10-02
41
+
42
+ - [`e55eb9d`](https://github.com/alexfalkowski/nonnative/commit/e55eb9d6f81cf225d90d4f0b31b13578edb21976) fix(deps): bump rubocop from 1.56.3 to 1.56.4 (#261)
43
+
44
+ ## [v1.72.5](https://github.com/alexfalkowski/nonnative/releases/tag/v1.72.5) - 2023-09-27
45
+
46
+ - [`31fdfb9`](https://github.com/alexfalkowski/nonnative/commit/31fdfb9dd6e6d51bb81ec011c70e0431512d3f19) fix(deps): add arm64 (#260)
47
+
48
+ ## [v1.72.4](https://github.com/alexfalkowski/nonnative/releases/tag/v1.72.4) - 2023-09-22
49
+
50
+ - [`ee3d759`](https://github.com/alexfalkowski/nonnative/commit/ee3d75921450f7fedef5a257a8e8ba3a4c8b153c) fix(deps): bump puma from 6.3.1 to 6.4.0 (#259)
51
+
52
+ ## [v1.72.3](https://github.com/alexfalkowski/nonnative/releases/tag/v1.72.3) - 2023-09-12
53
+
54
+ - [`f71186b`](https://github.com/alexfalkowski/nonnative/commit/f71186b3ab3e1042e557adb91b64efa37d2ac923) fix(deps): bump cucumber from 9.0.1 to 9.0.2 (#255)
55
+
56
+ ## [v1.72.2](https://github.com/alexfalkowski/nonnative/releases/tag/v1.72.2) - 2023-09-12
57
+
58
+ - [`83dbf7b`](https://github.com/alexfalkowski/nonnative/commit/83dbf7b26ce7def15de989630ca5e691f3b5fd1f) fix(deps): bump rubocop from 1.56.2 to 1.56.3 (#256)
59
+
60
+ ## [v1.72.1](https://github.com/alexfalkowski/nonnative/releases/tag/v1.72.1) - 2023-09-11
61
+
62
+ - [`f429bb9`](https://github.com/alexfalkowski/nonnative/commit/f429bb9238a86e67cdcb0dc5f0bf187e15e8857d) fix(deps): bump grpc from 1.57.0 to 1.58.0 (#254)
63
+
9
64
  ## [v1.72.0](https://github.com/alexfalkowski/nonnative/releases/tag/v1.72.0) - 2023-09-06
10
65
 
11
66
  - [`c105469`](https://github.com/alexfalkowski/nonnative/commit/c1054693e9040fd55e0ec45ffd843405826c9f03) feat(cucumber): update to version 9.0.1 (#253)
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nonnative (1.72.0)
4
+ nonnative (1.74.0)
5
5
  concurrent-ruby (~> 1.0, >= 1.0.5)
6
6
  cucumber (>= 7, < 10)
7
7
  get_process_mem (~> 0.2.1)
@@ -17,8 +17,7 @@ GEM
17
17
  specs:
18
18
  ast (2.4.2)
19
19
  backport (1.2.0)
20
- base64 (0.1.1)
21
- benchmark (0.2.1)
20
+ benchmark (0.3.0)
22
21
  benchmark-malloc (0.2.0)
23
22
  benchmark-perf (0.6.0)
24
23
  benchmark-trend (0.4.0)
@@ -29,43 +28,42 @@ GEM
29
28
  term-ansicolor (~> 1.7)
30
29
  thor (~> 1.2)
31
30
  tins (~> 1.32)
32
- cucumber (9.0.1)
31
+ cucumber (9.1.0)
33
32
  builder (~> 3.2, >= 3.2.4)
34
33
  cucumber-ci-environment (~> 9.2, >= 9.2.0)
35
- cucumber-core (~> 11.0, >= 11.0.0)
36
- cucumber-cucumber-expressions (~> 16.1, >= 16.1.2)
37
- cucumber-gherkin (>= 23.0.1, < 26.2.1)
34
+ cucumber-core (~> 12.0)
35
+ cucumber-cucumber-expressions (~> 17.0)
36
+ cucumber-gherkin (>= 24, < 27)
38
37
  cucumber-html-formatter (~> 20.4, >= 20.4.0)
39
- cucumber-messages (>= 18, < 23)
38
+ cucumber-messages (>= 19, < 23)
40
39
  diff-lcs (~> 1.5, >= 1.5.0)
41
40
  mini_mime (~> 1.1, >= 1.1.5)
42
41
  multi_test (~> 1.1, >= 1.1.0)
43
42
  sys-uname (~> 1.2, >= 1.2.3)
44
43
  cucumber-ci-environment (9.2.0)
45
- cucumber-core (11.1.0)
46
- cucumber-gherkin (>= 24, < 27)
47
- cucumber-messages (>= 19, < 22)
48
- cucumber-tag-expressions (~> 4.1, >= 4.1.0)
49
- cucumber-cucumber-expressions (16.1.2)
44
+ cucumber-core (12.0.0)
45
+ cucumber-gherkin (>= 25, < 27)
46
+ cucumber-messages (>= 20, < 23)
47
+ cucumber-tag-expressions (~> 5.0, >= 5.0.4)
48
+ cucumber-cucumber-expressions (17.0.0)
50
49
  cucumber-gherkin (26.2.0)
51
50
  cucumber-messages (>= 19.1.4, < 22.1)
52
51
  cucumber-html-formatter (20.4.0)
53
52
  cucumber-messages (>= 18.0, < 22.1)
54
- cucumber-messages (21.0.1)
55
- cucumber-tag-expressions (4.1.0)
53
+ cucumber-messages (22.0.0)
54
+ cucumber-tag-expressions (5.0.6)
56
55
  diff-lcs (1.5.0)
57
56
  docile (1.4.0)
58
- domain_name (0.5.20190701)
59
- unf (>= 0.0.5, < 1.0.0)
57
+ domain_name (0.6.20231109)
60
58
  e2mmap (0.1.0)
61
- ffi (1.15.5)
59
+ ffi (1.16.3)
62
60
  get_process_mem (0.2.7)
63
61
  ffi (~> 1.0)
64
- google-protobuf (3.24.2-x86_64-darwin)
65
- googleapis-common-protos-types (1.8.0)
62
+ google-protobuf (3.25.0-x86_64-darwin)
63
+ googleapis-common-protos-types (1.10.0)
66
64
  google-protobuf (~> 3.18)
67
- grpc (1.57.0-x86_64-darwin)
68
- google-protobuf (~> 3.23)
65
+ grpc (1.59.2-x86_64-darwin)
66
+ google-protobuf (~> 3.24)
69
67
  googleapis-common-protos-types (~> 1.0)
70
68
  http-accept (1.7.0)
71
69
  http-cookie (1.0.5)
@@ -79,30 +77,32 @@ GEM
79
77
  language_server-protocol (3.17.0.3)
80
78
  mime-types (3.5.1)
81
79
  mime-types-data (~> 3.2015)
82
- mime-types-data (3.2023.0808)
80
+ mime-types-data (3.2023.1003)
83
81
  mini_mime (1.1.5)
84
82
  multi_test (1.1.0)
85
83
  mustermann (3.0.0)
86
84
  ruby2_keywords (~> 0.0.1)
87
85
  netrc (0.11.0)
88
86
  nio4r (2.5.9)
87
+ nokogiri (1.15.4-arm64-darwin)
88
+ racc (~> 1.4)
89
89
  nokogiri (1.15.4-x86_64-darwin)
90
90
  racc (~> 1.4)
91
91
  nokogiri (1.15.4-x86_64-linux)
92
92
  racc (~> 1.4)
93
93
  parallel (1.23.0)
94
- parser (3.2.2.3)
94
+ parser (3.2.2.4)
95
95
  ast (~> 2.4.1)
96
96
  racc
97
- puma (6.3.1)
97
+ puma (6.4.0)
98
98
  nio4r (~> 2.0)
99
- racc (1.7.1)
99
+ racc (1.7.3)
100
100
  rack (2.2.8)
101
101
  rack-protection (3.1.0)
102
102
  rack (~> 2.2, >= 2.2.4)
103
103
  rainbow (3.1.1)
104
104
  rbs (2.8.4)
105
- regexp_parser (2.8.1)
105
+ regexp_parser (2.8.2)
106
106
  rest-client (2.1.0)
107
107
  http-accept (>= 1.7.0, < 2.0)
108
108
  http-cookie (>= 1.0.2, < 2.0)
@@ -129,19 +129,18 @@ GEM
129
129
  diff-lcs (>= 1.2.0, < 2.0)
130
130
  rspec-support (~> 3.12.0)
131
131
  rspec-support (3.12.1)
132
- rubocop (1.56.2)
133
- base64 (~> 0.1.1)
132
+ rubocop (1.57.2)
134
133
  json (~> 2.3)
135
134
  language_server-protocol (>= 3.17.0)
136
135
  parallel (~> 1.10)
137
- parser (>= 3.2.2.3)
136
+ parser (>= 3.2.2.4)
138
137
  rainbow (>= 2.2.2, < 4.0)
139
138
  regexp_parser (>= 1.8, < 3.0)
140
139
  rexml (>= 3.2.5, < 4.0)
141
140
  rubocop-ast (>= 1.28.1, < 2.0)
142
141
  ruby-progressbar (~> 1.7)
143
142
  unicode-display_width (>= 2.4.0, < 3.0)
144
- rubocop-ast (1.29.0)
143
+ rubocop-ast (1.30.0)
145
144
  parser (>= 3.2.1.0)
146
145
  ruby-progressbar (1.13.0)
147
146
  ruby2_keywords (0.0.5)
@@ -177,17 +176,15 @@ GEM
177
176
  ffi (~> 1.1)
178
177
  term-ansicolor (1.7.1)
179
178
  tins (~> 1.0)
180
- thor (1.2.2)
181
- tilt (2.2.0)
179
+ thor (1.3.0)
180
+ tilt (2.3.0)
182
181
  tins (1.32.1)
183
182
  sync
184
- unf (0.1.4)
185
- unf_ext
186
- unf_ext (0.0.8.2)
187
- unicode-display_width (2.4.2)
183
+ unicode-display_width (2.5.0)
188
184
  yard (0.9.34)
189
185
 
190
186
  PLATFORMS
187
+ arm64-darwin-22
191
188
  x86_64-darwin-21
192
189
  x86_64-linux
193
190
 
data/README.md CHANGED
@@ -570,7 +570,9 @@ go test -mod vendor -c -tags features -covermode=count -o your_binary -coverpkg=
570
570
  Setup it up programmatically:
571
571
 
572
572
  ```ruby
573
- Nonnative.go_executable('reports', 'your_binary', 'sub_command', '--config config.yaml')
573
+ tools = %w[prof trace cover]
574
+
575
+ Nonnative.go_executable(tools, 'reports', 'your_binary', 'sub_command', '--config config.yaml')
574
576
  ```
575
577
 
576
578
  Setup it up through configuration:
@@ -581,6 +583,7 @@ processes:
581
583
  -
582
584
  name: go
583
585
  go:
586
+ tools: [prof, trace, cover]
584
587
  output: reports
585
588
  executable: your_binary
586
589
  command: sub_command
@@ -69,7 +69,9 @@ module Nonnative
69
69
  go = process['go']
70
70
  if go
71
71
  params = go['parameters'] || []
72
- -> { Nonnative.go_executable(go['output'], go['executable'], go['command'], *params) }
72
+ tools = go['tools'] || []
73
+
74
+ -> { Nonnative.go_executable(tools, go['output'], go['executable'], go['command'], *params) }
73
75
  else
74
76
  -> { process['command'] }
75
77
  end
@@ -2,7 +2,8 @@
2
2
 
3
3
  module Nonnative
4
4
  class GoCommand
5
- def initialize(exec, output)
5
+ def initialize(tools, exec, output)
6
+ @tools = tools.nil? || tools.empty? ? %w[prof trace cover] : tools
6
7
  @exec = exec
7
8
  @output = output
8
9
  end
@@ -14,7 +15,7 @@ module Nonnative
14
15
 
15
16
  private
16
17
 
17
- attr_reader :exec, :output
18
+ attr_reader :tools, :exec, :output
18
19
 
19
20
  def flags(cmd, params)
20
21
  suffix = SecureRandom.alphanumeric(4)
@@ -23,14 +24,34 @@ module Nonnative
23
24
  name = [m, cmd, p].reject(&:empty?).join('-')[0...15]
24
25
  path = "#{output}/#{name}-#{suffix}"
25
26
 
27
+ prof(path) + trace(path) + cover(path)
28
+ end
29
+
30
+ def prof(path)
31
+ return [] unless tools.include?('prof')
32
+
26
33
  [
27
34
  "-test.cpuprofile=#{path}-cpu.prof",
28
35
  "-test.memprofile=#{path}-mem.prof",
29
36
  "-test.blockprofile=#{path}-block.prof",
30
- "-test.mutexprofile=#{path}-mutex.prof",
31
- "-test.coverprofile=#{path}.cov",
37
+ "-test.mutexprofile=#{path}-mutex.prof"
38
+ ]
39
+ end
40
+
41
+ def trace(path)
42
+ return [] unless tools.include?('trace')
43
+
44
+ [
32
45
  "-test.trace=#{path}-trace.out"
33
46
  ]
34
47
  end
48
+
49
+ def cover(path)
50
+ return [] unless tools.include?('cover')
51
+
52
+ [
53
+ "-test.coverprofile=#{path}.cov"
54
+ ]
55
+ end
35
56
  end
36
57
  end
@@ -8,34 +8,34 @@ module Nonnative
8
8
 
9
9
  protected
10
10
 
11
- def get(pathname, headers = {}, timeout = 60)
11
+ def get(pathname, opts = {})
12
12
  with_exception do
13
- uri = URI.join(host, pathname)
14
- RestClient::Request.execute(method: :get, url: uri.to_s, headers:, timeout:)
13
+ resource(pathname, opts).get
15
14
  end
16
15
  end
17
16
 
18
- def post(pathname, payload, headers = {}, timeout = 60)
17
+ def post(pathname, payload, opts = {})
19
18
  with_exception do
20
- uri = URI.join(host, pathname)
21
- RestClient::Request.execute(method: :post, url: uri.to_s, payload: payload.to_json, headers:, timeout:)
19
+ resource(pathname, opts).post(payload)
22
20
  end
23
21
  end
24
22
 
25
- def delete(pathname, headers = {}, timeout = 60)
23
+ def delete(pathname, opts = {})
26
24
  with_exception do
27
- uri = URI.join(host, pathname)
28
- RestClient::Request.execute(method: :delete, url: uri.to_s, headers:, timeout:)
25
+ resource(pathname, opts).delete
29
26
  end
30
27
  end
31
28
 
32
- def put(pathname, payload, headers = {}, timeout = 60)
29
+ def put(pathname, payload, opts = {})
33
30
  with_exception do
34
- uri = URI.join(host, pathname)
35
- RestClient::Request.execute(method: :put, url: uri.to_s, payload: payload.to_json, headers:, timeout:)
31
+ resource(pathname, opts).put(payload)
36
32
  end
37
33
  end
38
34
 
35
+ def resource(pathname, opts)
36
+ RestClient::Resource.new(URI.join(host, pathname).to_s, opts)
37
+ end
38
+
39
39
  private
40
40
 
41
41
  attr_reader :host
@@ -2,20 +2,26 @@
2
2
 
3
3
  module Nonnative
4
4
  class Observability < Nonnative::HTTPClient
5
- def health
6
- get('healthz', { content_type: :json, accept: :json })
5
+ def health(opts = {})
6
+ opts[:headers] ||= { content_type: :json, accept: :json }
7
+
8
+ get('healthz', opts)
7
9
  end
8
10
 
9
- def liveness
10
- get('livez', { content_type: :json, accept: :json })
11
+ def liveness(opts = {})
12
+ opts[:headers] ||= { content_type: :json, accept: :json }
13
+
14
+ get('livez', opts)
11
15
  end
12
16
 
13
- def readiness
14
- get('readyz', { content_type: :json, accept: :json })
17
+ def readiness(opts = {})
18
+ opts[:headers] ||= { content_type: :json, accept: :json }
19
+
20
+ get('readyz', opts)
15
21
  end
16
22
 
17
- def metrics
18
- get('metrics')
23
+ def metrics(opts = {})
24
+ get('metrics', opts)
19
25
  end
20
26
  end
21
27
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nonnative
4
- VERSION = '1.72.0'
4
+ VERSION = '1.74.0'
5
5
  end
data/lib/nonnative.rb CHANGED
@@ -58,8 +58,8 @@ module Nonnative
58
58
  File.readlines(path).select { |l| predicate.call(l) }
59
59
  end
60
60
 
61
- def go_executable(output, exec, cmd, *params)
62
- Nonnative::GoCommand.new(exec, output).executable(cmd, params)
61
+ def go_executable(tools, output, exec, cmd, *params)
62
+ Nonnative::GoCommand.new(tools, exec, output).executable(cmd, params)
63
63
  end
64
64
 
65
65
  def configuration
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nonnative
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.72.0
4
+ version: 1.74.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alejandro Falkowski
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-09-06 00:00:00.000000000 Z
11
+ date: 2023-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby