mietek / haskell-on-heroku

Buildpack for deploying Haskell apps
BSD 3-Clause "New" or "Revised" License
131 stars 16 forks source link

Support add-source #25

Closed lukerandall closed 9 years ago

lukerandall commented 10 years ago

We use a number of packages not on hackage, and would appreciate being able to use add-source to point to (for eg) a GitHub repo to add it as a source.

rehno-lindeque commented 10 years ago

This is by no means a solution, but see also https://github.com/mietek/haskell-on-heroku/pull/9

mietek commented 10 years ago

Thanks. This is planned as part of #4. See also #26 for a more concrete description.

mietek commented 10 years ago

Support for declaring sandbox sources is pending.

mietek commented 9 years ago

Declaring sandbox sources is now supported. You will need:

  1. A .halcyon/sandbox-sources magic file:

    git@github.com:circuithub/circuithub-entities#0.0.28
    git@github.com:circuithub/circuithub-prelude#0.0.4
    git@github.com:circuithub/comparable-key
    git@github.com:circuithub/octopart#0.0.3
    git@github.com:circuithub/persistent-chunked
    git@github.com:circuithub/persistent-mysql-extra
  2. A BUILDPACK_SSH_PRIVATE_KEY config var, for authenticating with GitHub:

    heroku config:set "BUILDPACK_SSH_PRIVATE_KEY=$( <~/.ssh/buildpack-ssh-private-key )"

As an example, my fork of tryhaskell now declares sandbox sources in this fashion, but using a public (HTTPS) git URL.

mietek commented 9 years ago

A more advanced, closed-source example, circuithub-api uses as many as 6 sandbox sources, plus additional dependencies, which cabal-install alone is unable to handle. (https://github.com/haskell/cabal/issues/220, https://github.com/haskell/cabal/issues/779). This includes OS libraries, such as libpcre, and executable-only Cabal packages, such as alex.