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

cargo atcoder new で edition が指定できない #63

Open
nebocco opened this issue Nov 6, 2021 · 1 comment · May be fixed by #65
Open

cargo atcoder new で edition が指定できない #63

nebocco opened this issue Nov 6, 2021 · 1 comment · May be fixed by #65

Comments

@nebocco
Copy link

nebocco commented Nov 6, 2021

私は rustup でデフォルトの toolchain を stable-x86_64-unknown-linux-gnu としているのですが、AtCoder の Rust は 1.42.0 であるため、~/.config/cargo-atcoder.toml 内で rust-toolchain を生成するように指定しています。

[project]
# to create `rust-toolchain` file, uncomment this line.
rustc_version = "1.42.0"

先日 Rust 1.56.0 が stable としてリリースされ、 2021 edition が始まりました。これを反映させるため rustup の update を行いましたが、その影響で cargo new によって生成されるクレートは edition="2021" の指定が入るようになりました。
以上の理由から、cargo atcoder new ... で生成されるプロジェクトを動かすためには Cargo.toml を手で書き換えなければなりません。

プロジェクト生成部

let stat = Command::new("cargo")

でオプションとして --edition 2018 を指定すればこれを解決できると思うのですが、

  • cargo-atcoder.toml で指定された rustc_version から指定するべき edition を自動で認識し、オプションとして付加する
  • rustc_version と同様に editioncargo-atcoder.toml で指定できるようにする
  • cargo atcoder new に対して cargo new で使用可能なコマンドを受け付けるようにして、実行時にそのまま渡すようにする

といった解決策が考えられると思います。

この点について PR を送りたいと思っているのですが、どのようにするべきかご意見いただけると幸いです。

@mizar
Copy link

mizar commented Jul 4, 2022

cargo atcoder new に毎回editionの指定が必要なのは煩雑になるので、editioncargo-atcoder.toml で指定できるようにした方がいい気がします。

以下は #65 を元にして rustc_editioncargo-atcoder.toml で指定できるように試みたものです。

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

Successfully merging a pull request may close this issue.

2 participants