-
Notifications
You must be signed in to change notification settings - Fork 11
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
Refactor binary builder #502
base: main
Are you sure you want to change the base?
Conversation
4dc6d37
to
ce1aefe
Compare
@TisVictress whats the reason for this PR being a draft still?
|
dependency/actions/compile/entrypoint/extensions/extensions-8.1.json
Outdated
Show resolved
Hide resolved
e5a24ce
to
c3c3c8a
Compare
@sophiewigmore I didn't get a chance to add some comments but I split the main file out into The Compilation works for jammy and bionic. |
Are you specifically looking for feedback on that? Or is it in progress?
This is pretty important so we can verify that we haven't changed any behaviour with the new dependencies. |
dependency/actions/compile/entrypoint/extensions/extensions-8.1.json
Outdated
Show resolved
Hide resolved
RUN apt-get update && \ | ||
apt-get -y install \ | ||
autoconf \ | ||
automake \ | ||
bison \ | ||
build-essential \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same comment as on the bionic Dockerfile - If we're compiling on the stack image we shouldn't need to install all of these things because a good number of them should already be there. There may be a few we still need to install
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@TisVictress this comment still stands.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This comment still stands :/ a lot of these packages are on the Full jammy build image.
In general the new split has made things clearer, well done.
Would it be possible to achieve some kind of method override pattern, were
and then, we can use the common |
small nit - I noticed that the |
Just compiled 8.0.27 (bionic) and 8.1.15 (bionic and jammy) with the code here and put them into the buildpack. The integration tests here fail with:
during the step during the build phase where we try to install (and untar) the dependency. |
@sophiewigmore Each extension type is an |
Both |
c3c3c8a
to
a44df4e
Compare
@TisVictress have you had a chance to test out these changes in the buildpack? That's how I discovered the failures last time |
dependency/actions/compile/entrypoint/extensions/extensions2-8.1.json
Outdated
Show resolved
Hide resolved
@sophiewigmore This looks like a bad merge. I have some files in here that should be deleted. I'll update the PR...sorry about that |
@sophiewigmore Yes...I used the integration tests and they were green. |
c7702b9
to
b06fbb2
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general I think this looks great. Thanks for all the hard work @TisVictress - I appreciate you sticking with it for so long!
My review has essentially only been around writing Golang / using packit
. I don't have enough context on the php extensions to have an opinion on any of those.
I have a couple of minor suggestions about improved error handling and resiliency (inline). But I don't think any of them should block the merging of this PR.
ce21d3f
to
81ebff5
Compare
apt-get -y install \ | ||
automake \ | ||
build-essential \ | ||
bundler \ | ||
cmake \ | ||
curl \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am still wondering why we need to install this entire list of packages if were building on the stack
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh yes sorry @sophiewigmore I'll see what can be removed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
there may be packages we need here that aren't in the stack image though so might need to do a cross-check against the build image receipt
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@TisVictress this comment still stands, a large number of these packages are in the Bionic stack build image. :/
"name": "psr", | ||
"version": "1.2.0", | ||
"md5": "07695da8376002babbce528205decf07" | ||
}, | ||
{ | ||
"name": "solr", | ||
"version": "2.6.0", | ||
"md5": "ac5e1e1fbf28e0c543a52c533c967634" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking at the list of extensions here, it seems like some extensions that were in the old extensions-manifests/extensions-8.2.yml file are missing, like pdo_oci
and oci8
, and possibly others. I didn't check 8.0 and 8.1 but we need to make sure we're not missing extensions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sophiewigmore I removed them because it doesn't seem that they are actually getting installed. For example, there is a check for oci8 that seems to always return false for the currently supported versions (https://github.com/cloudfoundry/binary-builder/blob/main/recipe/php_meal.rb#L202). And some extensions were causing make test
to fail, because the test wasn't expecting to see these extensions pop up. I'll rerun the test and post the failing extensions here. If you think I should add them back, I can update the current tests to include them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@TisVictress that's strange... hmmm. It could be worthwhile just double checking if the versions of PHP in the buildpack.toml now have those extensions or not. If not then we're probably OK to leave them out, but I'm worried to stop supporting them if they do somehow end up available in the versions of PHP we currently ship, you know?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any update on this?
3f35bb1
to
fef9417
Compare
@@ -1,9 +1,11 @@ | |||
FROM ubuntu:22.04 | |||
FROM paketobuildpacks/build-jammy-full |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We're still installing a whole bunch of packages that are on the stack image (starting on line 10). Can we please pare this down?
fef9417
to
4468b9b
Compare
@TisVictress btw I was able to compile 8.1.21 on bionic, but 8.2.8 takes a really long time and errors out on my machine. Are you able to do it on your machine? |
4468b9b
to
a08c6b2
Compare
@sophiewigmore No I haven't had any issues. Would you mind trying again? |
@TisVictress what should we do with this PR? |
Remove binary builder code from compilation