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
RFC: create-tauri-app Rewrite #77
Comments
I like it overall but I think there is two places that could be improved:
for this use-case, we could build
This should be the same flow as |
Yeah, whichever implementation for that is easiest and least duplication of work sounds perfect! I think the important bit would be to still allow a user to run something like
So this would prompt them to choose which template they want? Wouldn't that require bootstrapping a Node project if they choose anything except the basic HTML one? |
I agree
There will be more than one template for cargo, ideally we would have |
So for cargo path we'd still have the templating option, just to begin with it would be just vanilla. But the templates we offer to someone using cargo vs. node would be different, right? |
correct |
Awesome, updated that in the main body. Btw, for "vanilla", we should probably align the terms used in the docs and here. "Vanilla" and "HTML/CSS/JS" are the same and could be a bit confusing. |
Pulling Thoughts From Discord.This is a lovely compilation of information. The "Flows" will be especially helpful in designing the entry points. Note that we do have an RFC template with some questions that I think would be helpful to answer. We had a few points of discussion in discord that I am summarizing here for clarity.
Specific Comments Regarding Flows
Originally this felt a bit odd to me as this isn't a typical feature of
We were originally using the package manager that they invoke the project with. Is there a reason we are walking back on this concept? Specific Comments Regarding Initial Technical Implementation IdeasI am not specifically against using Rust, in part or full, for many / all of these features. I think the ideas around the shell script may be a bit misplaced. We have already seen issues downloading assets in the past to execute, and now we are expecting that the user has specific shells installed and configured off of a Moving Forward From HereI would recommend that we go through the RFC questions as well. This content currently is more of a research / spike / research phase. I think it is worth opening up a discussion (and the discussion board on CTA) to ask the community what was the positives and negatives of the current experience. We both want to improve on the current experience, and not regress unless there is a really pressing positive. In my push for better management and documentation, I have a few documents that I want to kind of get together around our current architecture and why we are looking to change it now. This will also serve useful for considering future work. |
With the new method of installation
why so? we are tryin to target more communities and when we make new bindings for tauri, new communities will need some templates of their own, and the most common tool between all developers no matter which community he is in, is a shell.
I am hoping to find a solution for this.
We will require macOS and Linux to have, |
https://github.com/chippers/tauri-init I haven't touched it in a few months, so far installing the system prerequisites only works on macOS. I had made some progress on Windows, but never finished it. Along with stuff like "we need to download the Microsoft VS binaries at runtime to satisfy their license distribution policy," automatically finding and installing only what the user is missing turned out to be difficult (or tedious?). It seems like Rustup has it's own answer to the problem that looks similar to what I was working on, where it installs the Windows prerequisites for Rustup during install (https://internals.rust-lang.org/t/help-verify-rustup-1-25-0-release/16783). I think the correct move for Windows support is waiting for that Rustup version to release and rely on that. It will eventually end up being the most common configuration even if it is different (not that I've checked). I haven't touched Linux, but I think it will be easier because we can support the most common distributions (mapping their version to the correct packages), and otherwise give a non-interactive prompt for the user with hints of where to look to find the correct packages and run their command to install it. The |
The purpose of the
create-tauri-app
rebuild is to create a single entry-point for any user coming from any background or project setup and enable them to quickly get started with Tauri.This should be implemented in a way that can run on any system without dependencies (i.e. Node, Rust) being setup and with the goal of including the work @chippers is working on around prerequisites.
Note: This is currently just in the stage where we request comments on the USER FLOW. The actual technical implementations and details can be hashed out during development.
Personas
These are the different types of users and the paths they could take when getting started with Tauri.
Benny: New Node Project User
Jannett: New Rust Project User
Jose: New to Both Ecosystems
Matéo: Existing Node Project User
Ginevra: Existing Rust Project User
Flows
Benny: New Node Project User
npm create tauri-app
@tauri-apps/cli
(thanks, Amr!)Jannett: New Rust Project User
cargo install create-tauri-app
create-tauri-app
binarycargo create-tauri-app
orcreate-tauri-app
Jose: New to Both Ecosystems
curl create.tauri.app | sh
that downloads and executescreate-tauri-app
Rust EngineMatéo: Existing Node Project User
npm create tauri-app
curl create.tauri.app | sh
that downloads and executescreate-tauri-app
Rust EngineGinevra: Existing Rust Project User
cargo install create-tauri-app
create-tauri-app
binarycargo create-tauri-app
orcreate-tauri-app
Common Flow
tauri init
prompting for these questions:package.json
)- ❗️ Would need to be added to
tauri init
upstream- ❗️ Would need to be added to
tauri init
upstreamTechnical Implementation
Shell Script
Only responsible for downloading and executing the compiled
create-tauri-app
Rust EngineNode
Only responsible for downloading and running the shell script (or directly downloading and executing the
create-tauri-app
Rust Engine)create-tauri-app
Rust EngineTBD
Templating System
Have some way to have centralised styles and assets to 1) minimise bundle size and 2) centralise styles if we want to update them later.
TBD
Prerequisites Checker
TBD, need to check with @chippers on this and see how we can implement it.
CC @amrbashir @JonasKruckenberg @chippers @FabianLars
The text was updated successfully, but these errors were encountered: