From a7f7d93092d81c50f4bcc5fd9e9c7436a845c1bf Mon Sep 17 00:00:00 2001 From: Kovak Date: Thu, 19 Feb 2015 15:46:33 -0700 Subject: [PATCH 1/4] reorganize based on difficulty --- doc/sources/gsoc.rst | 191 +++++++++++++++++++++++-------------------- 1 file changed, 101 insertions(+), 90 deletions(-) diff --git a/doc/sources/gsoc.rst b/doc/sources/gsoc.rst index 39e4ac213..e9a54937b 100644 --- a/doc/sources/gsoc.rst +++ b/doc/sources/gsoc.rst @@ -85,40 +85,81 @@ Project Ideas The mentors list is only of potential mentors for a particular project and not final. -Enhancements to Kivy -~~~~~~~~~~~~~~~~~~~~ +Beginner Projects +~~~~~~~~~~~~~~~~~ +These projects should be suitable for anyone with a college level familiarity +with Python and require little knowedge of platform specifics. -**Font Reshaping and Font Fallback Support** +**Kivy Designer** Description: - Currently Kivy does not support reshaping for alphabets such as Arabic, - Persian, Thai, or Devanagari. The solution is to integrate a text shaping - engine- Harfbuzz. You would need to ensure that we can compile Harfbuzz - on every platform and properly integrate it as a core text provider. - - The second part of the same project would involve font fallback support. - If a particular character/glyph is missing; currently we show a [] box. - The solution for this would involve either using an OS API if available - or maintaining a hashtable for the default fonts on each OS which can be - used for glyph fallback. + Kivy Designer is a GUI tool for creating Kivy GUI layouts written in Kivy. + You can compose, customize, and test widgets using the tool. This project + has been the subject of 2 previous GSoC and is experimental, alpha level + software at the moment. However, it is a very popular request for more + updates among our users; if you are interested in GUI tool development + this could be a great fit for you! + + The Student will: + + - Integrate Buildozer, which is our build tool for deploying to different + target OS, within the kivy-designer. + - Interface for using hanga.io (Remote Buildozer server) as a deployment + target. + - Better File management for project files. Browser Pane. + - Interface to test using different screen modules, for emulating interface + on different screen sizes. + - Interface to Select different targets, simulator or actual device if + connected to deploy to. + - Add mobile specific UI fixes(mostly making sure UI looks and feels the + same on tablets as on desktops) + - Work on stability fixes. References: - - http://www.freedesktop.org/wiki/Software/HarfBuzz/ - - https://github.com/kivy/kivy/tree/master/kivy/core/text + - https://github.com/kivy/kivy-designer + - http://github.com/kivy/buildozer + - http://hanga.io Expected outcome: - Font fallback and text reshaping support Kivy and correct compilation - recipes for the libs used (harfbuzz) for platforms(Android and iOS) that - need it, such as Python-For-Android. + It is expected that the student be able to complete all the features + mentioned above; except stability fixes which is dependent on however much + time is left after completing the rest of the features. - - **Mentors**: Akshay Arora, Jacob Kovac + - **Mentors**: Akshay Arora, Ryan Pessa + - **Requirements:** Access to Linux, Windows, OS X + - **Task level**: Easy + - **Desired Skills**: Experience with other GUI creation tools. Familiar + with Kivy approach to EventLoop and UIX Widgets. + +**Matplotlib Integration** + + Description: + More advanced graphing and plotting tools are a frequently requested + addition to Kivy, and it would be ideal to provide them via integration + with matplotlib's extensive feature set. The primary goal of the project + would be to write a Kivy backend to matplotlib that displays plots using + Kivy's own graphics API, but it would also involve ensuring that + matplotlib is deployable on every platform Kivy supports. + + References: + - http://matplotlib.org/ + - https://github.com/kivy/kivy + + Expected outcome: + The matplotlib widgets will be included in the Kivy garden and ready to + use on all of Kivy's supported OS. + + - **Mentors**: Alexander Taylor, Matthew Einhorn, Jacob Kovac - **Requirements:** Access to Linux, Windows, OS X, Android, iOS - - **Task level**: Intermediate - - **Desired Skills**: Familiarity with text rendering, HarfBuzz, and Kivy's - provider abstraction. + - **Task level**: Easy + - **Desired Skills**: Familiarity with Kivy widget construction and + matplotlib. -Enhancements to Plyer +Intermediate Projects ~~~~~~~~~~~~~~~~~~~~~ +These projects will involve more than just pure Python coding. You may find +yourself either dealing with the details of cross platform compilation or +working with communicating between Python and an API in a different language. **Plyer:** @@ -155,12 +196,46 @@ Enhancements to Plyer - **Mentors**: Ben Rousch, Sebastian Popute - **Requirements**: Access to Linux, Windows, OS X, iOS device, Android device. - - **Task level**: Intermediate/Advanced. + - **Task level**: Intermediate - **Desired Skills**: Familiarity with Pyjnius, PyOBJus. +**Font Reshaping and Font Fallback Support** -Enhancements to Toolchain -~~~~~~~~~~~~~~~~~~~~~~~~~ + Description: + Currently Kivy does not support reshaping for alphabets such as Arabic, + Persian, Thai, or Devanagari. The solution is to integrate a text shaping + engine- Harfbuzz. You would need to ensure that we can compile Harfbuzz + on every platform and properly integrate it as a core text provider. + + The second part of the same project would involve font fallback support. + If a particular character/glyph is missing; currently we show a [] box. + The solution for this would involve either using an OS API if available + or maintaining a hashtable for the default fonts on each OS which can be + used for glyph fallback. + + References: + - http://www.freedesktop.org/wiki/Software/HarfBuzz/ + - https://github.com/kivy/kivy/tree/master/kivy/core/text + + Expected outcome: + Font fallback and text reshaping support Kivy and correct compilation + recipes for the libs used (harfbuzz) for platforms(Android and iOS) that + need it, such as Python-For-Android. + + - **Mentors**: Akshay Arora, Jacob Kovac + - **Requirements:** Access to Linux, Windows, OS X, Android, iOS + - **Task level**: Intermediate + - **Desired Skills**: Familiarity with text rendering, HarfBuzz, and Kivy's + provider abstraction. + + +Hard Projects +~~~~~~~~~~~~~ +These projects may involve very indepth knowledge of Kivy's existing internals, +the hairy details of cross-platform compilation, or other fairly advanced +topics. If you are comfortable with the internals of Python, working with C +code, and using Cython to build your own C extensions these projects may +appeal to you. **Python-For-Android Revamp:** @@ -203,70 +278,6 @@ Enhancements to Toolchain - **Desired Skills**: Understanding of cross-compilation for Android, familiarity with PyJNIus -**Kivy Designer** - - Description: - Kivy Designer is a GUI tool for creating Kivy GUI layouts written in Kivy. - You can compose, customize, and test widgets using the tool. This project - has been the subject of 2 previous GSoC and is experimental, alpha level - software at the moment. However, it is a very popular request for more - updates among our users; if you are interested in GUI tool development - this could be a great fit for you! - - The Student will: - - - Integrate Buildozer, which is our build tool for deploying to different - target OS, within the kivy-designer. - - Interface for using hanga.io (Remote Buildozer server) as a deployment - target. - - Better File management for project files. Browser Pane. - - Interface to test using different screen modules, for emulating interface - on different screen sizes. - - Interface to Select different targets, simulator or actual device if - connected to deploy to. - - Add mobile specific UI fixes(mostly making sure UI looks and feels the - same on tablets as on desktops) - - Work on stability fixes. - - References: - - https://github.com/kivy/kivy-designer - - http://github.com/kivy/buildozer - - http://hanga.io - Expected outcome: - - - **Mentors**: Akshay Arora, Ryan Pessa - - **Requirements:** Access to Linux, Windows, OS X - - **Task level**: Easy - - **Desired Skills**: Experience with other GUI creation tools. Familiar - with Kivy approach to EventLoop and UIX Widgets. - - -Applications -~~~~~~~~~~~~ - -**Matplotlib Integration** - - Description: - More advanced graphing and plotting tools are a frequently requested - addition to Kivy, and it would be ideal to provide them via integration - with matplotlib's extensive feature set. The primary goal of the project - would be to write a Kivy backend to matplotlib that displays plots using - Kivy's own graphics API, but it would also involve ensuring that - matplotlib is deployable on every platform Kivy supports. - - References: - - http://matplotlib.org/ - - https://github.com/kivy/kivy - - Expected outcome: - The matplotlib widgets will be included in the Kivy garden and ready to - use on all of Kivy's supported OS. - - - **Mentors**: Alexander Taylor, Matthew Einhorn, Jacob Kovac - - **Requirements:** Access to Linux, Windows, OS X, Android, iOS - - **Task level**: Easy - - **Desired Skills**: Familiarity with Kivy widget construction and - matplotlib. How to Contact devs ------------------- From e551732208a316025b17fbcd195c9d2e8a66c991 Mon Sep 17 00:00:00 2001 From: Kovak Date: Thu, 19 Feb 2015 15:48:56 -0700 Subject: [PATCH 2/4] missing hyphenation in in-depth --- doc/sources/gsoc.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/sources/gsoc.rst b/doc/sources/gsoc.rst index e9a54937b..fe542cdea 100644 --- a/doc/sources/gsoc.rst +++ b/doc/sources/gsoc.rst @@ -231,11 +231,11 @@ working with communicating between Python and an API in a different language. Hard Projects ~~~~~~~~~~~~~ -These projects may involve very indepth knowledge of Kivy's existing internals, -the hairy details of cross-platform compilation, or other fairly advanced -topics. If you are comfortable with the internals of Python, working with C -code, and using Cython to build your own C extensions these projects may -appeal to you. +These projects may involve very in-depth knowledge of Kivy's existing +internals, the hairy details of cross-platform compilation, or other fairly +advanced topics. If you are comfortable with the internals of Python, working +with C code, and using Cython to build your own C extensions these projects +may appeal to you. **Python-For-Android Revamp:** From a3c77ed34cc878036298c0d3a469b5a390b85c0d Mon Sep 17 00:00:00 2001 From: Kovak Date: Thu, 19 Feb 2015 15:51:24 -0700 Subject: [PATCH 3/4] change tentative mentors warning to a prompt for own ideas --- doc/sources/gsoc.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/sources/gsoc.rst b/doc/sources/gsoc.rst index fe542cdea..635b17154 100644 --- a/doc/sources/gsoc.rst +++ b/doc/sources/gsoc.rst @@ -81,9 +81,9 @@ eg.. for PyJNIus:: Project Ideas -------------- - -The mentors list is only of potential mentors for a particular project and not -final. +Here are some prospective ideas sourced from the Kivy development team, if +none of these projects interest you come talk to us in #kivy-dev about a +project idea of your own. Beginner Projects ~~~~~~~~~~~~~~~~~ From 798f15f58ae713f2ad880213d2a4402f8cf7c246 Mon Sep 17 00:00:00 2001 From: Kovak Date: Thu, 19 Feb 2015 16:18:15 -0700 Subject: [PATCH 4/4] fix grammar for expected outcome of kivy-designer --- doc/sources/gsoc.rst | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/doc/sources/gsoc.rst b/doc/sources/gsoc.rst index 635b17154..2bbebd99c 100644 --- a/doc/sources/gsoc.rst +++ b/doc/sources/gsoc.rst @@ -121,9 +121,9 @@ with Python and require little knowedge of platform specifics. - http://hanga.io Expected outcome: - It is expected that the student be able to complete all the features - mentioned above; except stability fixes which is dependent on however much - time is left after completing the rest of the features. + It is expected that the student completes all the features mentioned above, + except stability fixes which is dependent on however much time is left + after completing the rest of the features. - **Mentors**: Akshay Arora, Ryan Pessa - **Requirements:** Access to Linux, Windows, OS X @@ -312,6 +312,12 @@ Here's a checklist: * Make sure to read through the website and at least skim the documentation. * Look at the source code. * Read our contribution guidelines. +* Make a contribution! Kivy would like to see how you engage with the + development process. Take a look at the issue tracker for a Kivy project + that interest you and submit a Pull Request. It can be a simple bug or a + documentation change. We are looking to get a feel for how you work, not + evaluating your capabilities. Don't worry about trying to pick something + to impress us. * Pick an idea that you think is interesting from the ideas list or come up with your own idea. * Do some research **yourself**. GSoC is about give and take, not just one