imme5150/heroku-buildpack-turbo-sprockets — pull request #1 by friism (2014-01-28 18:28:00+00:00)
Title: Buildpack API changes

Hi there, my name is Michael and I work at Heroku. I'm opening this PR because I have not been able to find your contact info.

We are making some changes to the way app config is available during
builds and those changes are likely to affect users of your buildpack.
This is because many users of your buildpack have
[user-env-compile](https://devcenter.heroku.com/articles/labs-user-env-compile)
enabled. `user-env-compile`makes the app config available during
builds.

The change means that we will start injecting the application config
into builds on all apps, not just ones with the `user-env-compile`
[labs flag](https://devcenter.heroku.com/articles/labs-user-env-compile)
set. The user-env-compile labs feature will eventually be deprecated.

With this change to the Buildpack API, app config is available to the
buildpack’s `bin/compile` script as files in a directory. The location
of the directory is passed as the third argument to the `bin/compile`
script

```term

bin/compile BUILD_DIR CACHE_DIR ENV_DIR

```

The Heroku Ruby team has already made the relevant changes to the
mainline buildpack, so with any luck, you should be able to simple
port those: https://github.com/heroku/heroku-buildpack-ruby/pull/201

You can read more about how the `compile` script will work in this
[staging-version of the Buildpack API
documentation](https://devcenter.heroku.com/articles/buildpack-api-staging?preview=1#bin-compile).
The article also has sample Bash code demonstrating how to read and
export the contents of the `ENV_DIR` directory.

To get early access and test changes to your buildpack on a real app,
you can enable the `buildpack-env-arg` labs feature by running:

```term

$ heroku labs:enable buildpack-env-arg --app example-app

```

We expect to start passing the new argument to buildpacks on in the
coming weeks. During the rollout, you should check for existence of
the third argument to the `bin/compile` script. We will migrate apps
with `user-env-compile` when relevant buildpacks are updated to
support the `END_DIR` argument. Eventually, support for
`user-env-compile` will be removed and all builds will be passed the
ENV_DIR argument.

Once the rollout has completed, we recommend updating any buildpack
documentation that mentions `user-env-compile`. Users will no longer
have to add user-env-compile to use the application runtime
environment during builds.

If we don’t hear back from you, we will try to contact affected users
currently using `user-env-compile` to make them aware that builds with
your buildpack may stop working and suggest workarounds.

Feel free to get in touch at if you have any questions about this process.