-
Notifications
You must be signed in to change notification settings - Fork 292
fix linux PGO wheel build #1557
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
Conversation
CodSpeed Performance ReportMerging #1557 will not alter performanceComparing Summary
|
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.
The fact that this shows no perf diff is a good thing; this demonstrates that the PGO wheels are now correctly working.
(Previous commits on this branch did show a perf regression until the fix was added.)
- name: prepare profiling directory | ||
shell: bash | ||
# making this ahead of the compile ensures that the local user can write to this | ||
# directory; the maturin action (on linux) runs in docker so would create as root | ||
run: mkdir -p ${{ github.workspace }}/profdata |
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 turned out to be the critical change; as per the comment without this the linux jobs (which are built inside manylinux
docker containers) were failing to write out their profiling information.
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.
is there a way to build with "require profiling information" so build fails if it can't be found?
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.
The annoying thing is that the build already emits profiling information for the proc macros, so there will always be some. I'm also not sure of a way to enforce.
At least with the way CI is now set up, if the PGO breaks we will see codspeed regressions.
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.
looks good in principle to me.
- name: prepare profiling directory | ||
shell: bash | ||
# making this ahead of the compile ensures that the local user can write to this | ||
# directory; the maturin action (on linux) runs in docker so would create as root | ||
run: mkdir -p ${{ github.workspace }}/profdata |
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.
is there a way to build with "require profiling information" so build fails if it can't be found?
Change Summary
Changes CI to use the same PGO-optimized wheel build steps for both codspeed and release. I have a concern that the PGO step may not be working as intended; running the wheel through codspeed will be a good sanity check.
Related issue number
N/A
Checklist
pydantic-core
(except for expected changes)