ci: bump workflows to Python v3.14 #2778#2832
ci: bump workflows to Python v3.14 #2778#2832kami922 wants to merge 5 commits intomandiant:masterfrom
Conversation
Summary of ChangesHello @kami922, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request focuses on modernizing the continuous integration (CI) environment by upgrading all relevant workflows and test matrices to Python 3.14. This ensures that the project remains compatible with the latest Python release, while also strategically including Python 3.13 in Ubuntu-specific tests to maintain broader version coverage and stability. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Ignored Files
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request updates the CI workflows to use Python 3.14, preparing the project for the upcoming Python release. The changes correctly modify the build, lint, and test workflows, and update the CHANGELOG.md. The logic of replacing Python 3.13 with 3.14 in the main test matrix while keeping a dedicated 3.13 run on Ubuntu is sound. I've added one suggestion to improve the readability of the test workflow configuration by keeping the included test versions sorted.
2b0da39 to
0494f85
Compare
|
@mike-hunhoff @williballenthin @mr-tz Hello can you please rerun only the failed test |
|
Hmm it looks like the Ubuntu 3.14 arm tests are never finishing. I don't see a specific failure, but it's running for >60 minutes, so I'm guessing a timeout. Thoughts @williballenthin @mr-tz ? |
|
Hello @mike-hunhoff @mr-tz I’m looking for some assistance regarding the current CI failures affecting my PRs. It appears that test_fix262 is failing consistently, and I wanted to check if this is a known issue on the main branch. Any advice on how to proceed would be appreciated. |
- Update code_style and rule_linter jobs to use Python 3.14 - Update tests matrix to use Python 3.14 across all OS - Add Python 3.13 to Ubuntu-specific test matrix - Update binja-tests, ghidra-tests, idalib-tests to use Python 3.14 Fixes mandiant#2778
d906e9a to
4fd58b0
Compare
|
See #2850 |
|
@kami922 we're back to where we were before with the tests failing after hanging for an extended period of time, e.g. testing 3.14 failed after 22 minutes on Ubuntu and 76 minutes on Windows. I'm not seeing any errors listed in the corresponding CI workflows - have you been able to run tests locally without issue? I'm concerned there is an issue specific to 3.14 that causes capa to run poorly... |
|
we should (mainly/also) bump https://github.com/mandiant/capa/blob/master/.github/workflows/build.yml (from Python 3.12 for the extra Linux build). ref: #2594 |
|
@mike-hunhoff @mr-tz Hello so far i could not come up with any particular reason why are tests failing or operation being timed out,how ever windows tests are now passing they were failing earlier. I intend to investigate further but if you could please share any suggestion on where to look for the source for these discrepancies would be helpful. |
|
I think this is probably a sign to hold off updating to 3.14. I'm not sure what the issues are but these all run for along time and eventually time out. I propose to close this for now and document in the associated issue. |
|
hello all please give me 1-2 days more to work on it I think it might be related to github's version of arm version but i need to do more research. in the meantime i have 1-2 suggestions first is to increase time for Ubuntu other is to bypass vivisect tests for arm Ubuntu. |
|
@mike-hunhoff @mr-tz @williballenthin Hello. Python 3.14 changed internal CPython interpreter mechanics that perform poorly when compiled with GCC on Linux ARM64, making vivisect's CPU-heavy binary analysis ~4x slower, which pushes the total test time past what the GitHub runner can handle. why does this not affect macos arm architecture is becuase macos uses clang while github's arm linux uses gcc. |
|
@mike-hunhoff @mr-tz you may close this for now or we can skip tests for particular OS as it passes on other architectures. |
would you please provide more explanation of this? it's an interesting explanation. how did you come to this conclusion? |
|
@williballenthin @mike-hunhoff
GCC on AArch64 hardware does not support preserve_none while Clang 19+ on macOS proves to support this feature fully. The interpreter needs to handle register "shuffling" together with stack handling for each bytecode instruction that it processes.
ref: I also guess it might be a know issue from here. |
This PR updates the CI workflows to use Python 3.14 for testing.
Changes
code_styleandrule_linterjobs to use Python 3.14testsmatrix to use Python 3.14 across all operating systemsbinja-tests,ghidra-tests,idalib-teststo use Python 3.14Fixes #2778