Giter Club home page Giter Club logo

Comments (1)

illicitonion avatar illicitonion commented on June 24, 2024

Thanks for filing this issue! I think this makes a lot of sense - definitely being able to cache these values across runs is very sensible.

Would you be interested in trying to put together a PR to implement this? The key pieces of code to affect would be:

  1. The entry-point here should optionally take a path to a hash file instead of a RevisionBefore - I'd probably introduce a new struct HashFileOrRevision which has either a HashFile or Revision set, and populate that on config.
  2. This calls into WalkAffectedTargets - accept a HashFileOrRevision for commitishBefore and pass it through to FullyProcess.
  3. In FullyProcess, populate queryInfoBefore by optionally deserializing JSON instead of calling fullyProcessRevision.

As far as I know, everything in QueryResults should be trivially JSON serializable (I think we'd need to add a Marshall implementation to MatchingTargets, but it's just a wrapper around a slice, so should be trivial).

We may want to nil-out any instances of analysis.ConfiguredTarget because they're probably very large and not useful other than for explaining why something changed. In fact, maybe all we want is to serialize MatchingTargets and TargetHashCache.cache, which maybe calls for its own struct purpose made for serialization/deserialization? We may also want to add some schema version number or similar but we can probably worry about that kind of thing in the future.

from target-determinator.

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.