this post was submitted on 10 Jun 2024
19 points (95.2% liked)

Rust

5901 readers
49 users here now

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

!performance@programming.dev

Credits

  • The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)

founded 1 year ago
MODERATORS
 

Morning all!

Okay, let me start out by saying that I know absolutely sweet F.A. about Rust. There's simply something I'm trying to get working and it's required me to make a few changes. And with every change, it's getting closer to building successfully… or so I hope.

Anyway, I'm here to bother you for a reason, not just to waffle. I was wondering if someone could be kind enough to explain this rust toolchain malarkey?

When I started trying to "fix" this thing (it's a dockerfile), I updated it to build from the latest and greatest rust and then updated to the latest and… I digress, point being it's failing some cargo stuff and I have reason to believe it's because of the rust toolchain which is set as nightly-2022-07-19 now, I thought I could just set that to stable, but upon reading some docs, I need to set the date. I was just wondering if someone could explain why? Why can't I just have the toolchain set to latest? It seems complicated for nothing.

you are viewing a single comment's thread
view the rest of the comments
[–] BB_C@programming.dev 2 points 4 months ago (1 children)

What unstable features are used by the project you're trying to fix?

[–] sabreW4K3@lazysoci.al 3 points 4 months ago (1 children)

I'm not sure. But I don't think it's any as it fails on these two lines

RUN cargo install --path ./ --force --no-default-features --features postgres
RUN cargo install --path plume-cli --force --no-default-features --features postgres

But I have zero experience, so I'm basically just trying things until it stops failing 🫣

[–] BB_C@programming.dev 6 points 4 months ago (1 children)

You could have just mentioned the project in question since its code is public.

https://git.joinplu.me/plume/plume

% git grep '#!\[feature'
plume-common/src/lib.rs:#![feature(associated_type_defaults)]
plume-front/src/lib.rs:#![feature(decl_macro, proc_macro_hygiene)]
plume-models/src/lib.rs:#![feature(never_type)]
plume-models/src/lib.rs:#![feature(proc_macro_hygiene)]
plume-models/src/lib.rs:#![feature(box_patterns)]
src/main.rs:#![feature(decl_macro, proc_macro_hygiene)]
% cat rust-toolchain
nightly-2022-07-19
% rm -f rust-toolchain
% cargo check

No errors from plume crates, but we get errors in a couple of locked dependencies:

error[E0422]: cannot find struct, variant or union type `LineColumn` in crate `proc_macro`
   --> /home/user64/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.49/src/wrapper.rs:479:33
    |
479 |                 let proc_macro::LineColumn { line, column } = s.start();
    |                                 ^^^^^^^^^^ not found in `proc_macro`
    |
help: consider importing one of these items
    |
1   + use crate::LineColumn;
    |
1   + use crate::fallback::LineColumn;
    |
help: if you import `LineColumn`, refer to it directly
    |
479 -                 let proc_macro::LineColumn { line, column } = s.start();
479 +                 let LineColumn { line, column } = s.start();
    |

   Compiling generic-array v0.14.6
error[E0422]: cannot find struct, variant or union type `LineColumn` in crate `proc_macro`
   --> /home/user64/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.49/src/wrapper.rs:496:33
    |
496 |                 let proc_macro::LineColumn { line, column } = s.end();
    |                                 ^^^^^^^^^^ not found in `proc_macro`
    |
help: consider importing one of these items
    |
1   + use crate::LineColumn;
    |
1   + use crate::fallback::LineColumn;
    |
help: if you import `LineColumn`, refer to it directly
    |
496 -                 let proc_macro::LineColumn { line, column } = s.end();
496 +                 let LineColumn { line, column } = s.end();
    |

    Checking once_cell v1.17.0
error[E0635]: unknown feature `proc_macro_span_shrink`
  --> /home/user64/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.49/src/lib.rs:92:30
   |
92 |     feature(proc_macro_span, proc_macro_span_shrink)
   |                              ^^^^^^^^^^^^^^^^^^^^^^

Let's see if a full (semver-compatible) deps update works:

% cargo update
% cargo check

This succeeds.

I will let you pick it from here.
Should be a good learning experience.

[–] sabreW4K3@lazysoci.al 1 points 4 months ago

You're glorious. Thank you so much!