Skip to content

build(deps): bump magnus from 0.8.2 to 0.9.0 in /bindings/ruby - #793

Open
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/cargo/bindings/ruby/magnus-0.9.0
Open

dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/cargo/bindings/ruby/magnus-0.9.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 28, 2026

Copy link
Copy Markdown
Contributor

Bumps magnus from 0.8.2 to 0.9.0.

Release notes

Sourced from magnus's releases.

0.9.0

Magnus 0.9.0 adds a handful of features and fixes, otherwise it is largely compatible with 0.8.

Magnus is a Rust library providing a high-level easy-to-use interface to the C API of the Ruby programming language. Magnus lets you write Ruby extension libraries (or 'gems') in Rust, or embed Ruby in your Rust program.

New Features

The debug module implements functions from Ruby's debug.h header, including Ruby::profile_frames, Ruby::debug_inspector_open, Ruby::tracepoint_new, and Ruby::postponed_job_preregister.

Conversions for C strings with Ruby::str_from_c_str, RString::to_c_string, and implementations of IntoRString for &CStr, IntoValue for &CStr, and TryConvert for CString.

RString::modify_expand to grow the capacity of a Ruby string.

RTypedData::as_ptr/typed_data::Obj::as_ptr to get the raw pointer to Rust data that has been wrapped as a Ruby object.

API changes

Minimum supported Rust version is now 1.85.

The supported Ruby versions are now 4.0, 3.4, 3.3, and 3.2. Magnus will compile with Ruby 3.1, but tests are no longer run for Ruby 3.1. Small patches will be accepted for Ruby 3.1 compatibility. Magnus will no longer compile with Ruby 2.7 and 3.0. As of the time of this release Magnus works with the unreleased Ruby 4.1. It is possible that changes in this unreleased version of Ruby may break compatibility before the release of 4.1.

Magnus is no longer tested on macOS Intel, though it should still compile and patches will be accepted for macOS Intel compatibility.

The 'old-api' feature, which previously disabled deprecation warnings for the old api (largely the ability to create Ruby objects with associated functions, like RArray::new) now enables/disables the old api, with deprecation warnings no longer optional. The old api will be removed entirely in the next (0.10.0) version of Magnus.

Ruby::define_global_function now returns Result<(), Error> rather than ().

RArray::each, has been removed, use ary.into_iter() or ary.enumeratorize(\"each\", ()) instead.

RStruct::get and RStruct::set have been removed. While they had a small performance benefit they posed a compatibility hazard with future versions of Ruby. They should be easily swapped for the directly compatible RStruct::aref and RStruct::aset.

The data_type_builder! and r_string! macros have been deprecated in favour of functions taking &'static CStr now that C-string literals are available in Rust. See the changelog for more details and other deprecations.


See the changelog for all the changes.

Thanks

@​ankane for support for conversions to/from CString and &CStr @​gjtorikian for a fix for compiling with the musl C standard library on 32-bit systems @​pboling for a fix for the future Ruby 4.1 release

Changelog

Sourced from magnus's changelog.

[0.9.0] - 2026-09-22

Added

  • Ruby::profile_frames to collect a lightweight backtrace for profiling.
  • Thread::profile_frames to collect a lightweight backtrace for profiling a specific thread.
  • Ruby::debug_inspector_open to acquire a DebugInspector struct that gives access to the current frame's self, class, binding, and instruction sequence.
  • Ruby::tracepoint_new and TracePoint to access Ruby's TracePoint api.
  • Ruby::postponed_job_preregister and PostponedJobHandle::trigger to register and trigger postponed jobs that can be triggered from non-Ruby threads/without the GVL to be run later from a Ruby thread with the GVL.
  • Conversions for C strings with Ruby::str_from_c_str, RString::to_c_string, and implementations of IntoRString for &CStr, IntoValue for &CStr, and TryConvert for CString.
  • RString::modify_expand to grow the capacity of a Ruby string.
  • RTypedData::as_ptr/typed_data::Obj::as_ptr to get the raw pointer to Rust data wrapped as a Ruby object.

Changed

  • Minimum supported Rust version is now 1.85.
  • Magnus will no longer compile with Ruby 2.7 and 3.0
  • 'old-api' feature, which previously disabled deprecation warnings for the old api now enables/disables the old api, with deprecation warnings no longer optional.
  • Ruby::define_global_function now returns Result<(), Error> rather than ().
  • Ruby::get no longer caches the GVL state of the current thread.

Deprecated

  • The data_type_builder! macro. Please use DataTypeBuilder::<Example>::new(c\"example\") instead.
  • The r_string! macro. Please use Ruby::utf8_str_new_static(c\"example\") instead.
  • gc::register_mark_object. Please use Ruby::gc_register_mark_object instead.
  • gc::register_address. Please use Ruby::gc_register_address instead.
  • gc::unregister_address. Please use Ruby::gc_unregister_address instead.
  • IntoValue::into_value_unchecked, IntoRString::into_r_string_unchecked, IntoSymbol::into_symbol_unchecked, and IntoId::into_id_unchecked. Please use the _with variant passing &Ruby::get_unchecked(), e.g. "example".into_r_string_with(&Ruby::get_unchecked()).

Removed

  • RArray::each, use ary.into_iter() or ary.enumeratorize(\"each\", ()) instead.
  • RStruct::get/RStruct::set, use RStruct::aref/RStruct::aset instead.

Fixed

  • Fixed error compiling on 32-bit musl platforms (e.g. arm-linux-musl).

Security

Commits
  • 4cd3e9d update changelog for 0.9.0 release
  • da562cc remove redundant homepage in Cargo.toml
  • 7ae0c5e TypedData::as_ptr
  • 9042b82 add RString::modify_expand
  • 347b986 protect call to rb_define_global_function
  • 94114ec protect call to rb_define_variable
  • f6a6b55 docs improvements
  • 53ad446 update changelog for c-string conversions
  • 4af78a1 fix compilation error for Ruby 3.1
  • 21f1e7a update function index and changelog for TracePoint additions
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [magnus](https://github.com/matsadler/magnus) from 0.8.2 to 0.9.0.
- [Release notes](https://github.com/matsadler/magnus/releases)
- [Changelog](https://github.com/matsadler/magnus/blob/main/CHANGELOG.md)
- [Commits](matsadler/magnus@0.8.2...0.9.0)

---
updated-dependencies:
- dependency-name: magnus
  dependency-version: 0.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update Rust code labels Sep 28, 2026
@codspeed

codspeed Bot commented Sep 28, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 12 untouched benchmarks


Comparing dependabot/cargo/bindings/ruby/magnus-0.9.0 (93cd810) with master (92f88c1)

Open in CodSpeed

@codecov

codecov Bot commented Sep 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.04%. Comparing base (92f88c1) to head (93cd810).

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #793   +/-   ##
=======================================
  Coverage   92.04%   92.04%           
=======================================
  Files          17       17           
  Lines        2603     2603           
=======================================
  Hits         2396     2396           
  Misses        207      207           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update Rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants