payload: {"action":"closed","issue":{"url":"https://api.github.com/repos/buildpack/spec/issues/45","repository_url":"https://api.github.com/repos/buildpack/spec","labels_url":"https://api.github.com/repos/buildpack/spec/issues/45/labels{/name}","comments_url":"https://api.github.com/repos/buildpack/spec/issues/45/comments","events_url":"https://api.github.com/repos/buildpack/spec/issues/45/events","html_url":"https://github.com/buildpack/spec/issues/45","id":419016182,"node_id":"MDU6SXNzdWU0MTkwMTYxODI=","number":45,"title":"[Request] Provide mechanism for buildpacks to provide more information about failures","user":{"login":"jmorrell","id":175496,"node_id":"MDQ6VXNlcjE3NTQ5Ng==","avatar_url":"https://avatars3.githubusercontent.com/u/175496?v=4","gravatar_id":"","url":"https://api.github.com/users/jmorrell","html_url":"https://github.com/jmorrell","followers_url":"https://api.github.com/users/jmorrell/followers","following_url":"https://api.github.com/users/jmorrell/following{/other_user}","gists_url":"https://api.github.com/users/jmorrell/gists{/gist_id}","starred_url":"https://api.github.com/users/jmorrell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jmorrell/subscriptions","organizations_url":"https://api.github.com/users/jmorrell/orgs","repos_url":"https://api.github.com/users/jmorrell/repos","events_url":"https://api.github.com/users/jmorrell/events{/privacy}","received_events_url":"https://api.github.com/users/jmorrell/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2019-03-09T01:16:40Z","updated_at":"2019-04-13T02:19:46Z","closed_at":"2019-04-13T02:19:46Z","author_association":"NONE","body":"Currently the spec provides little support around what is likely the most interesting\r\ncase for both the buildpack developer and the application developer, when things go wrong:\r\n\r\nhttps://github.com/buildpack/spec/blob/master/buildpack.md#build\r\n\r\n![spec 2019-03-08 16-57-49](https://user-images.githubusercontent.com/175496/54063737-5a3ebd00-41c3-11e9-8168-a2ccaea12116.png)\r\n\r\nAt Heroku, we consistently see a small percentage of builds fail. There are a host of reasons a build might fail:\r\n\r\n- The developer hits a bug in a dependent library\r\n- The application developer has introduced a bug\r\n- The buildpack itself has a bug\r\n- They have misconfigured the build somehow\r\n- They exceed the memory provided by the build machine\r\n- Network partitions\r\n- Package manager is down\r\n- Typos in manifest files\r\n- etc\r\n\r\nAs an example, the number one reason that Node builds fail on Heroku is the app's `package.json` being incorrectly formatted JSON. At times this can account for 10%+ of Node failures. Most of the other common failures fall into only a handful of categories.\r\n\r\nThe software most likely to understand what went wrong is the buildpack itself, but it is limited in how it can communicate that information to other systems.\r\n\r\nThe ability to emit data on failure would allow a buildpack to surface information to the rest of the system which could provide helpful guidance to the user for common errors, or keep track of the relative rate of specific error types. If there is a sudden spike in `UNKNOWN` errors, this can alert the buildpack authors who can address the issue.\r\n"}}
other: {"actor":{"display_login":"sclevine"}}