Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

真的不需要“rust-toolchain.toml”来管理版本吗? #972

Open
immno opened this issue Nov 5, 2024 · 6 comments
Open

真的不需要“rust-toolchain.toml”来管理版本吗? #972

immno opened this issue Nov 5, 2024 · 6 comments

Comments

@immno
Copy link

immno commented Nov 5, 2024

默认下载一个最新的版本,其实和salvo的1.80是不匹配的,会导致一些潜在的问题:
image
高版本的情况:
image
使用rust-toolchain就会和项目版本进行匹配:
image

对于新参与开发的小伙伴来说,本地的rustc版本肯定是多样的,有的可能比salvo高,那基本不会出问题,如果有的比salvo低,build大概率就会出错(我记得我23年第一次拉取salvo时,build时就出错了,不知道怎么办,当时还是菜鸟)。
总之,我认为对于想要来提交或者新手来说,体验还是挺糟糕的(为什么报错?需要手动调整版本)。
可以参考其他项目,感觉还是挺有必要的:
openDAL
greptimeDB
databend

@chrislearn
Copy link
Member

这个 rust-toolchain.toml 是否是强制必须找个版本的 rust? 还是说高于这个版本的都可以?
如果是强制,肯定不能添加。

@immno
Copy link
Author

immno commented Nov 5, 2024

是强制和指定的版本的匹配,是最低版本。我理解是开发时需要的版本,salvoCargo.toml指定的是1.80,两者匹配是没问题的吧,会影响到打出来的包,不兼容其他版本?

@chrislearn
Copy link
Member

https://rust-lang.github.io/rustup/overrides.html#the-toolchain-file

你可以仔细阅读一下官方的说明

@immno
Copy link
Author

immno commented Nov 5, 2024

我没看出官方说出的问题,我只想到两个场景:

  1. 使用方如果使用低版本(比如1.60),但是salvo使用的是1.80,假设还使用了1.60不具备的一些特性,那使用方能正常使用和编译吗?
  2. 我使用1.82.0并使用特有的api为现在的salvo提交了功能,但是salvocargo.toml声明还是1.80,这个版本如果被发布,客户端是低于1.82的话,能正常使用和编译吗?

@chrislearn
Copy link
Member

  1. 版本低于 salvo 要求吗版本必定报错。
  2. 你这种情况 salvo 的 ci 根本过不去。

强制客户必须用哪个版本 rust 是不合理的。如果他使用了多个 crates 而他们每一个强制用户使用的 rust 版本不一致,会是什么情况。
你可以去看一下其他的 web 库也都没有这个文件的。

@immno
Copy link
Author

immno commented Nov 5, 2024

不是阿,只会在当前crate生效:

mno@happypeel:~/.rustup$ find . -maxdepth 2 -type d
.
./toolchains
./toolchains/1.67.1-x86_64-unknown-linux-gnu
./toolchains/1.77.0-x86_64-unknown-linux-gnu
./toolchains/nightly-x86_64-unknown-linux-gnu
./toolchains/1.65.0-x86_64-unknown-linux-gnu
./toolchains/1.75.0-x86_64-unknown-linux-gnu
./tmp
./downloads
./update-hashes

我在本地看能不能模拟一下,依赖一个具有rust-toolchain.toml的库,会不会影响当前库的rustc版本以及正常使用

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants