Skip to content

Trying out ideas for utility buildpacks build, package, test, release, libraries, frameworks, etc.

License

Notifications You must be signed in to change notification settings

mboldt/utility-buildpack-plumbing

Repository files navigation

utility-buildpack-plumbing

A place to try out ideas for utility buildpacks build, package, test, release, libraries, frameworks, etc.

Choices for Tooling

make for Entry Point

make is the de facto standard across CNB projects ( lifecycle, pack, libcnb, docs, samples, etc.).

pipeline-builder turns a small yaml file into all the common workflows for a buildpack. It handles things like testing, preparing and drafting releases, publishing images, updating dependencies, etc. libcnb uses pipeline-builder (see its pipeline descriptor).

Go for Language

Again, Go is the de facto standard across CNB projects (lifecycle, pack, libcnb). There are several Go libraries for developing buildpacks, (e.g., packit, libpak, gcpbuildpack, libbuildpack).

libcnb for Library

To remain neutral towards third-party libraries, we will use libcnb.

sclevine/spec for Test Framework

Another de facto standard across CNB projects (lifecycle, pack, libcnb).

To Do / Open Questions

  • Integration testing.
  • Linting
  • Use as a testbed for libcnbv2? Might have to deal with API changes.
    • Depends on which gets released first
    • Start with v1, use this as a migration guide?
  • Monorepo utility buildpacks?
    • E.g., to use one binary to reduce the size of the buildpacks
    • Maybe not at first, since there will only be one buildpack; planting the seed for the future

About

Trying out ideas for utility buildpacks build, package, test, release, libraries, frameworks, etc.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published