Project Overview

The project, titled ‘GRPC Python compatibility support’, involved collaborating with the GRPC team to improve the library compatibility for the GRPC Python library.

Python is, originally, a specification for a programming language. This specification has been implemented differently in different implementations of the language specification.

A small, and by no means exhaustive, list of some major python implementations is:

  • CPython: The reference implementation
  • Jython: Python implemented in Java
  • Python for .NET: CPython implementation that enables .NET library usage
  • IronPython: Python implemented in .NET
  • PyPy: Python implemented completely in Python
  • Stackless: Replaces the dependency for the C call stack with it's own stack

The development in this project revolved around introducing changes to the codebase that enable support for latest stable as well as development releases of the reference implementation (CPython) of the Python programming language namely Python 3.4, Python 3.5,and Python 3.6 as well as the stable releases of the PyPy implementation. Special changes were required to enable PyPy support because PyPy has a non-deterministic garbage collector that does not rely on reference counting unlike the CPython garbage collector.

The changes to the codebase involved changes to the library code as well as changes to the tests and scripts in the test infrastructure which resulted in both the library as well as the testing infrastructure being Python 3.x and PyPy compatible.

The list of merged commits, as of 22.08.2016 23:59 CEST, is summarized here for the perusal of those interested:

The list of unmerged pull requests is as follows:

The list of tasks that have pending unsubmitted pull requests is as follows:

  • Modify run_tests.py to enable testing of new languages without affecting old branches.

Project Details