Lifecycle maintainability when supporting multiple api versions #132
Replies: 4 comments 1 reply
-
Code in
and
We should have one |
Beta Was this translation helpful? Give feedback.
-
Our acceptance tests are full of
It's really hard to write and read such tests. |
Beta Was this translation helpful? Give feedback.
-
Adding on the acceptance tests and flags, we have a lot of logic around passing flags dynamically based on version.
We also have Even if we had unique I've also been thinking about what it may look like to adjust paths and env conventions if the upcoming spec gets the green light. That sounds miserable to have to support both in every test. Not related directly to the maintenance of the code, but I think it is also worth discussing how we can de-risk minor platform updates for platform operators. Today, if an operator wanted to get a bug fix for platform |
Beta Was this translation helpful? Give feedback.
-
More places that our code path depends on the buildpack API: Set default = true for web processes when platformAPI >= 0.6 and buildpackAPI < 0.6 Decode the LayerMetadataFile based on the buildpack API All of the build.go file is full of if conditions based on the buildpack API: |
Beta Was this translation helpful? Give feedback.
-
The lifecycle currently supports all buildpack APIs (currently, 0.2-0.6) and all platform APIs (currently, 0.3-0.7). Having a single binary that supports all buildpack APIs is important for end users - they should not have to worry about whether a set of buildpacks will work together. However having a single binary that supports all platform APIs might not be necessary.
Some possible ways forward that have been discussed:
platform
package, and similarly consolidate buildpack-specific logic in thebuildpack
packageTo aid in moving this conversation forward, we thought it would be helpful to document & describe all of the ways that supporting multiple api versions is causing us pain. Then it might be clearer what are the next steps we should take.
Please add your thoughts!
Beta Was this translation helpful? Give feedback.
All reactions