nanoporetech / modkit

A bioinformatics tool for working with modified bases
https://nanoporetech.com/
Other
132 stars 7 forks source link

Update modkit 0.4.0 iusse #263

Open Macdot3 opened 4 days ago

Macdot3 commented 4 days ago

Hello everyone, I am trying to update the version of modkit from my current 0.3.3 to 0.4.0 using cargo. Below are my commands:

cd modkit
git pull origin master
cargo install --path .

I have always used these commands to update modkit without any issues. However, I encounter this error:

Compiling mod_kit v0.4.0 (/home/modkit)
error[E0658]: use of unstable library feature 'file_create_new'
   --> src/writers.rs:579:13
    |
579 |             File::create_new(fp).context("refusing to overwrite {fp:?}")?
    |             ^^^^^^^^^^^^^^^^
    |
    = note: see issue #105135 <https://github.com/rust-lang/rust/issues/105135> for more information

error[E0658]: use of unstable library feature 'file_create_new'
   --> src/localise/subcommand.rs:227:45
    |
227 |                     Box::new(BufWriter::new(File::create_new(out_fp)?))
    |                                             ^^^^^^^^^^^^^^^^
    |
    = note: see issue #105135 <https://github.com/rust-lang/rust/issues/105135> for more information

error[E0658]: use of unstable library feature 'file_create_new'
   --> src/localise/subcommand.rs:283:17
    |
283 |                 File::create_new(p)?
    |                 ^^^^^^^^^^^^^^^^
    |
    = note: see issue #105135 <https://github.com/rust-lang/rust/issues/105135> for more information

error[E0658]: use of unstable library feature 'file_create_new'
  --> src/stats/subcommand.rs:64:13
   |
64 |             File::create_new(&self.out_table)?
   |             ^^^^^^^^^^^^^^^^
   |
   = note: see issue #105135 <https://github.com/rust-lang/rust/issues/105135> for more information

For more information about this error, try `rustc --explain E0658`.
error: could not compile `mod_kit` (lib) due to 4 previous errors
error: failed to compile `mod_kit v0.4.0 (/home/modkit)`, intermediate artifacts can be found at `/home/modkit/target`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.`

I tried reading about the issue reported on GitHub, but I didn't quite understand if and how it was resolved. Could you provide support regarding this? Thank you very much for your availability.

ArtRand commented 2 days ago

Hello @Macdot3 could you tell me what cargo --version you have? You may just need to update it, it's very easy. For what it's worth I have cargo 1.80.1 locally and the toolchain is set to 1.80.1 but the CI builds with the latest version of cargo.

Macdot3 commented 2 days ago

Thank you, Arthur. Let me explain better. My current version of cargo is 1.75.0. Unfortunately, when I try to update with rustup update stable, it returns :

cd modkit
rustup update stable
rustup: command not found

I can't figure out why. I'm also writing to you with the content of modkit directory

CHANGELOG.md  
Cargo.toml   
ONT_logo_590x106.png 
advanced_usage.template  
collapse.md  
filtering.md                
pileup.log          
src     
tests     
Cargo.lock    
LICENCE.txt  
README.md             
book                     
docs         
generate_advanced_usage.sh  
rust-toolchain.toml  
target

Moreover, when I try to uninstall with cargo uninstall, it gives me: error: package mod_kit v0.4.0 (/home/modkit) is not installed it's all very strange, seems to be rustup non installed. Is it possible as an "emergency" solution to manually remove the modkit and .cargo folders from my home directory and reinstall everything? Thank you so much for your support.

DelphIONe commented 2 days ago

I had the same problem but after rust install with curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

it's ok for me :-)

Macdot3 commented 2 days ago

Thank you @DelphIONe, in your case, did you uninstall and remove the previous version, or did it overwrite it? Please take a look at the commands here:

:~/modkit$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
info: downloading installer
warning: it looks like you have an existing installation of Rust at:
warning: /usr/bin
warning: It is recommended that rustup be the primary Rust installation.
warning: Otherwise you may have confusion unless you are careful with your PATH
warning: If you are sure that you want both rustup and your already installed Rust
warning: then please reply `y' or `yes' or set RUSTUP_INIT_SKIP_PATH_CHECK to yes
warning: or pass `-y' to ignore all ignorable checks.
error: cannot install while Rust is installed

Continue? (y/N)
DelphIONe commented 2 days ago

rust was not installed

ArtRand commented 2 days ago

Hello @Macdot3,

The recommended way to manage rust installations is with rustup. So if it were me I would uninstall cargo and rustc and re-install everything with rustup.

Is it possible as an "emergency" solution to manually remove the modkit and .cargo folders from my home directory and reinstall everything?

It depends how many other programs you have cargo installed, you'll probably have to re-install them. That's usually not a problem, just extra work.

I would wipe out your current cargo installation and re-install the recommended way with rustup. If you can't do this for some reason, you could try and update cargo via the mechanism you used to install it in the first place - but to be honest you're just going to have more difficulties later.

Alternatively, can you use the pre-compiled versions of the modkit release?

Macdot3 commented 2 days ago

thank you very much Arthur, I uninstalled and removed everything, now there seems to be rust but when I run the commands again I get the following error almost at the end of the compilation:

Compiling thread-id v4.2.2
error: Unrecognized option: 'json'
error: could not compile `thread-id` (lib)
warning: build failed, waiting for other jobs to finish...
error: failed to compile `mod_kit v0.4.0 (https://github.com/nanoporetech/modkit.git#49b7bcc3)`, intermediate artifacts can be found at `/tmp/cargo-install5qAd56`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.

Compiling with cargo also helped me with updates without having to download the new file of the precompiled version of modkit every time. I'll try using it then, in case you have any other suggestions? thank you so much for your time

ArtRand commented 6 hours ago

@Macdot3 Could you show me what cargo --version shows as well as what command you're using to build the project? Could you try cargo build and/or cargo check from the repository directory?

Macdot3 commented 5 hours ago

After removing all the previous files related to rustc and cargo, I installed rustc, rustup, and cargo using this command:curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh. However, it installed the same version of cargo that I had before (1.75.0) but it installed rustup correctly. I ran the commands to install modkit, and I got the error I mentioned earlier. Thinking it might be a compatibility issue with the older version, following your advice, I installed cargo locally from this link: [] (https://static.rust-lang.org/dist/cargo-1.80.1-x86_64-unknown-linux-gnu.tar.xz) and followed the instructions in the README.md file. My version is: cargo 1.80.1 (376290515 2024-07-16). Could I try reinstalling?