Cherry-pick #18745 to 7.x: Fix bdist during installation of Python requirements #19905
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Cherry-pick of PR #18745 to 7.x branch. Original message:
What does this PR do?
This PR addresses an issue in the build system which produces errors similar to the following:
Note that these errors are from the APM CI where they have been discovered in builds for the APM Server project but the source of the errors appears to stem from libbeat.
A full discussion and background on this issue can be found here: elastic/apm-server#3661
Cause and resolution
I believe this may have been introduced during the migration to Python 3 but I don't have a test history that goes back far enough to confirm this.
This is a difficult-to-reproduce problem and I have yet to be able to do so locally. However, it seems clear that the issue is that the
wheel
Python package needs to be present in order for the wheels to be created. This fix attempts to simply simply tellpip
to installwheel
into the newly-created virtual environment before it proceeds with installing packages from the requirements file.Why is it important?
Fixes errors found in the CI on package which depend on
libbeat
.Checklist
I have made corresponding changes to the documentationI have made corresponding change to the default configuration filesI have added tests that prove my fix is effective or that my feature worksI have added an entry inCHANGELOG.next.asciidoc
orCHANGELOG-developer.next.asciidoc
.How to test this PR locally
I haven't found a way to just run the
PythonVirtualenv
target with mage but I did runmage pythonUnitTest
which does seem to exercise this code path.Related issues