Project

libdatadog

1.08
There's a lot of open issues
libdatadog is a Rust-based utility library for Datadog's ddtrace gem.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies
 Project Readme

libdatadog Ruby gem

libdatadog provides a shared library containing common code used in the implementation of Datadog's libraries, including Continuous Profilers.

NOTE: If you're building a new Datadog library/profiler or want to contribute to Datadog's existing tools, you've come to the right place! Otherwise, this is possibly not the droid you were looking for.

Development

Run bundle exec rake to run the tests and the style autofixer. You can also run bundle exec pry for an interactive prompt that will allow you to experiment.

Testing packaging locally

First build the libdatadog binaries for your platform from source with bundle exec rake libdatadog:build, then package them into gems (without publishing) with bundle exec rake gem:package.

You can check the file permissions of the built gems with bundle exec rake gem:validate.

Releasing a new version to rubygems.org

Note: No Ruby needed to run this! It all runs in CI!

  1. Locate the new libdatadog release on GitHub: https://github.com/datadog/libdatadog/releases
  2. In the <lib/libdatadog/version.rb> file:
    • Update LIB_VERSION with the new version. Example: Setting "25.0.0" results in the first part of the string "25.0.0.1.0.x"
    • (OPTIONAL) Update GEM_PRERELEASE_VERSION with a prerelease descriptor. This is only needed if you want to do a prerelease. Example: Setting ".beta" results in "25.0.0.1.0.beta".
  3. Commit change, open PR, get it merged
  4. Trigger the "Build" workflow on main with the "Push gems to RubyGems.org" option enabled: https://github.com/DataDog/libdatadog-rb/actions/workflows/build.yml
  5. Verify that release shows up correctly on: https://rubygems.org/gems/libdatadog

Contributing

See <CONTRIBUTING.md>.