shake

Shake build system

https://github.com/ndmitchell/shake

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 85 committers (1.2%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.3%) to scientific vocabulary

Keywords from Contributors

init services system systemd
Last synced: 6 months ago · JSON representation ·

Repository

Shake build system

Basic Info
  • Host: GitHub
  • Owner: ndmitchell
  • License: other
  • Language: Haskell
  • Default Branch: master
  • Homepage: http://shakebuild.com
  • Size: 8.93 MB
Statistics
  • Stars: 782
  • Watchers: 26
  • Forks: 121
  • Open Issues: 199
  • Releases: 25
Created about 13 years ago · Last pushed about 1 year ago
Metadata Files
Readme Changelog Contributing License Citation

README.md

Shake Hackage version Stackage version Build status

Shake is a tool for writing build systems - an alternative to make, Scons, Ant etc. Shake has been used commercially for over five years, running thousands of builds per day. The website for Shake users is at shakebuild.com.

Documentation

  • Why use Shake? Shake lets you write large robust build systems, which deal properly with generated source files and run quickly. If you are writing a custom build system of any moderate size (more than a few rules) you should use Shake. The advantages over other build systems are detailed in the document Why choose Shake?.
  • How do I use Shake? Shake is a Haskell library that you use to define your rules. The Shake manual provides a walk through of a small but realistic example, assuming no Haskell knowledge.
  • Generated documentation for all functions, includes lots of examples.
  • Blog posts detailing ongoing development work.
  • Academic paper on the underlying principles behind Shake.

Other links

  • Download the Haskell package from Hackage and install it using Cabal.
  • Mailing list for any questions/bugs/thoughts on Shake. If you need more information and aren't sure where to start, use the mailing list.
  • Questions can be asked on StackOverflow with the tag shake-build-system.

Is your company using Shake? Write something public (even just a tweet to @ndm_haskell) and I'll include a link on the website.

Owner

  • Name: Neil Mitchell
  • Login: ndmitchell
  • Kind: user
  • Location: Cambridge, UK
  • Company: Meta

Haskell/Rust programmer. All code is open source and licensed by me, not my employer. All views are my own.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you need to cite Shake, this metadata is the paper that introduces Shake."
repository-code: "https://github.com/ndmitchell/shake"
title: Shake
url: "https://shakebuild.com"
preferred-citation:
  type: proceedings
  authors: 
  - family-names: Mitchell
    given-names: Neil
    orcid: "https://orcid.org/0000-0001-5171-9726"
  doi: "10.1145/2398856.2364538"
  journal: "ICFP '12: Proceedings of the 17th ACM SIGPLAN International Conference on Functional Programming"
  month: 9
  day: 10
  isbn: 978-1-4503-1054-3
  publisher: ACM
  title: "Shake Before Building - Replacing Make with Haskell"
  year: 2012
  url: https://ndmitchell.com/downloads/paper-shake_before_building-10_sep_2012.pdf
  abstract: "Most complex software projects are compiled using a build tool (e.g. make), which runs commands in an order satisfying user-defined dependencies. Unfortunately, most build tools require all dependencies to be specified before the build starts. This restriction makes many dependency patterns difficult to express, especially those involving files generated at build time. We show how to eliminate this restriction, allowing additional dependencies to be specified while building. We have implemented our ideas in the Haskell library Shake, and have used Shake to write a complex build system which compiles millions of lines of code."

GitHub Events

Total
  • Issues event: 4
  • Watch event: 18
  • Issue comment event: 3
  • Push event: 13
  • Pull request event: 2
  • Fork event: 3
Last Year
  • Issues event: 4
  • Watch event: 18
  • Issue comment event: 3
  • Push event: 13
  • Pull request event: 2
  • Fork event: 3

Committers

Last synced: 11 months ago

All Time
  • Total Commits: 5,873
  • Total Committers: 85
  • Avg Commits per committer: 69.094
  • Development Distribution Score (DDS): 0.194
Past Year
  • Commits: 13
  • Committers: 2
  • Avg Commits per committer: 6.5
  • Development Distribution Score (DDS): 0.077
Top Committers
Name Email Commits
Neil Mitchell n****l@g****m 4,732
Neil Mitchell u****n 817
Neil Mitchell n****l@s****m 63
Jorge Acereda j****a@g****m 55
Pepe Iborra p****a@g****m 21
Dale Wijnand d****d@g****m 21
Eric Wolf e****2@g****m 17
Fadil Mokhchane f****e@g****m 8
Stefan Kersten k****e@g****m 8
Mike Ledger m****e@q****m 7
Sven Heyll s****l@l****u 6
Edward Z. Yang e****g@c****u 6
Ryan Scott r****t@g****m 6
Adam Sandberg Eriksson a****m@s****e 5
Moritz Angermann m****n@g****m 5
Yuriy Syrovetskiy c****p@c****u 4
Gabor Greif g****f@g****m 4
Jens Petersen j****n@g****m 4
Thomas Schilling n****o@g****m 4
Sridhar Ratnakumar s****d@s****a 3
Sidharth Kapur s****1@g****m 3
Laurent Petit l****t@g****m 2
Joachim Breitner m****l@j****e 2
Ben Gamari b****n@s****g 2
Andrey Mokhov a****v@g****m 2
Austin Seipp as@f****m 2
Justin Paston-Cooper p****r@g****m 2
Mathnerd314 m****s@g****m 2
Mikhail Glushenkov m****v@g****m 2
Niklas Hambüchen m****l@n****e 2
and 55 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 73
  • Total pull requests: 35
  • Average time to close issues: 3 months
  • Average time to close pull requests: 4 months
  • Total issue authors: 44
  • Total pull request authors: 24
  • Average comments per issue: 3.41
  • Average comments per pull request: 2.8
  • Merged pull requests: 21
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 4
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: 2 days
  • Issue authors: 4
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.5
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • saurabhnanda (14)
  • ndmitchell (3)
  • omnibs (3)
  • pepeiborra (3)
  • jacereda (3)
  • adamse (3)
  • mpickering (2)
  • hlverstoep (2)
  • amigalemming (2)
  • andreasabel (2)
  • joneshf (2)
  • georgefst (2)
  • ad-si (1)
  • gergoerdi (1)
  • felixonmars (1)
Pull Request Authors
  • pepeiborra (7)
  • jacereda (3)
  • cdepillabout (2)
  • sergv (2)
  • juhp (2)
  • georgefst (2)
  • adamse (2)
  • RowDaBoat (2)
  • srid (1)
  • chrismwendt (1)
  • ghost (1)
  • hlverstoep (1)
  • saurabhnanda (1)
  • depressed-pho (1)
  • 1inguini (1)
Top Labels
Issue Labels
haddocks (4)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 55
proxy.golang.org: github.com/ndmitchell/shake
  • Versions: 55
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago

Dependencies

shake.cabal hackage
  • base >=4.9
  • base ==4.*
  • binary *
  • bytestring *
  • deepseq >=1.1
  • directory >=1.2.7.0
  • directory *
  • extra >=1.6.19
  • file-embed >=0.0.11
  • filepath *
  • filepattern *
  • hashable >=1.1.2.3
  • heaps >=0.3.6.1
  • js-dgtable *
  • js-flot *
  • js-jquery *
  • network *
  • network-uri *
  • primitive *
  • process >=1.1
  • random *
  • semigroups >=0.18
  • template-haskell *
  • time *
  • transformers >=0.2
  • unix >=2.5.1
  • unix *
  • unordered-containers >=0.2.7
  • utf8-string >=0.3
  • QuickCheck >=2.0 test
  • base ==4.* test
  • binary * test
  • bytestring * test
  • deepseq >=1.1 test
  • directory * test
  • extra >=1.6.19 test
  • file-embed >=0.0.11 test
  • filepath * test
  • filepattern * test
  • hashable >=1.1.2.3 test
  • heaps >=0.3.6.1 test
  • js-dgtable * test
  • js-flot * test
  • js-jquery * test
  • network * test
  • network-uri * test
  • primitive * test
  • process >=1.1 test
  • random * test
  • semigroups >=0.18 test
  • template-haskell * test
  • time * test
  • transformers >=0.2 test
  • unix * test
  • unix >=2.5.1 test
  • unordered-containers >=0.2.7 test
  • utf8-string >=0.3 test
.github/workflows/ci.yml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • haskell/actions/setup v1 composite
  • ndmitchell/neil master composite