-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
bevy cli #436
Comments
Yeah I think eventually we'll need a bevy cli tool. But I do want to focus on using existing ecosystem tools where we can. And I also don't want a
we might actually need a custom tool for this. once we have working android / ios builds we should definitely discuss what automation is needed here.
yeah i like this 😄
yupyup good call
yeah these things are easy to mess up and would benefit from some validation. im hoping we can make the "cross" project (or something like it) work for us so we can have a standardized way of building things without too much custom setup. but i guess setting up docker presents its own set of problems.
yeah as bevy starts to stabilize and people start building serious projects in it, migrations are a good idea.
definitely an interesting idea. are clippy extensions a thing? it would be really cool to have some bevy clippy lints. the editor would likely do this at some point, so exposing that via cli is probably a good idea So yeah, in general i think this tool will become necessary eventually, but I don't want to build custom bevy tools when we can invest our development energy into ecosystem tools / use whats already out there. |
For templating you can use Hygen (I'm the author), get a feel for bevy+templates, and get a good idea of how a CLI can function in terms of developer experience for bevy. On the event that we'll never get to build that CLI, then you're left with a fully functioning app generator: It started as a toolchain for any project, grabbed a focus in the frontend community, but I do use it for everything (using the binary, no need for node.js) |
bevy_template currently supports a tiny bit of this functionality (mainly configuring fast-compile stuff and installing external linkers). I have a discussion topic open on it: #557 |
A Cargo extension would be preferable to requiring yet another executable. https://doc.rust-lang.org/book/ch14-05-extending-cargo.html |
The cargo-task crate looks like it might give us extended functionality, as it doesn't appear that an official version exists. |
I created a prototype, Notably, your CLI crate will have to be named I also created this tool before I found this issue, so I didn't include any of the thoughts here. |
Some thoughts from my experience with developing Project templatesThis is an important feature, currently there is a lot of boilerplate setup needed when you want the "full" Bevy experience, such as the fast compile configuration. When you're starting out (but also when you are experienced) you don't want to set that all up. You want to start with the interesting stuff immediately. Current state in
|
Jumping in the discussion, between my first comment and now, I've built Backpack. You might like it or parts of it (a few parts were extracted and packaged as library). |
I wasn't aware of the discussion here, but I made another discussion #6026 for a CLI/GUI tool that can incorporate some of these features. |
I recently published bevyinit. Made it to be an easy and practical way to create a project using bevy with some templates and useful options if you want to take a look: https://github.com/nigrodev/bevyinit making a doctor command that checks the environment isn't a bad idea, I'll look into it later |
I've written up some initial work scoping for this at https://hackmd.io/@bevy/rk2Qnf5i0/edit :) We're chatting about it on Discord, but I expect to see a proper working group soon. |
There's now a working group devoted to this. We're fleshing out the core architecture and are aiming to officially adopt it (and close this issue) once the core architecture is settled and at least one polished useful feature is in place. |
It would be great if we could have an official bevy cli. Here's some ideas off the top of my head for how it might look:
bevy new --template {shooter,2D,etc...}
- generates a new bevy project following the best bevy practicesbevy build {platform} --release
- builds the project and generates an artifact for the given platformbevy prepare {platform}
- prepares the platform to be built. Generates xcode project / android studio project, etc.bevy doctor
- checks your environment for any known gotchas.lld
orzld
are installedbevy upgrade --version {version}
- upgrades the bevy version, performing auto-migrations for breaking changesbevy lint
- possibly checks the project for best practices?A lot of this functionality could be replaced or improved by an editor, and there's much we'd want to change from this, but I believe it could be incredibly useful!
The text was updated successfully, but these errors were encountered: