Coder Social home page Coder Social logo

fake.shake's Introduction

Fake.Shake

Build what you need, when you need it.

Based on the Shake paper, Fake.Shake stores a cache of previous builds and only rebuilds what you need when you run it.

Differences from the paper/Haskell Shake, or implementation details:

  • Assumes you'll be using Fake helpers, will integrate with them as we go along
  • Rules are defined a little differently, see Fake.Shake.DefaultRules.fsx
  • Currently using SHA1 of content of files rather than last modified time - will revisit if it causes performance issues
  • Using FsPickler to store cache results

Fake.Shake builds itself; to make the bootstrapping it #loads the Fake.Shake source files rather then referencing the compiled binary. There shouldn't be any need to do this in any other situation.

The current build contains the packaging and testing rules; changes to files that are depended on by one should not require a rebuild of the other, but changing anything both steps depend or in the core assembly will trigger partial rebuilds as required.

Have fun, send pull requests!

fake.shake's People

Contributors

mavnn avatar

Stargazers

Andrew Jones avatar Tony Abell avatar Georg Schneider avatar

Watchers

 avatar James Cloos avatar Tony Abell avatar

Forkers

mavnn yukibonji

fake.shake's Issues

Make builds concurrent

Which will require changes to the Results property of the build state. Or an actor type pattern. Or some other solution.

Create an projFile default rule

If it's possible! This should know how to determine all the files a proj file depends on (within reason!), require any project references and then finally call Fake's MsBuild helper on the project.

Osx build hangs

I've got to the point where I can run build.fsx on Osx (I had to add some #I include paths - I'll get a PR together when I get this sorted as I also added #I parsing into the build rules.).

When I run it hangs, with no activity, I guess its waiting on a channel or something in Hopac. I'm sprinkling tracefn calls around to see if I can track where...

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.