-
Notifications
You must be signed in to change notification settings - Fork 181
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
Support cargo-generate #169
base: main
Are you sure you want to change the base?
Conversation
- Generate the project using cargo-generate - Upload generated project as artifact - Download the artifact and use it in the following actions
Update workflows
Fix pages workflow
Use code blocks to allow click-copying code from github.
I love the idea but wouldn't this make it incompatible with using the github template feature? |
Yeah, I guess that would be the reason to keep the scripts around... |
Yeah, I guess if they use the GitHub template they can just change it manually or use the script (which will need to be updated). |
Given the problem I encountered with not being able to run one of my programs after upgrading to 0.30.0 it was nice to be able to just clone the template and try to see if it works and then say I tried it unmodified in the issue #177. If we set it up for cargo generate then we'd no longer be able to run it without using cargo generate and it would break CI in this repo. Given all of this I no longer think this is a good idea. |
I don't see how initializing the template would end up compromising the repo, so I don't agree with that point. With regards the CI, this PR updates the workflows so the CI continues to work. |
I agree with you it doesn't compromise the repo. However, there is something to be said for simplicity. When things are not working it's nice to be able to take as few steps as possible to get to a known working state.
I didn't test it yet but in case you know. Would cargo generate be able to modify the CI in the generated repo to be able to make it work in the new repo? I don't know for others but I really appreciated having it already setup to test and deploying my app automatically for me. I'm a bit more familiar with github actions now and it's not as big a deal for me but when I didn't understand this was very helpful for me that it came working. And to be clear, I am not against going with this PR. I'm just pointing out two trade offs I hadn't thought of previously:
That is not meant to take away from the fact that I more often want it to support cargo generate to quickly create a new project. It's just something to consider. |
Ahh, I see what you mean. Indeed, generated project CI would not work as is. I guess this needs more thought. |
cargo-generate
is a popular tool for generating projects from templates and significantly lowers the barrier to starting.This PR makes changes to support
cargo-generate
, enabling users to start a project with a single line:cargo generate --git https://github.com/emilk/eframe_template
The core changes are:
However, the bulk of changes are in order to update the github actions. The flow is as follows:
cargo-generate
Tangential changes to the actions:
actions-rs
actions are no longer maintained, so their usage has been removed. For rust toolchain, I'm usingdtolnay/rust-toolchain
action. Cargo commands are now just written out, instead of relying on an action.trunk
is installed usingcargo binstall
instead of usingwget