Live data from Hacker News

Paketo: Modular Buildpacks in Go

paketo.io

21–30 of 32 posts

Re: Paketo: Modular Buildpacks in Go

#22
Some feedback on the page. I think I'm squarely in the target audience. I'm familiar with Heroku Buildpacks. I wrote my own tool to generically build projects by detecting languages, build tools, etc. I based the detection of Heroku Buildpacks. And I packaged the tool into builder images.

But reading this page, I can't tell what Paketo Buildpacks do, when I'd use them, or how I'd use them. Usage examples would probably help. Some clear call out of "You want to do X, we solve that".

For examples of why this page is hard to understand, see these sections:

- What are Buildpacks? - Basically says "CNCF Buildpacks are an evolution of buildpacks"

- What are Paketo Buildpacks? - Basically says "they use Cloud Native Buildpacks"

- Why Paketo Buildpacks? - Basically says "unlike other buildpacks, we are better buildpacks"

Even knowing what buildpacks are in general, and building container build automating for a living, I can't tell if I have a use for Paketo Buildpacks.

Re: Paketo: Modular Buildpacks in Go

#23
post #17

Buildpacks are used by Dokku and GitLab AutoDevOps via gliderlabs/herokuish. Herokuish is a large bash script; the language autodetection can be inscrutable at times; it has opinions I don't share (e.g. PHP should not commit composer vendor, and let the buildpack do it); so I switched to Dockerfiles and don't use it any more. Is this a replacement for herokuish? Can users use it today in those projects, or does it fi…

Dokku Maintainer here. Herokuish defers a lot of this work to the buildpacks. - Language autodetection performs the bin/detect script for each buildpack in order. Last one wins, unless you have a .buildpacks file, in which case we use the multi-buildpack executor. Not sure how it can be more... scrutable, but happy to hear suggestions (my github email in my HN profile has an email for contact) - Besides bundling Hero…

> For Gitlab, I believe they are or are planning on providing experimental support for CNB. You can probably already use it today if you use pack directly in your pipeline.

We shipped it today! https://gitlab.com/gitlab-org/gitlab/-/issues/25954

Re: Paketo: Modular Buildpacks in Go

#24

Earlier quoted context omitted.

It may be an insider perspective. Early buildpacks were dominantly written in Ruby or Bash (one major one was written in Python). The Bash ones were awful . There was a generation after these, but before Paketo, which were written in Golang. Consolidating the various codebases was a big step forward and left a deep impression.

Hey, I'm one of the engineers working on this project, and this is exactly why. Golang is not 'special' just the tool we use to set up your application configuration & dependencies. We left the Golang reference on the homepage to try and avoid the 'surprise' factor of realizing the Paketo Buildpacks are not written using the language support they provide.

Nitpick, but it's not Golang. It's Go.

Re: Paketo: Modular Buildpacks in Go

#25

Some feedback on the page. I think I'm squarely in the target audience. I'm familiar with Heroku Buildpacks. I wrote my own tool to generically build projects by detecting languages, build tools, etc. I based the detection of Heroku Buildpacks. And I packaged the tool into builder images. But reading this page, I can't tell what Paketo Buildpacks do, when I'd use them, or how I'd use them. Usage examples would probab…

+1 I am very much not the target audience (I don't really use build packs much), but I'm interested in the space (I am toying with the idea of running a PaaS) and it is very unclear to me why I would use this project instead of pack[0].

Currently I'm just defaulting to thinking that this is Cloud Foundry's attempt to enter the buildpack space, since standardization of the buildpack ecosystem (and adherence to set standards) lowers the bar of entry for them.

[0]: https://buildpacks.io/docs/install-pack/

Re: Paketo: Modular Buildpacks in Go

#26
post #17

Buildpacks are used by Dokku and GitLab AutoDevOps via gliderlabs/herokuish. Herokuish is a large bash script; the language autodetection can be inscrutable at times; it has opinions I don't share (e.g. PHP should not commit composer vendor, and let the buildpack do it); so I switched to Dockerfiles and don't use it any more. Is this a replacement for herokuish? Can users use it today in those projects, or does it fi…

Dokku Maintainer here. Herokuish defers a lot of this work to the buildpacks. - Language autodetection performs the bin/detect script for each buildpack in order. Last one wins, unless you have a .buildpacks file, in which case we use the multi-buildpack executor. Not sure how it can be more... scrutable, but happy to hear suggestions (my github email in my HN profile has an email for contact) - Besides bundling Hero…

> For Gitlab, I believe they are or are planning on providing experimental support for CNB. You can probably already use it today if you use pack directly in your pipeline.

You can try it out today using environment variables in your CI job.

Example:

- AUTO_DEVOPS_BUILD_IMAGE_CNB_ENABLED: 1 - AUTO_DEVOPS_BUILD_IMAGE_CNB_BUILDER: gcr.io/paketo-buildpacks/builder:base

Re: Paketo: Modular Buildpacks in Go

#27
You can try out Paketo with GitLab using CI environment variables:

You can try it out today using environment variables in your CI job.

Example:

- AUTO_DEVOPS_BUILD_IMAGE_CNB_ENABLED: 1 - AUTO_DEVOPS_BUILD_IMAGE_CNB_BUILDER: gcr.io/paketo-buildpacks/builder:base

Re: Paketo: Modular Buildpacks in Go

#28

Some feedback on the page. I think I'm squarely in the target audience. I'm familiar with Heroku Buildpacks. I wrote my own tool to generically build projects by detecting languages, build tools, etc. I based the detection of Heroku Buildpacks. And I packaged the tool into builder images. But reading this page, I can't tell what Paketo Buildpacks do, when I'd use them, or how I'd use them. Usage examples would probab…

+1 I am very much not the target audience (I don't really use build packs much), but I'm interested in the space (I am toying with the idea of running a PaaS) and it is very unclear to me why I would use this project instead of pack[0]. Currently I'm just defaulting to thinking that this is Cloud Foundry's attempt to enter the buildpack space, since standardization of the buildpack ecosystem (and adherence to set sta…

Thanks for the feedback about clarity. Paketo Buildpacks are supposed to be used with pack. Basic equation is (Pack) + (Cloud Native Buildpacks) = (OCI image). Packeto Buildpacks are an option for the Cloud Native Buildpacks piece.

Re: Paketo: Modular Buildpacks in Go

#29

Some feedback on the page. I think I'm squarely in the target audience. I'm familiar with Heroku Buildpacks. I wrote my own tool to generically build projects by detecting languages, build tools, etc. I based the detection of Heroku Buildpacks. And I packaged the tool into builder images. But reading this page, I can't tell what Paketo Buildpacks do, when I'd use them, or how I'd use them. Usage examples would probab…

+1 I am very much not the target audience (I don't really use build packs much), but I'm interested in the space (I am toying with the idea of running a PaaS) and it is very unclear to me why I would use this project instead of pack[0]. Currently I'm just defaulting to thinking that this is Cloud Foundry's attempt to enter the buildpack space, since standardization of the buildpack ecosystem (and adherence to set sta…

Cloud Foundry has had buildpacks for 6 years or so, initially soft forks of Heroku buildpacks (I worked on these for some time).

The standardisation came about because Heroku and Cloud Foundry folks teamed up.

In terms of your specific question: pack is a CLI tool for using buildpacks to generate images. Paketo is a supported collection of such buildpacks. An analogy might be that pack is a compiler, Paketo is a standard library.

Re: Paketo: Modular Buildpacks in Go

#30

Earlier quoted context omitted.

+1 I am very much not the target audience (I don't really use build packs much), but I'm interested in the space (I am toying with the idea of running a PaaS) and it is very unclear to me why I would use this project instead of pack[0]. Currently I'm just defaulting to thinking that this is Cloud Foundry's attempt to enter the buildpack space, since standardization of the buildpack ecosystem (and adherence to set sta…

Cloud Foundry has had buildpacks for 6 years or so, initially soft forks of Heroku buildpacks (I worked on these for some time). The standardisation came about because Heroku and Cloud Foundry folks teamed up. In terms of your specific question: pack is a CLI tool for using buildpacks to generate images. Paketo is a supported collection of such buildpacks. An analogy might be that pack is a compiler, Paketo is a stan…

Thanks very much for replying and clearing up my misunderstanding. This makes a lot more sense now and I understand exactly where Packeto sits.
Post reply on HN