rushstack icon indicating copy to clipboard operation
rushstack copied to clipboard

Feature/introduce rust repo support

Open TheLarkInn opened this issue 2 years ago • 0 comments

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 --release flag into cargo based on production mode
  • [ ] rust/hello-world
    • [x] Emit bindgen/typings/binary to ./lib so 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
  • [ ] 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

TheLarkInn avatar Feb 08 '23 00:02 TheLarkInn