tommyli3318's Blog

Google Summer of Code with Nuitka 6th Blog Post

tommyli3318
Published: 08/19/2019

This week, I focused mostly on bug fixes and improving my PyPI-pytest automation script while also working on adding more standalone tests.

  1. I created a pull request https://github.com/Nuitka/Nuitka/pull/483 to add support for py_modules compilation support in Nuitka. The pull request turned out very well, adding support for not only py_modules compilation but also the combination of package and module. In addition, a new distutil example was also added to showcase the compilation of package and module

  2. In the process of the above pull request, I discovered a regression in Nuitka and https://github.com/Nuitka/Nuitka/pull/487 was created as a hotfix.

  3. In addition, Issue https://github.com/Nuitka/Nuitka/issues/479 is fixed by #483 and is now closed

  4. I continued to improve my PyPI-pytest automated testing script, including functional improvements, minor speed improvements, readability, and documentation improvements. My work could be found at https://github.com/Nuitka/Nuitka/pull/495.

  5. More standalone tests were also added to my pull request at https://github.com/Nuitka/Nuitka/pull/484. This is a side goal and is less important

 

I am very proud of the work I have done this week. The goal for this final week is to finish up pull request #495, and I plan on finishing #484 after GSoC ends. I also discussed with my mentor and plan on working for Nuitka long term, even after GSoC :). 


 

View Blog Post

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

tommyli3318
Published: 08/12/2019

1. What did you do this week?

This week, I finished 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

The script automates the manual testing of comparing pytest results of a nuitka compiled wheel using `python setup.py bdist_nuitka` to the pytest results of an uncompiled wheel built using `python setup.py bdist_wheel` for the most popular PyPI packages. 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.

Many improvements have been made this week, including the addition of more PyPI packages. The pull request was merged after some final touches.

In addition, standalone tests are now being created for the PyPI packages. Details can be found in my pull request: https://github.com/Nuitka/Nuitka/pull/484


2. What is coming up next?
Add more packages to standalone tests. Add support for py_modules only compilation with Nuitka. Work on documentation (README.rst) for the automated testing script. 


3. Did you get stuck anywhere?
I ran into some issues with the Jinja2 package. I’ve skipped over it for now for the sake of time but will hopefully get back to it in the future.

View Blog Post

Google Summer of Code with Nuitka 5th Blog Post

tommyli3318
Published: 08/06/2019

<meta charset="utf-8">

This week, I continued to work 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

 

The script automates the manual testing of comparing pytest results of a nuitka compiled wheel using `python setup.py bdist_nuitka` to the pytest results of an uncompiled wheel built using `python setup.py bdist_wheel` for the most popular PyPI packages. 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.

 

A lot was done this week, including:

 

Very proud of the work I have done this week. The pull request is pretty much ready to be merged at this point. The plan for next week is to find bugs and probably work on documentation for the test suite.

 

View Blog Post

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

tommyli3318
Published: 07/30/2019

1. What did you do this week?
This week, I continued to work 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

The script automates the manual testing of comparing pytest results of a nuitka compiled wheel using `python setup.py bdist_nuitka` to the pytest results of an uncompiled wheel built using `python setup.py bdist_wheel` for the most popular PyPI packages. 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.

Testing has been improved and extended to many more PyPI packages.


2. What is coming up next?
Perfect the script in preparation for merging and work on documentations.


3. Did you get stuck anywhere?
Some PyPI packages are special and require special handling during automation. I skipped these for the sake of speed, but I will need to get back to them in the future.

View Blog Post

Google Summer of Code with Nuitka 4th Blog Post

tommyli3318
Published: 07/22/2019

<meta charset="utf-8">

<meta charset="utf-8">

This week, I continued to work 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

 

The script automates the manual testing of comparing pytest results of a nuitka compiled wheel using `python setup.py bdist_nuitka` to the pytest results of an uncompiled wheel built using `python setup.py bdist_wheel` for the most popular PyPI packages. 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.

 

There were a lot of changes made this week.

  • Added an `__import__` check to make sure pytest used the correct (uncompiled or compiled) package

  • Added a mechanism to ignore certain tests which are unimportant (fixed the comparison issue for urllib3)

  • Added coloring to output for better visuals

  • Added a summary of all packages at the very end of testing

  • Extended testing to many more packages

  • Added local caching of `git clone`

  • Many run time improvements

 

Very proud of the work I have done this week. The plan for next week is to extend the automation to more PyPI packages.

 

View Blog Post