feather-rs / feather

A Minecraft server implementation in Rust
Apache License 2.0
2.58k stars 142 forks source link

issues using `cargo vendor` #552

Open yu-re-ka opened 1 year ago

yu-re-ka commented 1 year ago

Description

Projects depending on feather can not vendor their dependencies using cargo vendor

Reproduction Steps

  1. git clone https://cyberchaos.dev/yuka/rnat
  2. cd rnat
  3. mkdir .cargo
  4. cargo vendor > .cargo/config.toml
  5. cargo build --all-features

What You Expected to Happen

The vendored versions of the feather crates should work standalone

What Actually Happened

libcraft-blocks-... attempts to load assets from outside its crate root, and fails to build

Screenshots and Logs

error: couldn't read /home/yuka/rnat/vendor/libcraft-blocks/src/../../assets/raw_block_states.bc.gz: No such file or directory (os error 2)
   --> /home/yuka/rnat/vendor/libcraft-blocks/src/registry.rs:216:36
    |
216 |         static STATE_DATA: &[u8] = include_bytes!("../../assets/raw_block_states.bc.gz");
    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: this error originates in the macro `include_bytes` (in Nightly builds, run with -Z macro-backtrace for more info)

error: couldn't read /home/yuka/rnat/vendor/libcraft-blocks/src/../../assets/raw_block_properties.bc.gz: No such file or directory (os error 2)
   --> /home/yuka/rnat/vendor/libcraft-blocks/src/registry.rs:222:39
    |
222 |         static PROPERTY_DATA: &[u8] = include_bytes!("../../assets/raw_block_properties.bc.gz");
    |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: this error originates in the macro `include_bytes` (in Nightly builds, run with -Z macro-backtrace for more info)

error: could not compile `libcraft-blocks` due to 2 previous errors

Your Environment

Additional Context

It is a known bug in cargo that workspace git dependencies have issues with vendoring:

https://github.com/rust-lang/cargo/issues/8885 https://github.com/rust-lang/cargo/issues/11192

Bloeckchengrafik commented 1 year ago

Like abzh423 said in #550

It's dead I would say. No documentation, no clear structure. Start something on your own, would be much better, but this time make some nice ass documentation along the way.