- The add/set commands are ambiguous and confusing
- Forking/cloning requires a sometimes-long sequence of tedious add/set/clear commands
- The list of buildpacks isn't carried with the files in a repo
Can you set the whole list at once, eg heroku buildpacks:set url1, url2, url3
?
Or does it only set the final buildpack?
If you have a previously defined list, what does :set do?
Does it replace the final buildpack, or blow away the whole list, or error?
Does it add to the beginning or the end of the list? When you add with an --index, is it indexing from zero or from one?
Proposal
These things together might solve the problems:
Pinned buildpacks: once a buildpack is pushed, it gets the detected buildpack set on it.
heroku buildpacks:import
- imports buildpacks from app.json. overwrites existing buildpacks.Incorporate app.json into detection logic.