tommyli3318's Blog

Google Summer of Code with Nuitka 4th Weekly Check-in

tommyli3318
Published: 07/16/2019

1. What did you do this week?
This week, I worked on my script which automates the testing of nuitka-wheel pytest. Details can be found on my pull request: https://github.com/Nuitka/Nuitka/pull/440
Automated testing compares the pytest results of a nuitka wheel built using python setup.py bdist_nuitka to the uncompiled bdist_wheel pytest of each PyPI package. Testing is done to ensure that nuitka is building the wheel correctly. If the pytests pass/fail in the same way, that means Nuitka built the wheel properly. Else if the tests differ, then something is wrong. Virtualenv is used to create a clean environment with no outside pollution.
I used subprocess to capture the output from terminal for comparison. I also implemented mechanics to ignore the time differences found in pytests. Furthermore, the testing has been extended to three more packages.

2. What is coming up next?
Perfect the automation and extend the testing to even more PyPI packages. There are also bugs regarding PermissionError on the deletion of the .git folder that need to be fixed. Furthermore, there are inconsistencies between different packages which require special handling.

3. Did you get stuck anywhere?
Yes, output comparison took account of the time differences from pytests when that should have been ignored. I came up with a solution using regular expressions to find and standardize the time differences.


 

View Blog Post

Google Summer of Code with Nuitka 3rd Blog Post

tommyli3318
Published: 07/08/2019

This week, I created a script to automate the testing of nuitka-wheel pytest. Details can be found on my pull request: https://github.com/Nuitka/Nuitka/pull/440
Automated testing compares the pytest results of a nuitka wheel built using python setup.py bdist_nuitka to the regular python wheel pytest of each PyPI package. Testing is done to ensure that nuitka is building the wheel correctly. If the pytests pass/fail in the same way, that means Nuitka built the wheel properly. Else if the tests differ, then something is wrong. Virtualenv is used to create a clean environment with no outside pollution.

In addition, a post documenting manual test results of dateutil was made to nuitka.net with a pull request: https://github.com/Nuitka/Nuitka-website/pull/11

I ran into many bugs this week but I was proud of myself for being able to overcome all of them with the help of mentors. In particular, getting stdout and stderr from the virtualenv was not easy. There are also some PermissionErrors that I will still need to look more into. Nevertheless, automation now fully works for the urllib3 and dateutil packages and I am very happy with this week’s progress.

The plan for next week is to extend the automation to more PyPI packages.

View Blog Post

Google Summer of Code with Nuitka 3rd Weekly Check-in

tommyli3318
Published: 07/02/2019

1. What did you do this week?
Created a script to automate the testing of nuitka-wheel pytest. Details can be found on my pull request: https://github.com/Nuitka/Nuitka/pull/440
Automated testing compares the pytest results of a nuitka wheel built using python setup.py bdist_nuitka to the regular pytest of each PyPI package. Testing is done to ensure that nuitka is building the wheel correctly. If the pytests pass/fail in the same way, that means Nuitka built the wheel properly. Else if the tests differ, then something is wrong. Virtualenv is used to create a clean environment with no outside pollution.

2. What is coming up next?
Keep working to fully automate nuitka-wheel testing and fix current errors for urllib3. Then, extend the testing to other PyPI packages.

3. Did you get stuck anywhere?
Yes, testing creates two virtualenv directories which needs to be removed after testing. However, I ran into PermissionError on Windows because you cannot delete a binary that has been executed. I will need to look more into that to fix it. Furthermore, I ran into problems trying to get the virualenv to run correctly, but that has been fixed.


 

View Blog Post

Google Summer of Code with Nuitka 2nd Blog Post

tommyli3318
Published: 07/01/2019

This week, I created nuitka standalone tests for python-dateutil and pyyaml packages. Details can be found here: https://github.com/Nuitka/Nuitka/pull/418

In addition, I performed manual virtualenv pytest testing for the urllib3 package wheel built using nuitka. A pull request was made to document my work on the official nuitka.net website:  https://github.com/Nuitka/Nuitka-website/pull/10. The pull request was then merged, the full posting can be found here: https://nuitka.net/posts/urllib3-wheel-with-nuitka.html#

In summary, the tests passed with urllib3 and the results of uncompiled pytest was very similar to the nuitka-compiled pytest. However, there were a few minor differences. My aim is to make this process automatic to avoid having to manually perform testing for every PyPI package.

The plan for next week is to start automating the wheel nuitka tests with the top PyPI packages.
 

View Blog Post

Google Summer of Code with Nuitka 2nd Weekly Check-in

tommyli3318
Published: 06/17/2019

1. What did you do this week?
Created nuitka standalone tests for python-dateutil and pyyaml packages. Details can be found here: https://github.com/Nuitka/Nuitka/pull/418

Performed manual virtualenv pytest testing for the urllib3 package wheel built using nuitka. Details can be found here: https://github.com/Nuitka/Nuitka-website/pull/10

 

2. What is coming up next?
Finish up urllib3 wheel test report, then move on to manual virtualenv wheel tests for python-dateutil and pyyaml.

 

3. Did you get stuck anywhere?
Yes, the nuitka-built urllib3 wheel originally had import problems that was crashing pytest execution. The C code of nuitka was changed to fix the bug.

View Blog Post