prometheus-client-mmap 0.20.2 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f91fbb3a1899d0093d51d92ab8dceec80981c6160b3a09d35d90117f29e6c3d0
4
- data.tar.gz: fea591800d5a3a2344082fd38df75f35aea8b5bf5394bcd7e20bf80d14dd48fd
3
+ metadata.gz: ddabdc180689b2098a062a41246907e31fc76ce668a4f1ca520c225f802a6dcd
4
+ data.tar.gz: b41caad16aa1f6710440fca61baf78cc84dd1e9a187f20b7e59afcb39d736b6b
5
5
  SHA512:
6
- metadata.gz: f6e98dda485f79a83fe614a21c52444fad33a69b208c4a6d637516c0390f79c9c54216dda50f7b151483d3e69fe4e7739ed0076984cb7497c59110f0f941b664
7
- data.tar.gz: 30bc5288dd7247222128b99a4cf88bdde9ca8625682b0d013dc5ea9cd6ce12aa5285be4b3a875f9a933dcc23e943c4b2cccc9ad9c53e273754a4dac46ddee1ed
6
+ metadata.gz: a5275669d21536a3d379ca606bff7f3df76aaa61df01b8f4ff5ad599304dfb19ec73f156e07eac2157c257373eb49bd4cfdaf951d6321b3dd3af4eb9245e3067
7
+ data.tar.gz: 65e34ad07012ea9e5e8c61594bbffbf37fa26019bdb673014b597abf10107c5b80c9f6ab065313402225fefcbc6494472f46b7e31e181eeac547e30196c6e071
data/README.md CHANGED
@@ -244,6 +244,19 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
244
244
 
245
245
  To install this gem onto your local machine, run `bundle exec rake install`.
246
246
 
