heroku / buildpacks-ruby

Heroku's Cloud Native Buildpack for Ruby applications.
BSD 3-Clause "New" or "Revised" License
25 stars 7 forks source link

Migrate to the Struct API and output via `bullet_stream` #320

Closed schneems closed 2 months ago

schneems commented 2 months ago

This PR deprecates the commons::build_output module in favor of the bullet stream crate. It also uses the updated "struct API" from libcnb.rs. To minimize the change, I tried to avoid refactoring code as much as possible.

Future refactors (not implemented)

I would like to eventually move the layers/*.rs files out and get rid of that nested directory. It adds nothing but overhead. I would also like to refactor the enum based approach to layer invalidation. It's overly complex and adds little value. Ideally I would like a list of all keys that changed and I experimented with a way to do this automatically via relying on toml comparisons in https://github.com/heroku/buildpacks-ruby/pull/203. I think this can be extracted and generalized.