Giter Site home page Giter Site logo

Investigate Rust Rules about cook HOT 1 OPEN

jachris avatar jachris commented on July 20, 2024
Investigate Rust Rules

from cook.

Comments (1)

jachris avatar jachris commented on July 20, 2024

It seems like it would be nice to integrate Cargo directly into the build. There is a related discussion going on at rust-lang/rust-roadmap-2017#12.

There are a many ways to do this. Without changes to the current code one might create a rule that executes cargo with CARGO_TARGET_DIR=<random temp dir> and move the produced files to the build directory. This however means that the entire project must be rebuilt every time there is a change, since the cargo state is deleted afterwards.

I came up with two solutions:

  • Zip the entire cargo directory and unzip it when rebuilding. The published inputs would then be every file of the given directory containing the sources and cargo files. Expected outputs would probably be specified explicitly and copied after building.
  • Just let cargo keep its state in the intermediate directory and resolve #7 by allowing not only output files, but output directories. These would be analyzed by Cook after the build and their state would be recorded to ensure correctness.

There is another problem related to cargo downlading the crates. This could be resolved by specifying the version of dependencies in Cargo.toml explicitly (using = x.y.z).

from cook.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.