This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
gsoc:google-code-in-2019 [2019/10/23 19:28] 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 17: | Line 17: | ||
Do not hesitate to ask questions. Please use the contact info (e-mail, IRC) of the workgroup in which you want to do your task(s). You find it by following the links below. For general questions about participating as GCI student in projects of the Linux Foundation, join the #linuxfoundation-gsoc channel on Freenode. | Do not hesitate to ask questions. Please use the contact info (e-mail, IRC) of the workgroup in which you want to do your task(s). You find it by following the links below. For general questions about participating as GCI student in projects of the Linux Foundation, join the #linuxfoundation-gsoc channel on Freenode. | ||
- | =====Linux Foundation GSoC 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 |
+ | |||
+ | [[: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 site: http://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 License: As 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 site: https://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 contacts: Lukas 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 43: | 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 55: | 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 71: | 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 85: | 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]]. | ||
- | Deliverables: snapcraft.yaml and build instructions to build the Printer Application. | + | Deliverable: snapcraft.yaml and build instructions to build the Printer Application |
===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'=== | ||
Line 111: | 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. | ||
This filter is used to create banner pages and test pages using simple instructions. Due to lack of documentation, most users do not know about its functionality. The student needs to document all its options and the format of the instruction files which are used as input for the filter. | This filter is used to create banner pages and test pages using simple instructions. Due to lack of documentation, most users do not know about its functionality. The student needs to document all its options and the format of the instruction files which are used as input for the filter. | ||
- | Deliverables: 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. | ||
This filter is the central filter for processing the pages according to page management options and also to take care that the page sizes can be printed on the printer. Due to lack of documentation, most users do not know about its functionality, especially not about all the available page management options (page selection, N-up, even/odd pages for manual duplex, scaling, booklet, ...). The student needs to document all the options and functionality of the filter. | This filter is the central filter for processing the pages according to page management options and also to take care that the page sizes can be printed on the printer. Due to lack of documentation, most users do not know about its functionality, especially not about all the available page management options (page selection, N-up, even/odd pages for manual duplex, scaling, booklet, ...). The student needs to document all the options and functionality of the filter. | ||
- | Deliverables: 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. | ||
- | Deliverables: 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. | ||
- | Deliverables: 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 159: | 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 169: | 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 179: | 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 191: | 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 201: | 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 new pages of OP website=== | + | ===15. .htaccess file: Add rules to forward old URLs to the new pages of the OpenPrinting web site=== |
- | Issue# https://github.com/OpenPrinting/openprinting.github.io/issues/61 | + | |
Categories: Coding | Categories: Coding | ||
- | Webpage: https://openprinting.github.io/ | + | [[https://github.com/OpenPrinting/openprinting.github.io/issues/61|OpenPrinting Web site issue #61]] |
- | The .htaccess file (in the foomatic-web-app repo) allows to carry any amount of rules to redirect old URLs (which could be linked from somewhere) to pages of the new site. Feel free to add rules here. | + | The .htaccess file (in the [[https://github.com/OpenPrinting/foomatic-db-webapp|foomatic-web-app]] repository on the OpenPrinting GitHub) allows to carry any amount of rules to redirect URLs of the former web site (which could be linked from somewhere) to pages of the new site. The task is to find as many old links as possible and add forwarding rules to the appropriate pages of the new site, and also to report issues on the [[https://github.com/OpenPrinting/openprinting.github.io|site's GitHub]] in case an important page is missing on the new site. |
- | The most important rule, letting www.openprinting.org be redirected to https://openprinting.github.io, I have already added. | + | 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. |
- | ===19. .htaccess file: Add rules to forward old URLs to new pages of OP website=== | + | ===16. Write test cases for driverless printing=== |
- | Issue# https://github.com/OpenPrinting/openprinting.github.io/issues/61 | + | |
- | Categories: Coding | + | Categories: Quality Assurance |
- | Webpage: https://openprinting.github.io/ | + | 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. |
- | The .htaccess file (in the foomatic-web-app repo) allows to carry any amount of rules to redirect old URLs (which could be linked from somewhere) to pages of the new site. Feel free to add rules here. | + | Deliverables: Write-up of the series of test cases, for each test what has to be done and what result gets expected. |
- | The most important rule, letting www.openprinting.org be redirected to https://openprinting.github.io, I have already added. | + | When this task is completed, new tasks will get posted for implementing the test cases as scripts. |
- | ===20. Write test cases for Driverless print=== | + | ===17. Developer guide for Printer Applications=== |
- | Categories: Testing | + | Categories: Documentation/Training |
- | Write the test cases for Driverless print. The test case 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. | + | The student's task is to write a guide on how Printer Applications work and why they are used. |
+ | Deliverable: Markdown file to be included in the cups-filters package and also in the web site | ||
- | ===21. User guide for Printer Application=== | + | ===18. Test and create documentation on how to use the ippserver utility=== |
- | Categories: Documentation | + | Categories: Documentation/Training |
- | As a part of this project, a student needs to create a help or a user guide explaining why a Printer Application is required and how will it be useful down the line since this is going to be the future of printing. | + | 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. |
- | ===22. ReTest & create readme document on how to use IPP Server=== | + | Deliverable: Markdown file to be included in the ippsample package and also in the web site |
- | Categories: Testing / Documentation | + | ===19. Create documentation on how to use the ippeveprinter utility=== |
- | As a part of this project, a student needs to document on how to use an IPP Server and 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. | + | Categories: Documentation/Training |
- | ===23. Test & create readme document on how to use IPP eve 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). |
- | Categories: Testing / Documentation | + | Deliverable: Markdown file to be included in the ippsample package, the CUPS package, and also in the web site |
- | As a part of this project, a student needs to document on how to use a Readme document on how to use IPP eve printer. This is very important for contributors in the printing space. | + | ===20. Create documentation on how to use the IPP tools of PWG's ippsample suite=== |
+ | Categories: Documentation/Training | ||
- | ===24. Test & create readme document on how to use IPP Tools=== | + | 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. |
- | Categories: Testing / Documentation | + | Deliverable: Markdown file to be included in the ippsample package, the CUPS package, and also in the web site |
- | As a part of this project, a student needs to document on how to use a IPP Tools. This is a developer and debugging tool controlling printers from shell scripts. This is a very important tools for developers in the printing space. | + | ===21. Shell scripts to capture print files automatically=== |
- | ===25. Shell scripts to capture print files automatically=== | + | Categories: Coding, Quality Assurance |
- | Categories: Coding | + | 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 print fails, a print file is one of the most important tools for a developer to have a first look into what has failed. | + | The student's task here is to write a shell (or Python) script which makes it easy to obtain such a file. |
- | As a part of this project, a student needs to create a shell script which can be used by anyone to capture the print file automatically. | + | Deliverable: The script |
- | ===26. Create a slider for the Open Printing Website homepage.=== | + | ===22. Design 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.As a part of this task, a student needs 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. |
- | ===27. Create a tutorial page in the Open Printing Website=== | + | Deliverable: A pull request with the appropriate code to the [[https://github.com/OpenPrinting/openprinting.github.io|GitHub of the OpenPrinting web site]]. |
- | Categories: Coding | + | ===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=== |
- | As a part of this work, a student needs to create an Open Printing website tutorial page which can be updated with all sorts of tutorial stuff. | + | Categories: Documentation/Training |
- | ===28. Create a developer's document on how to use the scp-dbus service for the functionality of discovering printers and creating a printqueue. === | + | 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. |
- | Categories: Coding | + | The student's task here is to create developer documention on how to use the scp-dbus-service for the functionality of discovering printers, assigning drivers, and creating print queues, so that he can write a printer setup tool. |
- | As a part of this project, a student needs to create a developer's document on how to use the scp-dbus service for the functionality of discovering printers and creating a print queue. | + | Deliverable: Markdown file to be included in the system-config-printer package, and also in the web site |
- | ===29. Create a developer's document on how to use the common print dialog backend for a print dialog=== | + | ===24. Create developer documentation on how to use the Common Print Dialog Backends for a print dialog=== |
- | Categories: Coding | + | Categories: Documentation/Training |
- | As a part of this project, a student needs to create a developer's document on how to use the common print dialog backend for a print dialog. | + | 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. |
- | ===30. Crash in diagnostics wizard : system-config-printer=== | + | Creating of new print dialogs and maintaining them gets much easier now as one only needs to use the frontend library of CPDB and call its functions to get a dialog which is always up-to-date with all print technologies. |
+ | |||
+ | The student's task is to create a developer documentation on how to use the Common Print Dialog Backends concept for writing a print dialog. | ||
+ | |||
+ | Deliverable: Markdown file to be included in the cpdb-libs package, and also in the web site | ||
+ | |||
+ | ===25. Crash in diagnostics wizard of system-config-printer=== | ||
Categories: Coding | Categories: Coding | ||
- | https://github.com/OpenPrinting/system-config-printer/issues/141 | + | [[https://github.com/OpenPrinting/system-config-printer/issues/141|system-config-printer Issue #141]] |
+ | |||
+ | A user reported that the diagnostics wizard of system-config-printer crashes in certain cases and gives instructions how to reproduce the bug. The studen's task here is fixing the 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 297: | 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 303: | 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 |
- | Categories: Coding | + | [[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 374: | 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 387: | 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 404: | 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 498: | 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 511: | 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 524: | 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 536: | 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 550: | 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 562: | 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 573: | Line 702: | ||
- | ===== CHAOSS: Augur ===== | + | ====CHAOSS: Augur==== |
===18. Install Augur locally=== | ===18. Install Augur locally=== | ||
Line 579: | 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 592: | 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 611: | 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 630: | 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 652: | 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. |