libddprof 0.3.0.1.0 → 0.5.0.1.0.beta1

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: 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"