rushstack
rushstack copied to clipboard
Feature/introduce rust repo support
This PR introduces a heft-napi-rs-plugin in addition to a rust/hello-world directory managed by rush and the aforementioned plugin. In addition .gitignore has been updated to filter /target folder which Rust and rust tooling integrations use for incremental build cache. For now, this PR will simply introduce Rust and the heft plugin to the monorepo, and not have a publishing process. This will allow us to experiment with writing integrations in Rust, and require/importing them in our other packages for benchmarking, usability testing.
- [ ] heft-napi-rs-plugin
- [x] Properly handle
child_process.spawn() - [ ] Errors fail a build from
rush build --to . - [ ] Errors output correctly in local build feedback
- [ ] Rust Warnings show as Warnings and not Errors
- [ ] Rust Output shows as Debug output and not Errors
- [ ] Conditionally passing
--releaseflag intocargobased on production mode
- [x] Properly handle
- [ ] rust/hello-world
- [x] Emit bindgen/typings/binary to
./libso it can be cleaned (Blocked: https://github.com/napi-rs/napi-rs/pull/1481) - [x] Bindgen JS File should generate every time not just on rust file changes. (Blocked: https://github.com/napi-rs/napi-rs/issues/1488)
- [ ] Hookup running both cargo tests
- [ ] Hookup running jest tests
- [x] Clean is setup properly from node-rig
- [x] Emit bindgen/typings/binary to
- [ ] Run README.md scripts for new packages
- [ ] Add README updates for links to Rust toolchain installation instructions
- [ ] Have fail fast detection for rust toolchain not being already installed.
Second Iteration Work:
- [ ] Setup publishing scripts (Analyze https://github.com/napi-rs/package-template)
- [ ] Add additional CI test matrix for linux distros, windows, and mac