Skip to content

Package libdatadog 0.8.0 for Ruby#44

Merged
ivoanjo merged 3 commits into
mainfrom
ivoanjo/package-0.8.0-for-ruby
Aug 30, 2022
Merged

Package libdatadog 0.8.0 for Ruby#44
ivoanjo merged 3 commits into
mainfrom
ivoanjo/package-0.8.0-for-ruby

Conversation

@ivoanjo

@ivoanjo ivoanjo commented Aug 24, 2022

Copy link
Copy Markdown
Member

What does this PR do?

  • Update the needed versions and hashes to package libdatadog 0.8.0 for Ruby
  • Updates a few hardcoded file names to the new names adopted for 0.8.0

I'm following along the checklist at
https://github.com/DataDog/libdatadog/blob/main/ruby/README.md#releasing-a-new-version-to-rubygemsorg.

Motivation

Use latest release for Ruby profiling.

How to test the change?

I've gone ahead and updated the Ruby profiler to use this version in https://github.com/DataDog/dd-trace-rb/tree/ivoanjo/upgrade-to-libdatadog-0.8.0 . I am able to run the Ruby profiler test suite both on macOS as well as on Linux with the new release.

To reproduce my results, you need to do the following:

  • Check out this PR
  • Build the packages locally: cd ruby && bundle exec rake package
  • Check out dd-trace-rb
  • Change to the branch I mentioned above
  • Copy the ruby/pkg/libdatadog-0.8.0.1.0.gem that is generated by packaging to the root of the dd-trace-rb repository
  • Open the dd-trace-rb docker dev environment: docker-compose run --rm tracer-2.7 /bin/bash
  • Manually install the gem: gem install libdatadog-0.8.0.1.0.gem
  • Install other dependencies: bundle install
  • Run the profiler test suite: bundle exec rake clean compile && bundle exec rspec spec/datadog/profiling

@sanchda sanchda left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Observation checklist:

  • Updates hashes
  • Refactors variable names
  • References to ddprof_ffi_with_rpath are changed to datadog_profiling_with_rpath

I didn't check the hashes, but otherwise LGTM!

@ivoanjo ivoanjo merged commit 38d69b5 into main Aug 30, 2022
@ivoanjo ivoanjo deleted the ivoanjo/package-0.8.0-for-ruby branch August 30, 2022 16:38
ivoanjo pushed a commit that referenced this pull request Jun 18, 2025
This started with enhancing tags, but when I was done I discovered a
sigsev which could be triggered even from Rust code. I knew I had
screwed up the lifetimes and unsafe code.

So, I started working and I kept unravelling more and more.

Slice and vec have been split into their own files as lib.rs was
getting large.

Many From traits were changed to work with &T instead of T because of
lifetime issues.

In this PR, some C FFI APIs for tags have been removed. A subsequent PR
will add them back and enhance them. I wanted to keep the PR size to be
somewhat manageable.

Some places using some form of string have changed to use
`Cow<'static, str>`. This allows you to borrow static strings, and own
all others. When calling from C, the difference is very little because
they _should_ have been copied (probably, was unsafe if not). I believe
these are the changes which actually fixed the crash.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants