2010YOUY01 commented on PR #23414: URL: https://github.com/apache/datafusion/pull/23414#issuecomment-4951235667
> > One minor clarification: xtask itself does not require installing any additional tools. It is more like a Cargo builtin feature (or convention): https://github.com/matklad/cargo-xtask > > I think you need to do > > ```shell > cargo install cargo-xtask > ``` That `cargo install` is not needed, it's a binary crate within `DataFusion` ``` cargo run --bin datafusion-xtask -- (extra args) # xtask is an alias for the above command cargo xtask (extra args) ``` It's more like a convention that is used in Rust ecosystem (e.g. cargo itself https://github.com/rust-lang/cargo/blob/master/.cargo/config.toml) to implement project-specific development commands and automation in Rust. The linked cargo-xtask repository only documents this convention, below is a quote from https://github.com/matklad/cargo-xtask ``` cargo-xtask is way to add free-form automation to a Rust project, a-la make, npm run or bespoke bash scripts. The two distinguishing features of xtask are: * It doesn't require any other binaries besides `cargo` and `rustc`, it fully bootstraps from them * Unlike bash, it can more easily be cross platform, as it doesn't use the shell. ``` > > > I still think xtask will be easier to use and maintain in the long term. The existing leaf scripts already contain additional logic rather than just invoking plain commands. Personally, I find Rust/xtask easier to work with: Rust is DataFusion's native language, and it provides more structure than shell scripts. > > I agree that shell scripts are not great for complex logic. What I was wondering is can we avoid complicated shell scripts by simplifying that logic (like does it need to follow all the dependency checks that the current CI does?) rather than finding a some system (like `xtask`) to help manage that complexity I agree we could pul such logic outside existing scripts to keep things easier to maintain. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
