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.
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.