247
+ ### Releasing a new version
248
+
249
+ To release a new version:
250
+
251
+ 1. Update `lib/prometheus/client/version.rb` with the version number.
252
+ 1. Update `CHANGELOG.md` with the changes in the release.
253
+ 1. Create a merge request and merge it to `master`.
254
+ 1. Push a new tag to the repository.
255
+
256
+ The new version with precompiled, native gems will automatically be
257
+ published to [RubyGems](https://rubygems.org/gems/prometheus-client-mmap) when the
258
+ pipeline for the tag completes.
259
+
247
260
  [1]: https://github.com/prometheus/prometheus
248
261
  [2]: http://rack.github.io/
249
262
  [3]: https://gitlab.com/gitlab-org/prometheus-client-mmap/badges/master/pipeline.svg
@@ -1,24 +1,30 @@
1
1
  require "mkmf"
2
2
  require "rb_sys/mkmf"
3
3
 
4
- create_rust_makefile("fast_mmaped_file_rs") do |r|
5
- r.auto_install_rust_toolchain = false
4
+ if find_executable('rustc')
5
+ create_rust_makefile("fast_mmaped_file_rs") do |r|
6
+ r.auto_install_rust_toolchain = false
6
7
 
7
- if enable_config('fail-on-warning')
8
- r.extra_rustflags = ["-Dwarnings"]
9
- end
8
+ if enable_config('fail-on-warning')
9
+ r.extra_rustflags = ["-Dwarnings"]
10
+ end
10
11
 
11
- if enable_config('debug')
12
- r.profile = :dev
13
- end
12
+ if enable_config('debug')
13
+ r.profile = :dev
14
+ end
15
+
16
+ if enable_config('address-sanitizer')
17
+ r.extra_rustflags = ["-Zsanitizer=address"]
18
+ end
14
19
 
15
- if enable_config('address-sanitizer')
16
- r.extra_rustflags = ["-Zsanitizer=address"]
20
+ # `rb_sys/mkmf` passes all arguments after `--` directly to `cargo rustc`.
21
+ # We use this awful hack to keep compatibility with existing flags used by
22
+ # the C implementation.
23
+ trimmed_argv = ARGV.take_while { |arg| arg != "--" }
24
+ ARGV = trimmed_argv
17
25
  end
26
+ else
27
+ puts 'rustc not found, skipping Rust extension.'
18
28
 
19
- # `rb_sys/mkmf` passes all arguments after `--` directly to `cargo rustc`.
20
- # We use this awful hack to keep compatibility with existing flags used by
21
- # the C implementation.
22
- trimmed_argv = ARGV.take_while { |arg| arg != "--" }
23
- ARGV = trimmed_argv
29
+ File.write('Makefile', dummy_makefile($srcdir).join(''))
24
30
  end
@@ -46,13 +46,22 @@ module Prometheus
46
46
 
47
47
  private
48
48
 
49
+ def load_rust_extension
50
+ begin
51
+ ruby_version = /(\d+\.\d+)/.match(RUBY_VERSION)
52
+ require_relative "../../../#{ruby_version}/fast_mmaped_file_rs"
53
+ rescue LoadError
54
+ require 'fast_mmaped_file_rs'
55
+ end
56
+ end
57
+
49
58
  def check_for_rust
50
59
  # This will be evaluated on each invocation even with `||=` if
51
60
  # `@rust_available` if false. Running a `require` statement is slow,
52
61
  # so the `rust_impl_available?` method memoizes the result, external
53
62
  # callers can only trigger this method a single time.
54
63
  @rust_available = begin
55
- require 'fast_mmaped_file_rs'
64
+ load_rust_extension
56
65
  true
57
66
  rescue LoadError
58
67
  Prometheus::Client.logger.info('FastMmapedFileRs unavailable')
@@ -1,6 +1,13 @@
1
1
  require 'prometheus/client/helper/entry_parser'
2
2
  require 'prometheus/client/helper/file_locker'
3
- require 'fast_mmaped_file'
3
+
4
+ # load precompiled extension if available
5
+ begin
6
+ ruby_version = /(\d+\.\d+)/.match(RUBY_VERSION)
7
+ require_relative "../../../#{ruby_version}/fast_mmaped_file"
8
+ rescue LoadError
9
+ require 'fast_mmaped_file'
10
+ end
4
11
 
5
12
  module Prometheus
6
13
  module Client
@@ -1,5 +1,5 @@
1
1
  module Prometheus
2
2
  module Client
3
- VERSION = '0.20.2'.freeze
3
+ VERSION = '0.21.0'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prometheus-client-mmap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.2
4
+ version: 0.21.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Schmidt
8
8
  - Paweł Chojnacki
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-04-19 00:00:00.000000000 Z
12
+ date: 2023-04-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rb_sys
@@ -79,14 +79,28 @@ dependencies:
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1'
82
+ version: 1.2.1
83
83
  type: :development
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '1'
89
+ version: 1.2.1
90
+ - !ruby/object:Gem::Dependency
91
+ name: rake-compiler-dock
92
+ requirement: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 1.3.0
97
+ type: :development
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 1.3.0
90
104
  - !ruby/object:Gem::Dependency
91
105
  name: ruby-prof
92
106
  requirement: !ruby/object:Gem::Requirement
@@ -101,7 +115,7 @@ dependencies:
101
115
  - - "~>"
102
116
  - !ruby/object:Gem::Version
103
117
  version: 0.16.2
104
- description:
118
+ description:
105
119
  email:
106
120
  - ts@soundcloud.com
107
121
  - pawel@gitlab.com
@@ -197,7 +211,7 @@ homepage: https://gitlab.com/gitlab-org/prometheus-client-mmap
197
211
  licenses:
198
212
  - Apache-2.0
199
213
  metadata: {}
200
- post_install_message:
214
+ post_install_message:
201
215
  rdoc_options: []
202
216
  require_paths:
203
217
  - lib
@@ -210,10 +224,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
210
224
  requirements:
211
225
  - - ">="
212
226
  - !ruby/object:Gem::Version
213
- version: '0'
227
+ version: 3.3.22
214
228
  requirements: []
215
- rubygems_version: 3.4.12
216
- signing_key:
229
+ rubygems_version: 3.3.26
230
+ signing_key:
217
231
  specification_version: 4
218
232
  summary: A suite of instrumentation metric primitivesthat can be exposed through a
219
233
  web services interface.