-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Investigate new base builder for buildpacks #5
Comments
Hi Peter - hope you are well. I just wanted to let you know that the I see the following references to these under the |
It also looks like the buildpacks list here is out of date: apppack-codebuild-image/builder/build/appjson.go Lines 35 to 54 in f96edcb
|
Thanks @edmorley! How are you handling migration between the CNB Python buildpacks and the classic shimmed one? The main thing that has held back a blanket upgrade to the 22/CNB stack is that (afaik), it is not backwards compatible. |
I agree there are a handful of things that aren't backwards compatible at the moment wrt the Python buildpack - I'm currently tracking these via the parity label here: Regarding |
@edmorley thanks for your work here. Opening issues downstream is above-and-beyond 😄 I do have concern that deprecating the legacy buildpack before the new one is at parity or an official migration doc exists will confuse a lot of users. I expect many users will see the deprecation warning, upgrade as directed, then find out the new builder is incompatible, possibly only after deploying their application. |
I agree there are still a couple of rough edges for some of the Heroku CNBs - they are high up our list to address. One of the issues is that from our side Heroku's CNB images are effectively pre-beta (they are not used for anything within Heroku itself at the moment), but some non-Heroku platforms are using them in production already. We're doing our best to be respectful of that, but we need feedback on the CNBs, and one of the best ways to get more feedback is to nudge people over from the shimmed images (many of whom don't even know they are using a "held together with tape and glue" shimmed buildpack). If the Heroku stack EOLs are anything to go by, people take ages to migrate to anything new, so I wanted to start the deprecation process sooner rather than later. |
For example: heroku/heroku-buildpack-python#1484 (Though in that case, they were using a custom builder image too; or at least a custom buildpack order injected by DigitalOcean) |
Oh meant to say - another forcing function here is: |
The legacy shimmed builder image deprecation warnings were upgraded to errors this morning: The errors can be skipped by setting |
Thanks @edmorley. I'm not seeing these errors in a Python build with |
The way the deprecation warnings (and now errors) were implemented was via a buildpack added to every group in the builder's default buildpack detection ordering. If a manual buildpack ordering is passed (eg via Longer term there is talk of the upstream CNB project supporting metadata in the builder that the platform (eg Pack CLI, or any other equivalent) could use to display deprecation warnings - however, for now I couldn't think of a better way of implementing the warnings. |
(Although in practice, it's the "blog post written 2 years ago that tells people to |
I came up with something - I've added the deprecation notice to the cnb-shim directly (and used the stack ID to differentiate between Heroku and non-Heroku builder images to work around the fact that cnb-shim is generic), in: |
Based on the flurry of support requests that just came through, I'm guessing this new approach means that this is no longer true? #5 (comment)
|
Yeah: |
We will switch our default buildpack to Pending PR: #6 I had hoped that there would be full feature parity between the shimmed and CNB buildpacks before we made the switch, but the EOL warnings/errors put us between a rock and a hard place. |
* Use CNB builder for heroku-22 stack refs #5 * Switch default builder to heroku/builder:22 * Add new buildpack * Test app.json too * Procfile buildpack now uses command and args * Test against legacy Heroku builder * Adjust tests for bash wrapper New procfile buildpacks add it
Heroku 22 builders have some incompatibilities we need to consider around CNB/non-CNB buildpacks.
heroku/cnb-builder-images#298 (comment)
heroku/buildpacks-python#14
There is also a new version of the 20 builder now heroku/buildpacks-python#117
The text was updated successfully, but these errors were encountered: