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.

  • BB_C
    link
    fedilink
    arrow-up
    2
    ·
    6 months ago

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

    • sabreW4K3@lazysoci.alOP
      link
      fedilink
      arrow-up
      3
      ·
      6 months ago

      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
        link
        fedilink
        arrow-up
        6
        ·
        6 months ago

        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.