xref: /aosp_15_r20/external/grpc-grpc/summerofcode/2016/siddharth_shukla.md (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1*cc02d7e2SAndroid Build Coastguard WorkerProject Overview
2*cc02d7e2SAndroid Build Coastguard Worker================
3*cc02d7e2SAndroid Build Coastguard WorkerThe project, titled 'GRPC Python compatibility support', involved
4*cc02d7e2SAndroid Build Coastguard Workercollaborating with the GRPC team to improve the library compatibility
5*cc02d7e2SAndroid Build Coastguard Workerfor the GRPC Python library.
6*cc02d7e2SAndroid Build Coastguard Worker
7*cc02d7e2SAndroid Build Coastguard WorkerPython is, originally, a specification for a programming language. This
8*cc02d7e2SAndroid Build Coastguard Workerspecification has been implemented differently in different
9*cc02d7e2SAndroid Build Coastguard Workerimplementations of the [language specification](https://docs.python.org/3/reference/).
10*cc02d7e2SAndroid Build Coastguard Worker
11*cc02d7e2SAndroid Build Coastguard WorkerA small, and by no means exhaustive, list of some major python implementations
12*cc02d7e2SAndroid Build Coastguard Workeris:
13*cc02d7e2SAndroid Build Coastguard Worker
14*cc02d7e2SAndroid Build Coastguard Worker- [CPython](https://www.python.org/): The reference implementation
15*cc02d7e2SAndroid Build Coastguard Worker- [Jython](http://www.jython.org/): Python implemented in Java
16*cc02d7e2SAndroid Build Coastguard Worker- [Python for .NET](http://pythonnet.sourceforge.net/): CPython implementation that enables .NET library usage
17*cc02d7e2SAndroid Build Coastguard Worker- [IronPython](http://ironpython.net/): Python implemented in .NET
18*cc02d7e2SAndroid Build Coastguard Worker- [PyPy](http://pypy.org/): Python implemented completely in Python
19*cc02d7e2SAndroid Build Coastguard Worker- [Stackless](https://bitbucket.org/stackless-dev/stackless/wiki/Home): Replaces the dependency for the C call stack with it's own stack
20*cc02d7e2SAndroid Build Coastguard Worker
21*cc02d7e2SAndroid Build Coastguard WorkerThe development in this project revolved around
22*cc02d7e2SAndroid Build Coastguard Workerintroducing changes to the codebase that enable support for latest
23*cc02d7e2SAndroid Build Coastguard Workerstable as well as development releases of the reference implementation
24*cc02d7e2SAndroid Build Coastguard Worker(CPython) of the Python programming language namely `Python 3.4`,
25*cc02d7e2SAndroid Build Coastguard Worker`Python 3.5`,and `Python 3.6` as well as the stable releases of the
26*cc02d7e2SAndroid Build Coastguard WorkerPyPy implementation. Special changes were required to enable PyPy
27*cc02d7e2SAndroid Build Coastguard Workersupport because PyPy has a non-deterministic garbage collector that does
28*cc02d7e2SAndroid Build Coastguard Workernot rely on reference counting unlike the CPython garbage collector.
29*cc02d7e2SAndroid Build Coastguard Worker
30*cc02d7e2SAndroid Build Coastguard WorkerThe changes to the codebase involved changes to the library code as well
31*cc02d7e2SAndroid Build Coastguard Workeras changes to the tests and scripts in the test infrastructure which
32*cc02d7e2SAndroid Build Coastguard Workerresulted in both the library as well as the testing infrastructure being
33*cc02d7e2SAndroid Build Coastguard WorkerPython 3.x and PyPy compatible.
34*cc02d7e2SAndroid Build Coastguard Worker
35*cc02d7e2SAndroid Build Coastguard WorkerThe list of merged commits, as of 22.08.2016 23:59 CEST,  is summarized
36*cc02d7e2SAndroid Build Coastguard Workerhere for the perusal of those interested:
37*cc02d7e2SAndroid Build Coastguard Worker
38*cc02d7e2SAndroid Build Coastguard Worker- [Enable py35 and py36 testing](https://github.com/grpc/grpc/commit/c478214e475e103c5cdf477f0adc18bba2c03903)
39*cc02d7e2SAndroid Build Coastguard Worker- [Make testing toolchain python 3.x compliant](https://github.com/grpc/grpc/commit/0589e533cd65a2ca9e0e610cc1b284d016986572)
40*cc02d7e2SAndroid Build Coastguard Worker- [Add .idea folder to .gitignore](https://github.com/grpc/grpc/commit/365ef40947e22b5438a63f123679ae9a5474c47c)
41*cc02d7e2SAndroid Build Coastguard Worker- [Fix the ThreadPoolExecutor: max_workers can't be 0](https://github.com/grpc/grpc/commit/de84d566b8fad6808e5263a25a17fa231cb5713c)
42*cc02d7e2SAndroid Build Coastguard Worker- [Add PyPy to testing toolchain](https://github.com/grpc/grpc/commit/2135a1b557f8b992186d5317cb767ac4dbcdfe5c)
43*cc02d7e2SAndroid Build Coastguard Worker- [Switch init/shutdown: lib-wide -> per-object](https://github.com/grpc/grpc/commit/9eedb4ffd74aed8d246a07f8007960b2bc167f55)
44*cc02d7e2SAndroid Build Coastguard Worker- [Skip test run if running with pypy](https://github.com/grpc/grpc/commit/f0f58e68738abbc317f7f449c5104f7fbbff26bd)
45*cc02d7e2SAndroid Build Coastguard Worker
46*cc02d7e2SAndroid Build Coastguard WorkerThe list of unmerged pull requests is as follows:
47*cc02d7e2SAndroid Build Coastguard Worker
48*cc02d7e2SAndroid Build Coastguard Worker- [Add PyPy 5.3.1 to dockerfile and template](https://github.com/grpc/grpc/pull/7763)
49*cc02d7e2SAndroid Build Coastguard Worker- [remove skipIf from TypeSmokeTest (issue 7672)](https://github.com/grpc/grpc/pull/7831)
50*cc02d7e2SAndroid Build Coastguard Worker
51*cc02d7e2SAndroid Build Coastguard WorkerThe list of tasks that have pending unsubmitted pull requests is as follows:
52*cc02d7e2SAndroid Build Coastguard Worker
53*cc02d7e2SAndroid Build Coastguard Worker- Modify run_tests.py to enable testing of new languages without
54*cc02d7e2SAndroid Build Coastguard Worker  affecting old branches.
55*cc02d7e2SAndroid Build Coastguard Worker
56*cc02d7e2SAndroid Build Coastguard Worker
57*cc02d7e2SAndroid Build Coastguard WorkerProject Details
58*cc02d7e2SAndroid Build Coastguard Worker===============
59*cc02d7e2SAndroid Build Coastguard Worker- Title: GRPC Python compatibility support
60*cc02d7e2SAndroid Build Coastguard Worker- Student: [Siddharth Shukla](https://github.com/thunderboltsid)
61*cc02d7e2SAndroid Build Coastguard Worker- Mentors: [Nathaniel Manista](https://github.com/nathanielmanistaatgoogle), [Masood Malekghassemi](https://github.com/soltanmm)
62*cc02d7e2SAndroid Build Coastguard Worker- Duration: May 23 - August 23
63*cc02d7e2SAndroid Build Coastguard Worker- Hat tip: [Ken Payson](https://github.com/kpayson64), [Jan Tattermusch](https://github.com/jtattermusch), [Nicolas Noble](https://github.com/nicolasnoble)
64*cc02d7e2SAndroid Build Coastguard Worker
65*cc02d7e2SAndroid Build Coastguard Worker
66