User Tools

Site Tools


gsoc:google-code-in-2019

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
gsoc:google-code-in-2019 [2019/10/26 08:49]
till
gsoc:google-code-in-2019 [2019/11/06 18:23] (current)
till
Line 8: Line 8:
  
 =====Dates===== =====Dates=====
-  * //October 29, 2019// - The participating mentoring organizations will get announced by Google+  * //October 29, 2019// - The Linux Foundation did not get accepted as mentoring organization
   * //December 2, 2019// - Contest opens for entries by the students   * //December 2, 2019// - Contest opens for entries by the students
   * //January 21, 2020// - Last day to take a task   * //January 21, 2020// - Last day to take a task
Line 18: Line 18:
  
 =====Linux Foundation GCI Project groups===== =====Linux Foundation GCI Project groups=====
-The Linux Foundation ​sponsors ​development in different areas. Each area has a set of Google-Code-In tasks available for this year and you should contact the individual group where you want to work in.+The Linux Foundation ​supports ​development in different areas. Each area will have a set of Google-Code-In tasks available for this year and you should contact the individual group where you want to work in for further questions about the tasks, mentors, community interaction,​ ...
  
-  ​* [[:gsoc:​2019-gci-lsb-projects|LSB Linux Standards Base]] +**Important:​** We protect the e-mail addresses of our mentors and mailing lists against spam bots. Please replace all occurrences of " at " and " dot " by "​@"​ and "​."​ resp. 
-  ​* ​[[:gsoc:2019-gci-openprinting-projects|OpenPrinting]] + 
-  * [[:gsoc:2019-gci-agl|Automotive Grade Linux (AGL)]] +====Linux Standards Base (LSB)==== 
-  ​* ​[[:gsoc:2019-gci-iio-driver|IIO driver]] + 
-  [[:gsoc:2019-gci-sound-open-firmware|Sound Open Firmware]] +Mailing list: [[http://​lists.linux-foundation.org/​mailman/​listinfo/​lsb-discuss|lsb-discuss at lists dot linux-foundation dot org]] 
-  ​* ​[[:gsoc:2019-gci-safety-critical-linux|Enabling Linux in Safety Applications (ELISA)]] + 
-  * [[:gsoc:gsoc-gci-spdx-projects|SPDX]] +IRC: #lsb on irc.freenode.net 
-  * [[:gsoc:2019-gci-chaoss|CHAOSS]]+ 
 +[[:lsb:start|Workgroup Resources]] 
 + 
 +Code License: GPL/BSD, specs: GNU FDL 
 + 
 +Mentors: Alexey Khoroshilov (alexey dot khoroshilov at gmail dot com), Jeff Licquia (licquia at linuxfoundation dot org), Vadim Mutilin, Denis Silakov (dsilakov at gmail dot com). 
 + 
 +====OpenPrinting==== 
 + 
 +**Making Printing Just Work** 
 + 
 +OpenPrinting works on the development of printing technology for Linux and Unix-style operating systems. We collaborate with IEEE-ISTO Printer Working Group([[http://​www.pwg.org/​|PWG]]),​ especially for Internet Printing Protocol(IPP) projects. 
 + 
 +Web sitehttp://​www.openprinting.org/​ 
 + 
 +Mailing list: [[http://​lists.linux-foundation.org/​mailman/​listinfo/​printing-architecture|printing-architecture at lists dot linux-foundation dot org]] 
 + 
 +IRC: #​openprinting on Freenode 
 + 
 +[[https://​github.com/​OpenPrinting|OpenPrinting GitHub]] 
 + 
 +Code LicenseAs the printing-related projects/​code bases com from many different origins, there are many different licenses used, as for example (L)GPL, BSD, MIT, Apache, .... See project repositories ([[https://​github.com/​OpenPrinting|Openprinting'​s own ones on GitHub]] and/or task descriptions. 
 + 
 +====Automotive Grade Linux==== 
 + 
 +**What is Automotive Grade Linux?** 
 + 
 +Automotive Grade Linux is a collaborative open source project that is bringing together automakers, suppliers and technology companies to accelerate the development and adoption of a fully open software stack for the connected car. With Linux at its core, AGL is developing an open platform from the ground up that can serve as the de facto industry standard to enable rapid development of new features and technologies. 
 + 
 +Website - www.automotivelinux.org 
 + 
 +Wiki – http://​wiki.automotivelinux.org 
 + 
 +Git - gerrit.automotivelinux.org 
 + 
 +Mailing Lists - http://​lists.linuxfoundation.org/​mailman/​listinfo/​automotive-discussions 
 + 
 +IRC channel ​#automotive on freenode 
 + 
 +Code Licenses: mostly Apache 2.0, MIT for own code, otherwise as upstream 
 + 
 +Primary Mentor contact: jsmoeller (at) linuxfoundation (dot) org 
 + 
 +====Industrial I/O subsystem (IIO) driver==== 
 + 
 +The main purpose of the Industrial I/O subsystem (IIO) is to provide support for devices that in some sense perform either analog-to-digital conversion (ADC) or digital-to-analog conversion (DAC) or both. The aim is to fill the gap between the somewhat similar hwmon and input subsystems. Hwmon is directed at low sample rate sensors used to monitor and control the system itself, like fan speed control or temperature measurement. Input is, as its name suggests, focused on human interaction input devices (keyboard, mouse, touchscreen). In some cases there is considerable overlap between these and IIO. 
 + 
 +Devices that fall into this category include: analog to digital converters (ADCs), accelerometers,​ capacitance to digital converters (CDCs), digital to analog converters (DACs), gyroscopes, inertial measurement units (IMUs), color and light sensors, magnetometers,​ pressure sensors, proximity sensors, temperature sensors, etc. 
 + 
 +Usually these sensors are connected via SPI or I2C. A common use case of the sensors devices is to have combined functionality (e.g. light plus proximity sensor). 
 + 
 +Mentor: Dragos Bogdan <​dragos.bogdan@analog.com>​ 
 + 
 +====Sound Open Firmware==== 
 + 
 +Sound Open Firmware is an open source audio DSP firmware and SDK intended to provide a generic audio firmware infrastructure and development tools to the community. The firmware is BSD licensed and is platform and architecture independent. 
 + 
 +(from [[https://​www.alsa-project.org/​wiki/​Firmware|Alsa Project]]) 
 + 
 +Web sitehttps://​www.sofproject.org 
 + 
 +GitHub: https://​github.com/​thesofproject 
 + 
 +Mail: sound-open-firmware at alsa-project dot org 
 + 
 +====Enabling Linux in Safety Applications (ELISA)==== 
 + 
 +To use Linux in high-integrity regulated environment,​ such as safety-critical systems, security systems or systems subject to other regulatory norms, it requires to show evidences that Linux has a high software quality. High software quality is roughly assessed by two classes of measurements:​ 
 + 
 +  * Observation,​ Measurement and Assessment of the Software Development Process and Practices 
 +  * Verification,​ Analysis and Assessment of the Software Artefact 
 + 
 +The Google Summer of Code Projects are activities that contribute to those two fields of work. 
 + 
 +Primary mentoring contactsLukas Bulwahn, lukas.bulwahn at gmail.com; Julia Lawall, julia.lawall at lip6.fr; Nicholas Mc Guire, der.herr at hofr.at; Ralf Ramsauer, ralf.ramsauer at oth-regensburg.de 
 + 
 +====SPDX==== 
 + 
 +**SPDX Introduction**\\ The Software Package Data Exchange® (SPDX®) specification is a standard format for communicating the licenses and copyrights for components of a software package.  The vision of SPDX is to achieve software license compliance with minimal cost across the software supply chain with a primary focus on compliance with open source licenses. \\ \\ The SPDX Technical Team members develop open source tools to create, convert and validate SPDX documents. \\ \\ **SPDX Community**\\ Website - www.spdx.org\\ Wiki – http://​wiki.spdx.org \\ GitHub \\     https://​github.com/​goneall/​SPDX-Tools \\     https://​github.com/​spdx-tools/​fossology-spdx \\ Mailing Lists  \\ http://​lists.spdx.org/​mailman/​listinfo\\ http://​lists.spdx.org/​mailman/​listinfo/​spdx-tech \\ IRC channel - #spdx on freenode\\ Code Licenses: Apache 2.0, BSD 2-Clause 
 + 
 +====CHAOSS==== 
 + 
 +**Community Health Analytics Open Source Software** 
 + 
 +Web site: https://​chaoss.community/​ 
 + 
 +GitHub: https://​github.com/​chaoss 
 + 
 +Mailing list: https://​lists.linuxfoundation.org/​mailman/​listinfo/​chaoss 
 + 
 +Mentor: (more to come): Matt Germonprez (germonprez at gmail dot com)
  
- \\ 
 =====Organization Administrators===== =====Organization Administrators=====
  
Line 44: Line 133:
 //Beginner Task// //Beginner Task//
  
-Categories: ​Code, Documentation/​Training+Categories: ​Coding, Documentation/​Training
  
 This task is to learn about the printing environment and to get familiar with the code. This task is to learn about the printing environment and to get familiar with the code.
Line 56: Line 145:
 ===2. Graceful/​Consistent handling of zero-page jobs=== ===2. Graceful/​Consistent handling of zero-page jobs===
  
-Categories: ​Code+Categories: ​Coding
  
 [[https://​github.com/​OpenPrinting/​cups-filters/​issues/​117|cups-filters Issue #117]] [[https://​github.com/​OpenPrinting/​cups-filters/​issues/​117|cups-filters Issue #117]]
Line 72: Line 161:
 ===3. NewBrowsePollQueuesShared option for cups-browsed=== ===3. NewBrowsePollQueuesShared option for cups-browsed===
  
-Categories: ​Code+Categories: ​Coding
  
 [[https://​github.com/​OpenPrinting/​cups-filters/​issues/​101|cups-filters Issue #101]] [[https://​github.com/​OpenPrinting/​cups-filters/​issues/​101|cups-filters Issue #101]]
Line 86: Line 175:
 ===4. Printer Application for Ghostscript'​s built-in printer drivers=== ===4. Printer Application for Ghostscript'​s built-in printer drivers===
  
-Categories: ​Code+Categories: ​Coding
  
 Based on and including Ghostscript,​ foomatic-db (all PPDs for Ghostscript-built-in drivers), and the [[https://​github.com/​dheeraj135/​Printer-Applications-Framework|Printer Application framework]]. Based on and including Ghostscript,​ foomatic-db (all PPDs for Ghostscript-built-in drivers), and the [[https://​github.com/​dheeraj135/​Printer-Applications-Framework|Printer Application framework]].
Line 94: Line 183:
 ===5. Documenting format specification of '​application/​vnd.cups-pdf-banner'​ and features of '​bannertopdf'​=== ===5. Documenting format specification of '​application/​vnd.cups-pdf-banner'​ and features of '​bannertopdf'​===
  
-Categories: Documentation+Categories: Documentation/Training
  
 [[https://​github.com/​OpenPrinting/​cups-filters/​issues/​77|cups-filters Issue #77]] [[https://​github.com/​OpenPrinting/​cups-filters/​issues/​77|cups-filters Issue #77]]
Line 112: Line 201:
 ===6. Documentation for the bannertopdf filter=== ===6. Documentation for the bannertopdf filter===
  
-Categories: Documentation+Categories: Documentation/Training
  
 The student'​s task is to create a documentation/​help page for the "​bannertopdf"​ filter. ​ The student'​s task is to create a documentation/​help page for the "​bannertopdf"​ filter. ​
Line 119: Line 208:
 Deliverable:​ Markdown file to be included in the cups-filters package and also in the web site Deliverable:​ Markdown file to be included in the cups-filters package and also in the web site
  
-===8. Documentation for the pdftopdf filter===+===7. Documentation for the pdftopdf filter===
  
-Categories: Documentation+Categories: Documentation/Training
  
 The student'​s task is to create a documentation/​help page for the "​pdftopdf"​ filter. ​ The student'​s task is to create a documentation/​help page for the "​pdftopdf"​ filter. ​
Line 128: Line 217:
 Deliverable:​ Markdown file to be included in the cups-filters package and also in the web site Deliverable:​ Markdown file to be included in the cups-filters package and also in the web site
  
-===9. Documentation for the rastertopdf/​rastertopclm filter===+===8. Documentation for the rastertopdf/​rastertopclm filter===
  
-Categories: Documentation+Categories: Documentation/Training
  
 The student'​s task is to create a documentation/​help page for the "​rastertopdf"​ filter which is also called as "​rastertopclm"​ to generate PCLm output. In its PDF incarnation the filter allows accepting print jobs in raster format by CUPS using this filter to turn the incoming job into PDF. The PCLm output is used to make it possible to print on printers accepting PCLm as input format. Unfortunately,​ there is no complete documentation for the filter, telling how it is used and with which command line options it can be controlled. The student needs to write this missing documentation. The student'​s task is to create a documentation/​help page for the "​rastertopdf"​ filter which is also called as "​rastertopclm"​ to generate PCLm output. In its PDF incarnation the filter allows accepting print jobs in raster format by CUPS using this filter to turn the incoming job into PDF. The PCLm output is used to make it possible to print on printers accepting PCLm as input format. Unfortunately,​ there is no complete documentation for the filter, telling how it is used and with which command line options it can be controlled. The student needs to write this missing documentation.
Line 136: Line 225:
 Deliverable:​ Markdown file to be included in the cups-filters package and also in the web site Deliverable:​ Markdown file to be included in the cups-filters package and also in the web site
  
-===11. Documentation for the pdftops filter===+===9. Documentation for the pdftops filter===
  
-Categories: Documentation+Categories: Documentation/Training
  
 The student'​s task is to create a documentation/​help page for the "​pdftops"​ filter. The purpose of this filter is support for PostScript printers. It turns PDF to PostScript using the printer'​s PPD (PostScript Printer Description) file and command line options. Unfortunately,​ there is no complete documentation for the filter, telling how it is used and with which command line options it can be controlled. The student needs to write this missing documentation. The student'​s task is to create a documentation/​help page for the "​pdftops"​ filter. The purpose of this filter is support for PostScript printers. It turns PDF to PostScript using the printer'​s PPD (PostScript Printer Description) file and command line options. Unfortunately,​ there is no complete documentation for the filter, telling how it is used and with which command line options it can be controlled. The student needs to write this missing documentation.
Line 144: Line 233:
 Deliverable:​ Markdown file to be included in the cups-filters package and also in the web site Deliverable:​ Markdown file to be included in the cups-filters package and also in the web site
  
-===12. Test and compare the filters to convert PDF to Raster===+===10. Test and compare the filters to convert PDF to Raster===
  
-Categories: ​Testing+Categories: ​Outreach/​Research,​ Quality Assurance
  
 There are three filters supposed to fulfill the same task, converting PDF into CUPS Raster or PWG Raster, but they use different external utilities to render PDF. These filters are: There are three filters supposed to fulfill the same task, converting PDF into CUPS Raster or PWG Raster, but they use different external utilities to render PDF. These filters are:
Line 160: Line 249:
 Depending on the outcome of this task, new tasks will get posted for fixing the discrepancies and documenting the filters. Depending on the outcome of this task, new tasks will get posted for fixing the discrepancies and documenting the filters.
  
-===14. Open Printing Website Search window is broken with Firefox under Windows 10===+===11. Open Printing Website Search window is broken with Firefox under Windows 10===
  
 Categories: Coding Categories: Coding
Line 170: Line 259:
 Deliverable:​ A pull request on the site's GitHub which solves the issue Deliverable:​ A pull request on the site's GitHub which solves the issue
  
-===15. About Brief History typo and omissions===+===12. About Brief History typo and omissions===
  
-Categories: Documentation+Categories: Documentation/Training
  
 [[https://​github.com/​OpenPrinting/​openprinting.github.io/​issues/​64|OpenPrinting Web site issue #64]] [[https://​github.com/​OpenPrinting/​openprinting.github.io/​issues/​64|OpenPrinting Web site issue #64]]
Line 180: Line 269:
 Deliverable:​ A pull request on the site's GitHub which solves the issue Deliverable:​ A pull request on the site's GitHub which solves the issue
  
-===16. Link to Driverless Printing page is not easy to find on OpenPrinting home page===+===13. Link to Driverless Printing page is not easy to find on OpenPrinting home page===
  
-Categories: Documentation/​Coding+Categories: ​Coding, ​Documentation/​Training
  
 [[https://​github.com/​OpenPrinting/​openprinting.github.io/​issues/​63|OpenPrinting Web site issue #63]] [[https://​github.com/​OpenPrinting/​openprinting.github.io/​issues/​63|OpenPrinting Web site issue #63]]
Line 192: Line 281:
 Deliverable:​ A pull request on the site's GitHub which solves the issue Deliverable:​ A pull request on the site's GitHub which solves the issue
  
-===17. Let last three "News and Events"​ items appear on the front page of OpenPrinting web site===+===14. Let last three "News and Events"​ items appear on the front page of OpenPrinting web site===
  
 Categories: Coding Categories: Coding
Line 202: Line 291:
 Deliverable:​ A pull request on the site's GitHub which solves the issue Deliverable:​ A pull request on the site's GitHub which solves the issue
  
-===18. .htaccess file: Add rules to forward old URLs to the new pages of the OpenPrinting web site===+===15. .htaccess file: Add rules to forward old URLs to the new pages of the OpenPrinting web site===
  
 Categories: Coding Categories: Coding
Line 212: Line 301:
 Deliverables:​ A pull request on the [[https://​github.com/​OpenPrinting/​foomatic-db-webapp|foomatic-web-app]] repository for adding the rules to .htaccess and issue reports on the site's repository for missing pages in the new site. Deliverables:​ A pull request on the [[https://​github.com/​OpenPrinting/​foomatic-db-webapp|foomatic-web-app]] repository for adding the rules to .htaccess and issue reports on the site's repository for missing pages in the new site.
  
-===20. Write test cases for driverless printing===+===16. Write test cases for driverless printing===
  
-Categories: ​Testing+Categories: ​Quality Assurance
  
 Write test cases for driverless printing. The test cases should be exhaustive enough so that they can be used by any printer manufacturer who plans to launch a driverless printer in the market. The printer manufacturer can use those test cases as a sort of checklist to test if their printer is working properly in the Linux environment. Write test cases for driverless printing. The test cases should be exhaustive enough so that they can be used by any printer manufacturer who plans to launch a driverless printer in the market. The printer manufacturer can use those test cases as a sort of checklist to test if their printer is working properly in the Linux environment.
Line 222: Line 311:
 When this task is completed, new tasks will get posted for implementing the test cases as scripts. When this task is completed, new tasks will get posted for implementing the test cases as scripts.
  
-===21. Developer guide for Printer Applications===+===17. Developer guide for Printer Applications===
  
-Categories: Documentation+Categories: Documentation/Training
  
 The student'​s task is to write a guide on how Printer Applications work and why they are used.  The student'​s task is to write a guide on how Printer Applications work and why they are used. 
Line 230: Line 319:
 Deliverable:​ Markdown file to be included in the cups-filters package and also in the web site Deliverable:​ Markdown file to be included in the cups-filters package and also in the web site
  
-===22. Test and create documentation on how to use the ippserver utility===+===18. Test and create documentation on how to use the ippserver utility===
  
-Categories: ​Testing/Documentation+Categories: Documentation/Training
  
 The student needs to document on how to use the ippserver utility as a printer simulator. This is very important for contributors in the printing space since not everyone has a printer and a simulator is very important to work. The student needs to document on how to use the ippserver utility as a printer simulator. This is very important for contributors in the printing space since not everyone has a printer and a simulator is very important to work.
Line 238: Line 327:
 Deliverable:​ Markdown file to be included in the ippsample package and also in the web site Deliverable:​ Markdown file to be included in the ippsample package and also in the web site
  
-===23. Create documentation on how to use the ippeveprinter utility===+===19. Create documentation on how to use the ippeveprinter utility===
  
-Categories: Documentation+Categories: Documentation/Training
  
 The student needs to document on how to use the ippeveprinter utility as a printer simulator or as base for a Printer Application. This is needed by client software developers to have a printer simulation and for printer driver developers who want to provide their drivers as a Printer Application (program which emulates an IPP printer and passes jobs on to physical, non-IPP printer). The student needs to document on how to use the ippeveprinter utility as a printer simulator or as base for a Printer Application. This is needed by client software developers to have a printer simulation and for printer driver developers who want to provide their drivers as a Printer Application (program which emulates an IPP printer and passes jobs on to physical, non-IPP printer).
Line 246: Line 335:
 Deliverable:​ Markdown file to be included in the ippsample package, the CUPS package, and also in the web site Deliverable:​ Markdown file to be included in the ippsample package, the CUPS package, and also in the web site
  
-===24. Create documentation on how to use the IPP tools of PWG's ippsample suite===+===20. Create documentation on how to use the IPP tools of PWG's ippsample suite===
  
-Categories: Documentation+Categories: Documentation/Training
  
 The student needs to document on how to use the utilities of the [[http://​www.pwg.org//​|PWG'​s]] [[https://​istopwg.github.io/​ippsample/​|ippsample suite]] for development and debugging tasks when working with IPP printing. The student needs to document on how to use the utilities of the [[http://​www.pwg.org//​|PWG'​s]] [[https://​istopwg.github.io/​ippsample/​|ippsample suite]] for development and debugging tasks when working with IPP printing.
Line 254: Line 343:
 Deliverable:​ Markdown file to be included in the ippsample package, the CUPS package, and also in the web site Deliverable:​ Markdown file to be included in the ippsample package, the CUPS package, and also in the web site
  
-===25. Shell scripts to capture print files automatically===+===21. Shell scripts to capture print files automatically===
  
-Categories: Coding+Categories: Coding, Quality Assurance
  
 When it comes to debugging while something in printing fails, a file containing the print job (what the client application sends to CUPS and also what CUPS sends to the printer) is one of the most important tools for a developer to have a first look into what has failed. When it comes to debugging while something in printing fails, a file containing the print job (what the client application sends to CUPS and also what CUPS sends to the printer) is one of the most important tools for a developer to have a first look into what has failed.
Line 264: Line 353:
 Deliverable:​ The script Deliverable:​ The script
  
-===26Create ​a slider for the Open Printing Website homepage.===+===22Design ​a slider for the Open Printing Website homepage===
  
-Categories: Coding+Categories: ​Design, ​Coding
  
-Currently the Open Printing home page has a fixed banner. That needs to be converted into a dynamic slider. The student'​s task here is to create ​a slider for the Open Printing Website homepage.+Currently the Open Printing home page has a fixed banner. That needs to be converted into a dynamic slider. The student'​s task here is to design ​a slider for the Open Printing Website homepage.
  
 Deliverable:​ A pull request with the appropriate code to the [[https://​github.com/​OpenPrinting/​openprinting.github.io|GitHub of the OpenPrinting web site]]. Deliverable:​ A pull request with the appropriate code to the [[https://​github.com/​OpenPrinting/​openprinting.github.io|GitHub of the OpenPrinting web site]].
  
-===28. Create developer documentation on how to use the scp-dbus-service of system-config-printer for the functionality of discovering printers and creating print queues ===+===23. Create developer documentation on how to use the scp-dbus-service of system-config-printer for the functionality of discovering printers and creating print queues===
  
-Categories: Documentation+Categories: Documentation/Training
  
 in the printer setup tool project [[https://​github.com/​OpenPrinting/​system-config-printer|system-config-printer]] the part which makes the decisions about which of CUPS' results on printer discovery come from the same physical printer and which driver to use with a given printer (the AI so to say) are done in a module separate from the GUI, so that these parts can be also used by other printer setup tools. This part is implemented as a D-Bus service names scp-dbus-service. in the printer setup tool project [[https://​github.com/​OpenPrinting/​system-config-printer|system-config-printer]] the part which makes the decisions about which of CUPS' results on printer discovery come from the same physical printer and which driver to use with a given printer (the AI so to say) are done in a module separate from the GUI, so that these parts can be also used by other printer setup tools. This part is implemented as a D-Bus service names scp-dbus-service.
Line 282: Line 371:
 Deliverable:​ Markdown file to be included in the system-config-printer package, and also in the web site Deliverable:​ Markdown file to be included in the system-config-printer package, and also in the web site
  
-===29. Create developer documentation on how to use the Common Print Dialog Backends for a print dialog===+===24. Create developer documentation on how to use the Common Print Dialog Backends for a print dialog===
  
-Categories: Documentation+Categories: Documentation/Training
  
 To separate the development of GUIs and of the interaction with the different print technologies (CUPS, Google Could Print, Print to File, ...) we have introduced the [[https://​github.com/​OpenPrinting/​cpdb-libs|Common Print Dialog Backends]] (CPDB) framework. This way print dialog GUIs can be developed independent of actual print technology and stay usable even if the print technology changes. There are backends doing the communication with the print technologies and as they are developed independent of dialog GUI, they can get quickly changed in case something on the print technology changes or a backend added for a new technology appearing. Providers of network print services can even provide the backend for their service as a sandboxed package, like Snap. To separate the development of GUIs and of the interaction with the different print technologies (CUPS, Google Could Print, Print to File, ...) we have introduced the [[https://​github.com/​OpenPrinting/​cpdb-libs|Common Print Dialog Backends]] (CPDB) framework. This way print dialog GUIs can be developed independent of actual print technology and stay usable even if the print technology changes. There are backends doing the communication with the print technologies and as they are developed independent of dialog GUI, they can get quickly changed in case something on the print technology changes or a backend added for a new technology appearing. Providers of network print services can even provide the backend for their service as a sandboxed package, like Snap.
Line 294: Line 383:
 Deliverable:​ Markdown file to be included in the cpdb-libs package, and also in the web site Deliverable:​ Markdown file to be included in the cpdb-libs package, and also in the web site
  
-===30. Crash in diagnostics wizard ​system-config-printer===+===25. Crash in diagnostics wizard ​of system-config-printer===
  
 Categories: Coding Categories: Coding
Line 304: Line 393:
 Deliverable:​ A pull request with the fix for this bug. Deliverable:​ A pull request with the fix for this bug.
  
 +
 +===26. Create tutorials/​quick-start guides for printing under Linux===
 +
 +//​Intermediate Task//
 +
 +Categories: Documentation/​Training,​ Research/​Outreach
 +
 +Create tutorials or quick-start guides that will help people setup and configure CUPS and CUPS server in Linux for printing. You may write blog posts, or modify the documentation to include your tutorials or quick-start guides.
 +
 +Deliverable:​ Link to a blog post or a Pull Request adding your guide, tutorials, etc. to the documentation.
 +
 +====Linux Standards Base (LSB)====
 +
 +===1. Description of Linux kernel subsystems===
 +
 +Categories: Documentation/​Training,​ Coding
 +
 +Each Linux kernel subsystem provides an API for communication with the other parts of the kernel. The descriptions is available in different sources: books, like [[https://​lwn.net/​Kernel/​LDD3/​|Linux Device Drivers]], [[https://​www.oreilly.com/​library/​view/​essential-linux-device/​9780132396554/​|Essential Linux Device Drivers]], [[https://​www.kernel.org/​doc/​html/​latest/​|kernel documentation]],​ and [[https://​git.kernel.org/​pub/​scm/​linux/​kernel/​git/​torvalds/​linux.git/​|source code]].
 +
 +The task is to reveal the valid scenarios of API usage in the form of automata models (state chart diagrams) describing possible states and transitions. Thus defining dependencies and correct order of functions. We could start from describing wireless network subsystems such as WiFi and file systems.
 +
 +Requirements:​ Basic knowledge of operating systems functionality and Linux kernel in particular
 +
 +Deliverable:​ Descriptions of valid subsystem scenarios in the form of automata models (state chart diagrams)
  
 ====Sound Open Firmware ==== ====Sound Open Firmware ====
Line 309: Line 422:
 ===1. Sound Open Firmware cleanup documentation === ===1. Sound Open Firmware cleanup documentation ===
  
-Categories: Documentation+//Beginner Task// 
 + 
 +Categories: Documentation/Training
  
 Look for spelling mistakes, typos, formatting issues inside the SOF project [[https://​thesofproject.github.io/​latest/​index.html|Documentation]]. Look for spelling mistakes, typos, formatting issues inside the SOF project [[https://​thesofproject.github.io/​latest/​index.html|Documentation]].
Line 315: Line 430:
 ===2. Sound Open Firmware good first contribution === ===2. Sound Open Firmware good first contribution ===
  
-Categories: Coding +//Beginner Task// 
-[[https://​github.com/​thesofproject/​sof/​labels/​good%20first%20issue|Good First Issue]] on GitHub.+ 
 +Categories: Coding, Documentation/​Training 
 + 
 +Post a [[https://​github.com/​thesofproject/​sof/​labels/​good%20first%20issue|Good First Issue]] on GitHub. Can be a bug report or a feature request.
  
 ===3. Fix checkpatch.pl issues === ===3. Fix checkpatch.pl issues ===
  
-checkpatch.pl is a static analysis tools that can report coding style problems.+Categories: Quality Assurance, Coding
  
-CategoriesCoding+[[https://​gist.github.com/​8154928|checkpatch.pl]] is a static analysis tool that can report coding style problems. Apply it on the Sound Open Firmware source code.
  
 ===4. Fix coccinelle issues === ===4. Fix coccinelle issues ===
  
-Categories: Coding+Categories: ​Quality Assurance, ​Coding
  
-Coccinelle is a static analysis tool that starting from common ​bugs patterns can find pieces of code +[[https://​www.kernel.org/​doc/​html/​v4.15/​dev-tools/​coccinelle.html|Coccinelle]] is a static analysis tool that starting from common ​bug patterns can find pieces of code which follow a previous bug/error pattern. Apply it on the Sound Open Firmware source code.
-which follow a previous bug / error pattern.+
  
-===== CHAOSS: Grimoire Lab =====+====CHAOSS: Grimoire Lab====
  
 ===1. Create a metric for the evolution of number of comments in GitHub === ===1. Create a metric for the evolution of number of comments in GitHub ===
Line 386: Line 503:
 //Beginner Task// //Beginner Task//
  
-Categories: ​Code+Categories: ​Coding
  
 This task is to learn how to use Git and GitHub This task is to learn how to use Git and GitHub
Line 399: Line 516:
 //Beginner Task// //Beginner Task//
  
-Categories: ​Code+Categories: ​Coding
  
 This task is for learning Git and GitHub workflows ​ This task is for learning Git and GitHub workflows ​
Line 416: Line 533:
 //Advanced Task// //Advanced Task//
  
-Categories: ​Code+Categories: ​Coding
  
 Pythonic is the way of writing Python code using idioms. The Pythonic code is easier to understand and more compact wrt the standard code. This task is about replacing any statement under the GrimoireLab repositories with their equivalent Pythonic versions. For instance, possible statements to change could be (i) if-then-else or (ii) for loops. Pythonic is the way of writing Python code using idioms. The Pythonic code is easier to understand and more compact wrt the standard code. This task is about replacing any statement under the GrimoireLab repositories with their equivalent Pythonic versions. For instance, possible statements to change could be (i) if-then-else or (ii) for loops.
Line 510: Line 627:
 //Advanced Task// //Advanced Task//
  
-Categories: ​Code+Categories: ​Coding
  
 This task is about creating a Python script to execute the Git backend of Perceval via its Python interface. A good reference to achieve this task is available at: https://​chaoss.github.io/​grimoirelab-tutorial/​perceval/​git.html This task is about creating a Python script to execute the Git backend of Perceval via its Python interface. A good reference to achieve this task is available at: https://​chaoss.github.io/​grimoirelab-tutorial/​perceval/​git.html
Line 523: Line 640:
 //Advanced Task// //Advanced Task//
  
-Categories: ​Code+Categories: ​Coding
  
 This task is about creating a Python script to execute the CoCom backend of Graal via its Python interface. A good reference to achieve this task is available at: https://​chaoss.github.io/​grimoirelab-tutorial/​graal/​cocom.html ​ This task is about creating a Python script to execute the CoCom backend of Graal via its Python interface. A good reference to achieve this task is available at: https://​chaoss.github.io/​grimoirelab-tutorial/​graal/​cocom.html ​
Line 536: Line 653:
 //Advanced Task// //Advanced Task//
  
-Categories: ​Code+Categories: ​Coding
  
 This task is about creating a simple Python script to execute flake8 over all commits of https://​github.com/​chaoss/​grimoirelab-toolkit . Flake8 is a tool for style guide enforcement (http://​flake8.pycqa.org/​en/​latest/​). After this task, you will know how to call some Git commands (git clone and checkout) and flake8 from Python. To help you in this task, a script that runs flake8 over a single commit is available at: https://​gist.github.com/​valeriocos/​0c8f1a0f0dbe5dc5aa197e4c8896fdd9. You can make a copy of it and modify it to achieve the task.  This task is about creating a simple Python script to execute flake8 over all commits of https://​github.com/​chaoss/​grimoirelab-toolkit . Flake8 is a tool for style guide enforcement (http://​flake8.pycqa.org/​en/​latest/​). After this task, you will know how to call some Git commands (git clone and checkout) and flake8 from Python. To help you in this task, a script that runs flake8 over a single commit is available at: https://​gist.github.com/​valeriocos/​0c8f1a0f0dbe5dc5aa197e4c8896fdd9. You can make a copy of it and modify it to achieve the task. 
Line 548: Line 665:
 //Advanced Task// //Advanced Task//
  
-Categories: ​Code+Categories: ​Coding
  
 This task is about creating a simple Python script to execute cloc over all commits of https://​github.com/​chaoss/​grimoirelab-toolkit . Cloc is a tool that counts the lines of code, comments and other information of your source code (http://​cloc.sourceforge.net/​) This task is about creating a simple Python script to execute cloc over all commits of https://​github.com/​chaoss/​grimoirelab-toolkit . Cloc is a tool that counts the lines of code, comments and other information of your source code (http://​cloc.sourceforge.net/​)
Line 562: Line 679:
 //Advanced Task// //Advanced Task//
  
-Categories: ​Code+Categories: ​Coding
  
 This task is about creating a simple Python script to fetch the repository information of any GitHub repository. After this task, you will know how to collect data from the GitHub API using the endpoint https://​developer.github.com/​v3/​repos/#​get. To help you in this task, you can inspect the Client of the Perceval GitHub backend (https://​github.com/​chaoss/​grimoirelab-perceval/​blob/​master/​perceval/​backends/​core/​github.py#​L704) and copy the code in your script. The script must you the library request. ​ This task is about creating a simple Python script to fetch the repository information of any GitHub repository. After this task, you will know how to collect data from the GitHub API using the endpoint https://​developer.github.com/​v3/​repos/#​get. To help you in this task, you can inspect the Client of the Perceval GitHub backend (https://​github.com/​chaoss/​grimoirelab-perceval/​blob/​master/​perceval/​backends/​core/​github.py#​L704) and copy the code in your script. The script must you the library request. ​
Line 574: Line 691:
 //Advanced Task// //Advanced Task//
  
-Categories: ​Code+Categories: ​Coding
  
 This task is about creating a simple Python script to fetch the user information of any GitHub user. After this task, you will know how to collect data from the GitHub API using the endpoint https://​developer.github.com/​v3/​users/#​get-a-single-user. To help you in this task, you can inspect the Client of the Perceval GitHub backend (https://​github.com/​chaoss/​grimoirelab-perceval/​blob/​master/​perceval/​backends/​core/​github.py#​L766) and copy the code in your script. The script must you the library request. This task is about creating a simple Python script to fetch the user information of any GitHub user. After this task, you will know how to collect data from the GitHub API using the endpoint https://​developer.github.com/​v3/​users/#​get-a-single-user. To help you in this task, you can inspect the Client of the Perceval GitHub backend (https://​github.com/​chaoss/​grimoirelab-perceval/​blob/​master/​perceval/​backends/​core/​github.py#​L766) and copy the code in your script. The script must you the library request.
Line 585: Line 702:
  
  
-===== CHAOSS: Augur =====+====CHAOSS: Augur====
  
 ===18. Install Augur locally=== ===18. Install Augur locally===
Line 591: Line 708:
 //Beginner Task// //Beginner Task//
  
-Categories: ​Code, Documentation/​Training+Categories: ​Coding, Documentation/​Training
  
 Setup Augur locally on your PC. To set it up locally follow the following instructions:​ https://​oss-augur.readthedocs.io/​en/​master/​getting-started/​installation.html Setup Augur locally on your PC. To set it up locally follow the following instructions:​ https://​oss-augur.readthedocs.io/​en/​master/​getting-started/​installation.html
Line 604: Line 721:
 //Advanced Task// //Advanced Task//
  
-Categories: ​Code+Categories: ​Coding
  
 In this task implement one or more of the unimplemented CHAOSS metrics specified by the various working groups (Evolution, Risk, Value) in Augur. In this task implement one or more of the unimplemented CHAOSS metrics specified by the various working groups (Evolution, Risk, Value) in Augur.
Line 623: Line 740:
 //Advanced Task// //Advanced Task//
  
-Categories: ​Code+Categories: ​Coding
  
 A majority of the metric implementations in Augur specify a default begin & end date. Currently each metric implementation sets these default values in a hard coded way. Your task is to create two variables in `augur.util`: ​ A majority of the metric implementations in Augur specify a default begin & end date. Currently each metric implementation sets these default values in a hard coded way. Your task is to create two variables in `augur.util`: ​
Line 642: Line 759:
 //Advanced Task// //Advanced Task//
  
-Categories: ​Code, Design+Categories: ​Coding, Design
  
 In this task build one or more metric visualizations in the frontend. To add a metric visualization in the frontend checkout the following documentation https://​oss-augur.readthedocs.io/​en/​master/​architecture/​frontend.html In this task build one or more metric visualizations in the frontend. To add a metric visualization in the frontend checkout the following documentation https://​oss-augur.readthedocs.io/​en/​master/​architecture/​frontend.html
Line 664: Line 781:
 //​Intermediate Task// //​Intermediate Task//
  
-Categories: Documentation/​Training, ​Research/Outreach+Categories: Documentation/​Training,​ Outreach/Research
  
 Create tutorials or quickstart guides that will help people setup Augur easily, implement metrics, collect data for their repositories,​ etc. You may write blog posts, or modify the documentation to include your tutorials or quickstart guides. ​ Create tutorials or quickstart guides that will help people setup Augur easily, implement metrics, collect data for their repositories,​ etc. You may write blog posts, or modify the documentation to include your tutorials or quickstart guides. ​
gsoc/google-code-in-2019.1572079778.txt.gz · Last modified: 2019/10/26 08:49 by till