8000 Example gem structure doesn't seem to work? · Issue #397 · oxidize-rb/rb-sys · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Example gem structure doesn't seem to work? #397
Open
@pwoolcoc

Description

@pwoolcoc

I'm trying to start a new rb-sys-based gem, and thought I should use the example structure here: https://github.com/oxidize-rb/rb-sys/tree/main/examples/rust_reverse

However, when structuring my gem that way I get an error because rb_sys appears to expect a Cargo.toml to be found in the top-level directory. I don't mind putting one there, but I'm curious why the example is there without it. Is there something I could do to not need a top-level Cargo.toml?

Here's the current structure:

$ find . -type f
./bin/setup
./bin/console
./sig/my_gem.rbs
./ext/my_gem/Cargo.toml
./ext/my_gem/extconf.rb
./ext/my_gem/src/lib.rs
./README.md
./Rakefile
./.gitignore
./lib/my_gem.rb
./lib/my_gem/version.rb
./Gemfile
./my_gem.gemspec
./Gemfile.lock

When I run rake --tasks, I get this output:

$ rake --tasks
rake aborted!
RbSys::CargoMetadataError: Could not infer Rust crate information using `cargo metadata`.  Original error was:   RuntimeError: exited with non-zero status (pid 39361 exit 101)  Things to check:   - Check that your ext/*/Cargo.toml at is valid   - If you are using a workspace, make sure you are the root Cargo.toml exists   - Make sure `cargo` is installed and in your PATHStderr from `cargo metadata` was:
  error: could not find `Cargo.toml` in `/Users/me/Code/my_gem` or any parent directory
/Users/me/.rvm/gems/ruby-3.1.3/gems/rb_sys-0.9.98/lib/rb_sys/cargo/metadata.rb:154:in `rescue in cargo_metadata'
/Users/me/.rvm/gems/ruby-3.1.3/gems/rb_sys-0.9.98/lib/rb_sys/cargo/metadata.rb:141:in `cargo_metadata'
/Users/me/.rvm/gems/ruby-3.1.3/gems/rb_sys-0.9.98/lib/rb_sys/cargo/metadata.rb:136:in `package_metadata'
/Users/me/.rvm/gems/ruby-3.1.3/gems/rb_sys-0.9.98/lib/rb_sys/cargo/metadata.rb:76:in `manifest_path'
/Users/me/.rvm/gems/ruby-3.1.3/gems/rb_sys-0.9.98/lib/rb_sys/cargo/metadata.rb:48:in `manifest_directory'
/Users/me/.rvm/gems/ruby-3.1.3/gems/rb_sys-0.9.98/lib/rb_sys/extensiontask.rb:33:in `init'
/Users/me/.rvm/gems/ruby-3.1.3/gems/rake-compiler-1.2.7/lib/rake/baseextensiontask.rb:29:in `initialize'
/Users/me/.rvm/gems/ruby-3.1.3/gems/rb_sys-0.9.98/lib/rb_sys/extensiontask.rb:26:in `initialize'
/Users/me/Code/my_gem/Rakefile:7:in `new'
/Users/me/Code/my_gem/Rakefile:7:in `<top (required)>'
/Users/me/.rvm/gems/ruby-3.1.3/gems/rake-13.2.1/exe/rake:27:in `<top (required)>'
/Users/me/.rvm/gems/ruby-3.1.3/bin/ruby_executable_hooks:22:in `eval'
/Users/me/.rvm/gems/ruby-3.1.3/bin/ruby_executable_hooks:22:in `<main>'

Caused by:
exited with non-zero status (pid 39361 exit 101)
/Users/me/.rvm/gems/ruby-3.1.3/gems/rb_sys-0.9.98/lib/rb_sys/cargo/metadata.rb:149:in `cargo_metadata'
/Users/me/.rvm/gems/ruby-3.1.3/gems/rb_sys-0.9.98/lib/rb_sys/cargo/metadata.rb:136:in `package_metadata'
/Users/me/.rvm/gems/ruby-3.1.3/gems/rb_sys-0.9.98/lib/rb_sys/cargo/metadata.rb:76:in `manifest_path'
/Users/me/.rvm/gems/ruby-3.1.3/gems/rb_sys-0.9.98/lib/rb_sys/cargo/metadata.rb:48:in `manifest_directory'
/Users/me/.rvm/gems/ruby-3.1.3/gems/rb_sys-0.9.98/lib/rb_sys/extensiontask.rb:33:in `init'
/Users/me/.rvm/gems/ruby-3.1.3/gems/rake-compiler-1.2.7/lib/rake/baseextensiontask.rb:29:in `initialize'
/Users/me/.rvm/gems/ruby-3.1.3/gems/rb_sys-0.9.98/lib/rb_sys/extensiontask.rb:26:in `initialize'
/Users/me/Code/my_gem/Rakefile:7:in `new'
/Users/me/Code/my_gem/Rakefile:7:in `<top (required)>'
/Users/me/.rvm/gems/ruby-3.1.3/gems/rake-13.2.1/exe/rake:27:in `<top (required)>'
/Users/me/.rvm/gems/ruby-3.1.3/bin/ruby_executable_hooks:22:in `eval'
/Users/me/.rvm/gems/ruby-3.1.3/bin/ruby_executable_hooks:22:in `<main>'
(See full trace by running task with --trace)

Is there something in my gemspec or Rakefile I need to set to tell it where my Cargo.toml is?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0