Open immno opened 4 hours ago
这个 rust-toolchain.toml 是否是强制必须找个版本的 rust? 还是说高于这个版本的都可以? 如果是强制,肯定不能添加。
是强制和指定的版本的匹配,是最低版本。我理解是开发时需要的版本,salvo
在Cargo.toml
指定的是1.80
,两者匹配是没问题的吧,会影响到打出来的包,不兼容其他版本?
我没看出官方说出的问题,我只想到两个场景:
1.60
),但是salvo
使用的是1.80
,假设还使用了1.60
不具备的一些特性,那使用方能正常使用和编译吗?1.82.0
并使用特有的api为现在的salvo
提交了功能,但是salvo
的cargo.toml
声明还是1.80
,这个版本如果被发布,客户端是低于1.82
的话,能正常使用和编译吗?强制客户必须用哪个版本 rust 是不合理的。如果他使用了多个 crates 而他们每一个强制用户使用的 rust 版本不一致,会是什么情况。 你可以去看一下其他的 web 库也都没有这个文件的。
不是阿,只会在当前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
版本以及正常使用
默认下载一个最新的版本,其实和
salvo
的1.80是不匹配的,会导致一些潜在的问题: 高版本的情况: 使用rust-toolchain
就会和项目版本进行匹配:对于新参与开发的小伙伴来说,本地的
rustc
版本肯定是多样的,有的可能比salvo
高,那基本不会出问题,如果有的比salvo
低,build
大概率就会出错(我记得我23年第一次拉取salvo
时,build
时就出错了,不知道怎么办,当时还是菜鸟)。 总之,我认为对于想要来提交或者新手来说,体验还是挺糟糕的(为什么报错?需要手动调整版本)。 可以参考其他项目,感觉还是挺有必要的: openDALgreptimeDB databend