libddprof 0.3.0.1.0 → 0.5.0.1.0.beta1

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: b2ce92269c1d416dd614fd809ab2b278ebd49f507a24964cedad595d5b3dd355
4
- data.tar.gz: 7b1ada468fde22067ef96ecdbab50eb044be99beef546e00aa22c1b966b270d9
3
+ metadata.gz: f01692aa38a65d01c888aa33c8d49ae4dabf4344402e4c7efed79e3804fb3073
4
+ data.tar.gz: 52e7f4818b2a1cf39a08bd7fbe51208c7c20649fd2978b7b1ad4685073324caf
5
5
  SHA512:
6
- metadata.gz: cfc894ce6c67a01dfa9c907c8e998deae664b14649c360e3d267ba29d915da250c21ff5a46208ed568db98a651ef43a43881dbf86ec018c83ea767b0494d0688
7
- data.tar.gz: 1bc31cca3ae4722c278578b45ca367e902b53c4dec5be17eb9fcfb72ad00714524bf7225ef3dddad4991f65d92b01bd2193b58e0d7603e9c27c4d4920c4ae80f
6
+ metadata.gz: 014be64f975e44baa87bb2766d3e2ad9ed5528f375aec84908e49daee883f9988f08530066c5487cf0d66feca901c58ae8683837e392e255ad8deabdfc6a0300
7
+ data.tar.gz: 83c1c491b99cf6c764405555c4d251be478e46f02d9147cecafd9bfb674f3debfaf4d4ca9c0976f902a091c037c177faaa452ef81675114feaf5024f195d0031
@@ -2,11 +2,11 @@
2
2
 
3
3
  module Libddprof
4
4
  # Current libddprof version
5
- LIB_VERSION = "0.3.0"
5
+ LIB_VERSION = "0.5.0"
6
6
 
7
7
  GEM_MAJOR_VERSION = "1"
8
8
  GEM_MINOR_VERSION = "0"
9
- GEM_PRERELEASE_VERSION = "" # remember to include dot prefix, if needed!
9
+ GEM_PRERELEASE_VERSION = ".beta1" # remember to include dot prefix, if needed!
10
10
  private_constant :GEM_MAJOR_VERSION, :GEM_MINOR_VERSION, :GEM_PRERELEASE_VERSION
11
11
 
12
12
  # The gem version scheme is lib_version.gem_major.gem_minor[.prerelease].
data/lib/libddprof.rb CHANGED
@@ -13,12 +13,12 @@ module Libddprof
13
13
  File.directory?(vendor_directory) ? (Dir.entries(vendor_directory) - [".", ".."]) : []
14
14
  end
15
15
 
16
- def self.pkgconfig_folder
16
+ def self.pkgconfig_folder(pkgconfig_file_name = "ddprof_ffi_with_rpath.pc")
17
17
  current_platform = Gem::Platform.local.to_s
18
18
 
19
19
  return unless available_binaries.include?(current_platform)
20
20
 
21
- pkgconfig_file = Dir.glob("#{vendor_directory}/#{current_platform}/**/ddprof_ffi.pc").first
21
+ pkgconfig_file = Dir.glob("#{vendor_directory}/#{current_platform}/**/#{pkgconfig_file_name}").first
22
22
 
23
23
  return unless pkgconfig_file
24
24
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libddprof
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0.1.0
4
+ version: 0.5.0.1.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-04 00:00:00.000000000 Z
11
+ date: 2022-03-18 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: libddprof contains implementation bits used by Datadog's ddtrace gem
14
14
  as part of its Continuous Profiler feature.
@@ -18,12 +18,6 @@ executables: []
18
18
  extensions: []
19
19
  extra_rdoc_files: []
20
20
  files:
21
- - ".rspec"
22
- - ".standard.yml"
23
- - README.md
24
- - Rakefile
25
- - docker-compose.yml
26
- - gems.rb
27
21
  - lib/libddprof.rb
28
22
  - lib/libddprof/version.rb
29
23
  homepage: https://docs.datadoghq.com/tracing/profiler/
@@ -45,11 +39,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
45
39
  version: 2.1.0
46
40
  required_rubygems_version: !ruby/object:Gem::Requirement
47
41
  requirements:
48
- - - ">="
42
+ - - ">"
49
43
  - !ruby/object:Gem::Version
50
- version: '0'
44
+ version: 1.3.1
51
45
  requirements: []
52
- rubygems_version: 3.3.3
46
+ rubygems_version: 3.3.7
53
47
  signing_key:
54
48
  specification_version: 4
55
49
  summary: Library of common code used by Datadog Continuous Profiler for Ruby
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --require spec_helper
data/.standard.yml DELETED
@@ -1,3 +0,0 @@
1
- # For available configuration options, see:
2
- # https://github.com/testdouble/standard
3
- ruby_version: 2.1
data/README.md DELETED
@@ -1,31 +0,0 @@
1
- # libddprof Ruby gem
2
-
3
- `libddprof` provides a shared library containing common code used in the implementation of Datadog's
4
- [Continuous Profilers](https://docs.datadoghq.com/tracing/profiler/).
5
-
6
- **NOTE**: If you're building a new profiler or want to contribute to Datadog's existing profilers,
7
- you've come to the right place!
8
- Otherwise, this is possibly not the droid you were looking for.
9
-
10
- ## Development
11
-
12
- Run `bundle exec rake` to run the tests and the style autofixer.
13
- You can also run `bundle exec pry` for an interactive prompt that will allow you to experiment.
14
-
15
- ## Releasing a new version to rubygems.org
16
-
17
- Note: No Ruby needed to run this! It all runs inside docker :)
18
-
19
- Note: Publishing new releases to rubygems.org can only be done by Datadog employees.
20
-
21
- 1. [ ] Locate the new libddprof release on GitHub: <https://github.com/DataDog/libddprof/releases>
22
- 2. [ ] Update the `LIB_GITHUB_RELEASES` section of the <Rakefile> with the new version
23
- 3. [ ] Update the <lib/libddprof/version.rb> file with the `LIB_VERSION` and `VERSION` to use
24
- 4. [ ] Commit change, open PR, get it merged
25
- 5. [ ] Release by running `docker-compose run push_to_rubygems`.
26
- (When asked for rubygems credentials, check your local friendly Datadog 1Password.)
27
- 6. [ ] Verify that release shows up correctly on: <https://rubygems.org/gems/libddprof>
28
-
29
- ## Contributing
30
-
31
- See <../CONTRIBUTING.md>.
data/Rakefile DELETED
@@ -1,163 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "bundler/gem_tasks"
4
- require "rspec/core/rake_task"
5
- require "standard/rake" unless RUBY_VERSION < "2.5"
6
-
7
- require "fileutils"
8
- require "http" unless RUBY_VERSION < "2.5"
9
- require "pry"
10
- require "rubygems/package"
11
-
12
- RSpec::Core::RakeTask.new(:spec)
13
-
14
- LIB_GITHUB_RELEASES = {
15
- "0.2.0" => [
16
- {
17
- file: "libddprof-x86_64-alpine-linux-musl.tar.gz",
18
- sha256: "d519a6241d78260522624b8e79e98502510f11d5d9551f5f80fc1134e95fa146",
19
- ruby_platform: "x86_64-linux-musl"
20
- },
21
- {
22
- file: "libddprof-x86_64-unknown-linux-gnu.tar.gz",
23
- sha256: "cba0f24074d44781d7252b912faff50d330957e84a8f40a172a8138e81001f27",
24
- ruby_platform: "x86_64-linux"
25
- }
26
- ],
27
- "0.3.0" => [
28
- {
29
- file: "libddprof-x86_64-alpine-linux-musl.tar.gz",
30
- sha256: "854609c1acc86f6653f539b3fe8780ad1e60d8738f85efdb3b1aa0054e75a217",
31
- ruby_platform: "x86_64-linux-musl"
32
- },
33
- {
34
- file: "libddprof-x86_64-unknown-linux-gnu.tar.gz",
35
- sha256: "d9c64567e7ef5f957581dd81892b144b81e1f52fdf5671430c7af0b039b48929",
36
- ruby_platform: "x86_64-linux"
37
- }
38
- ]
39
- # Add more versions here
40
- }
41
-
42
- task default: [
43
- :spec,
44
- (:'standard:fix' unless RUBY_VERSION < "2.5")
45
- ].compact
46
-
47
- desc "Download lib release from github"
48
- task :fetch do
49
- Helpers.each_github_release_variant do |file:, sha256:, target_directory:, target_file:, **_|
50
- target_url = "https://github.com/DataDog/libddprof/releases/download/v#{Libddprof::LIB_VERSION}/#{file}"
51
-
52
- if File.exist?(target_file)
53
- target_file_hash = Digest::SHA256.hexdigest(File.read(target_file))
54
-
55
- if target_file_hash == sha256
56
- puts "Found #{target_file} matching the expected sha256, skipping download"
57
- next
58
- else
59
- puts "Found #{target_file} with hash (#{target_file_hash}) BUT IT DID NOT MATCH THE EXPECTED sha256 (#{sha256}), downloading it again..."
60
- end
61
- end
62
-
63
- puts "Going to download #{target_url} into #{target_file}"
64
-
65
- File.open(target_file, "wb") do |file|
66
- HTTP.follow.get(target_url).body.each { |chunk| file.write(chunk) }
67
- end
68
-
69
- if Digest::SHA256.hexdigest(File.read(target_file)) == sha256
70
- puts "Success!"
71
- else
72
- raise "Downloaded file is corrupt, does not match expected sha256"
73
- end
74
- end
75
- end
76
-
77
- desc "Extract lib downloaded releases"
78
- task extract: [:fetch] do
79
- Helpers.each_github_release_variant do |target_directory:, target_file:, **_|
80
- puts "Extracting #{target_file}"
81
- File.open(target_file, "rb") do |file|
82
- Gem::Package.new("").extract_tar_gz(file, target_directory)
83
- end
84
- end
85
- end
86
-
87
- desc "Package lib downloaded releases as gems"
88
- task package: [:spec, :'standard:fix', :extract] do
89
- gemspec = eval(File.read("libddprof.gemspec"), nil, "libddprof.gemspec") # standard:disable Security/Eval
90
- FileUtils.mkdir_p("pkg")
91
-
92
- Helpers.package_without_binaries(gemspec)
93
- Helpers.package_linux_x86_64(gemspec)
94
- end
95
-
96
- desc "Release all packaged gems"
97
- task push_to_rubygems: [
98
- :package,
99
- :'release:guard_clean'
100
- ] do
101
- system("gem signout") # make sure there are no existing credentials in use
102
-
103
- system("gem push pkg/libddprof-#{Libddprof::VERSION}.gem")
104
- system("gem push pkg/libddprof-#{Libddprof::VERSION}-x86_64-linux.gem")
105
-
106
- system("gem signout") # leave no credentials behind
107
- end
108
-
109
- module Helpers
110
- def self.each_github_release_variant(version: Libddprof::LIB_VERSION)
111
- LIB_GITHUB_RELEASES.fetch(version).each do |variant|
112
- file = variant.fetch(:file)
113
- sha256 = variant.fetch(:sha256)
114
- ruby_platform = variant.fetch(:ruby_platform)
115
-
116
- # These two are so common that we just centralize them here
117
- target_directory = "vendor/libddprof-#{version}/#{ruby_platform}"
118
- target_file = "#{target_directory}/#{file}"
119
-
120
- FileUtils.mkdir_p(target_directory)
121
-
122
- yield(file: file, sha256: sha256, ruby_platform: ruby_platform, target_directory: target_directory, target_file: target_file)
123
- end
124
- end
125
-
126
- def self.package_without_binaries(gemspec)
127
- target_gemspec = gemspec.dup
128
-
129
- puts "Building a variant without binaries including:"
130
- pp target_gemspec.files
131
-
132
- package = Gem::Package.build(target_gemspec)
133
- FileUtils.mv(package, "pkg")
134
- puts("-" * 80)
135
- end
136
-
137
- def self.package_linux_x86_64(gemspec)
138
- # We include both glibc and musl variants in the same binary gem to avoid the issues
139
- # documented in https://github.com/rubygems/rubygems/issues/3174
140
- target_gemspec = gemspec.dup
141
- target_gemspec.files += files_for("x86_64-linux", "x86_64-linux-musl")
142
- target_gemspec.platform = "x86_64-linux"
143
-
144
- puts "Building for x86_64-linux including: (this can take a while)"
145
- pp target_gemspec.files
146
-
147
- package = Gem::Package.build(target_gemspec)
148
- FileUtils.mv(package, "pkg")
149
- puts("-" * 80)
150
- end
151
-
152
- def self.files_for(*included_platforms, version: Libddprof::LIB_VERSION)
153
- files = []
154
-
155
- each_github_release_variant(version: version) do |ruby_platform:, target_directory:, target_file:, **_|
156
- next unless included_platforms.include?(ruby_platform)
157
-
158
- files += Dir.glob("#{target_directory}/**/*").select { |path| File.file?(path) } - [target_file]
159
- end
160
-
161
- files
162
- end
163
- end
data/docker-compose.yml DELETED
@@ -1,14 +0,0 @@
1
- version: '3.2'
2
- services:
3
- push_to_rubygems:
4
- image: ruby:3.1
5
- platform: linux/x86_64
6
- stdin_open: true
7
- tty: true
8
- command: bash -c 'cd /libddprof/ruby && bundle install && bundle exec rake push_to_rubygems'
9
- volumes:
10
- - ..:/libddprof
11
- - bundle-3.1:/usr/local/bundle
12
-
13
- volumes:
14
- bundle-3.1:
data/gems.rb DELETED
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- # Specify your gem's dependencies in libddprof.gemspec
6
- gemspec
7
-
8
- gem "rake", ">= 12.0", "< 14"
9
- gem "rspec", "~> 3.10"
10
- gem "standard", "~> 1.3" unless RUBY_VERSION < "2.5"
11
- gem "http", "~> 5.0" unless RUBY_VERSION < "2.5"
12
- gem "pry"
13
- gem "pry-byebug" unless RUBY_VERSION > "3.1"