From Fedora Project Wiki

(Updated the format and fixed the page.)
Line 14: Line 14:
* [[Communicate/IRCHowTo|IRC]]
* [[Communicate/IRCHowTo|IRC]]
* [[Development|Development]]
* [[Development|Development]]


== Supporting Mentors ==
== Supporting Mentors ==
Line 19: Line 20:


* [[User:Bex|Brian (bex) Exelbierd]] (Fedora Community Action and Impact Coordinator, FCAIC, πŸŽ‚, containers, general development, general Linux)
* [[User:Bex|Brian (bex) Exelbierd]] (Fedora Community Action and Impact Coordinator, FCAIC, πŸŽ‚, containers, general development, general Linux)
* [[User:Rhea|Radka (rhea) Janek]] (C#, webserver or dotnet related stuff on linux, general support)
* [[User:Jflory7|Justin W. Flory]] (General development, general Linux, Fedora community, GSoC alumnus, questions about program, misc. advice)
* [[User:Jflory7|Justin W. Flory]] (General development, general Linux, Fedora community, GSoC alumnus, questions about program, misc. advice)
* [[User:Linuxmodder|Corey Sheldon]] (Python, 2Factor/Multi-Factor Auth, QA Testing, general mentoring,2nd year as a mentor, security)
* [[User:Rhea|Radka (rhea) Janek]] (C#, webserver or dotnet related stuff on Linux, general support)
* [[User:Linuxmodder|Corey Sheldon]] (Python, 2Factor/Multi-Factor Auth, QA Testing, general mentoring, security)
Β 


== Draft of an idea ==
== Draft of an idea ==
Please add your idea using the following template.Β  The template contains examples and questions that should be answered.
Please add your idea using the following template.Β  The template contains ''comments in italic text'', examples and questions that should be answered. '''Please copy the template (your idea) into the list of ideas - do not change it here.'''


=== Support for end-of-life notification ===
=== Project Name ===
{| class="wikitable"
|-
!Status
| Proposed - draft ''Use this status.''
|-
!'''Skill level'''
| Novice / Intermediate / Proficient ''Are the required skills below something a beginner would no or could reasonably learn quickly? Is there an area where knowledge is already expected making this an advanced project?Β  Also consider how much knowledge about Fedora is required.''
|-
!'''Skills required'''
| ''Programming languages or other skills that the student should already posess.Β  Keep in mind that students come to both practice thieir existing skills and grow.Β  Scope your tasks for someone to be able to apply and learn during the project, therefore you shouldn't list everything required to complete the task.''
|-
!'''Mentor(s)'''
| ''If your SIG is taking the responsibility, specify as in this example (and always link to people or groups)'' [[SIGs/DotNet|DotNet SIG]] - [[User:Rhea|Radka (rhea) Janek]], ...
|-
!'''Contacts (IRC & email)'''
| ''{{fpchat|#example-irc-channel}} & {{fplist|example-list}} - Mentors email or mailing list of your SIG.''
|-
!'''Idea description'''
| ''Something something.''
|-
!'''Notes & references'''
| ''Something or nothing.''
|-
|}


{| tableclass="t1" class="sortable"
! Project !! IRC Channel !! Web Page !! Mentor(s) !! Notes
|-
| ''Fedora Atomic'' || #atomic || [https://projectatomic.io ProjectAtomic.io]Β  || [[User:potty | Abdel G. MartΓ­nezΒ  L.]] (potty) || Description


* [https://github.com/projectatomic/rpm-ostree/issues/142 Support for end-of-life notification]: Add support for having an `end-of-life` notification to inform users if a particular branch is not supported anymore.
= Idea list for GSoC 2017 =


=== Fedora Atomic: Support for end-of-life notification ===
{| class="wikitable"
|-
!'''Status'''
| Proposed - draft
|-
!'''Skill level'''
| Novice
|-
!'''Skills required'''
|
Required:
Required:
* C programming experience
* C programming experience
Line 42: Line 75:
* Advanced C programming experience
* Advanced C programming experience
* experience with RPM packaging
* experience with RPM packaging
|-
!'''Mentor(s)'''
| [[User:potty | Abdel G. MartΓ­nezΒ  L.]] (potty)
|-
!'''Contacts (IRC & email)'''
| {{fpchat|#atomic}} //'''Mentor's email or mailing list is missing.'''// <!-- {{fplist|example-list}} -->
|-
!'''Idea description'''
|
* [https://github.com/projectatomic/rpm-ostree/issues/142 Support for end-of-life notification]: Add support for having an `end-of-life` notification to inform users if a particular branch is not supported anymore.


Libraries and Software:
Libraries and Software:
* rpm-ostree
* rpm-ostree
* atomic CLI
* atomic CLI
Difficulty Level:
* Novice


Expected outcomes
Expected outcomes
Line 55: Line 95:
* Learn how to work with upstreams and Linux distributions
* Learn how to work with upstreams and Linux distributions
* Understand how EOL policies and lifecycles work
* Understand how EOL policies and lifecycles work
|-
!'''Notes & references'''
| [https://projectatomic.io ProjectAtomic.io]
|-
|-
| ''389 Directory Server'' || #389 || [http://www.port389.org/ port389.org] || [[User:firstyear | William Brown]] (firstyear) || Description
|}


=== 389 Directory Server: //What?//Β  ===
{| class="wikitable"
|-
!'''Status'''
| Proposed - draft ''Use this status.''
|-
!'''Skill level'''
| Intermediate
|-
!'''Skills required'''
| '''//Python?//'''
|-
!'''Mentor(s)'''
| [[User:firstyear | William Brown]] (firstyear)
|-
!'''Contacts (IRC & email)'''
| ''{{fpchat|#389}} //'''Mentor's email or mailing list is missing.'''// <!-- {{fplist|example-list}} -->
|-
!'''Idea description'''
|
389 Directory ServerΒ  is an enterprise class LDAP server, used in businesses globally to authenticate and identify people. We have a large code base that has gone through nearly 20 years of evolution.
389 Directory ServerΒ  is an enterprise class LDAP server, used in businesses globally to authenticate and identify people. We have a large code base that has gone through nearly 20 years of evolution.


Line 77: Line 141:
* Use of git and ticket trackers for a project.
* Use of git and ticket trackers for a project.
* How to contribute to mailing lists and the review process.
* How to contribute to mailing lists and the review process.
Required Skills:
* Intermediate python (classes, inheritance, library usage, callbacks)
* Basic Linux Administration (yum, sudo, syslog/journald, willingness to investigate)
* Ability to interpret perl (but no need to write it!)
Overall Skill Level:
* Intermediate.


What are we looking for:
What are we looking for:
Line 93: Line 149:


|-
|-
|}
!'''Notes & references'''
Β 
| [http://www.port389.org/ port389.org]
=== Project Name ===
{| tableclass="t1"
|-
|'''Status''' || Proposed - draft (use this)
|-
|'''Skill level''' || Are the required skills below something a beginner would no or could reasonably learn quickly? Is there an area where knowledge is already expected making this an advanced project?Β  Also consider how much knowledge about Fedora is required.
|-
|'''Skills required''' || Programming languages or other skills that the student should already posess.Β  Keep in mind that students come to both practice thieir existing skills and grow.Β  Scope your tasks for someone to be able to apply and learn during the project, therefore you shouldn't list everything required to complete the task.
|-
|'''Mentor(s)''' || [[SIGs/DotNet|DotNet SIG]] - [[User:Rhea|Radka (rhea) Janek]], ... //If your SIG is taking the responsibility, specify as in this example (and always link to people or groups)
|-
|'''Contacts (IRC & email)''' || {{fpchat|#example-irc-channel}} & {{fplist|example-list}} //Mentors email or mailing list of your SIG.
|-
|'''Idea description''' || ...
|-
|'''Notes & references''' || ...
|-
|-
|}
|}
== Idea list for GSoC 2017 ==
<!-- === DotNet application builder/packager tool === //work in progress
{| tableclass="t1"
|-
|'''Status''' || Proposed - draft
|-
|'''Skill level''' || Beginner
|-
|'''Skills required''' || C# and ....what?
|-
|'''Mentor(s)''' || [[SIGs/DotNet|DotNet SIG]] - [[User:Rhea|Radka (rhea) Janek]], [[User:nmilosev|Nemanja Milosevic]]
|-
|'''Contacts (IRC & email)''' || {{fpchat|#fedora-dotnet}} & {{fplist|dotnet-sig}}
|-
|'''Idea description''' || Something something tool to build and package apps... something something
|-
|'''Notes & references''' ||
|-
|} -->





Revision as of 03:16, 11 February 2017

Open For Ideas! - This page contains some ideas from last year. This does not mean that they are valid for this year too. We are in the process of cleaning up the page.

Find an idea you like? Want to propose your own? See the student application process.


Students Welcome

If you are a student looking forward to participate the GSoC 2017 with Fedora, please feel free to browse this idea list which is still growing. Do not hesitate to contact the mentors or contributors listed on this page for any questions or clarification. You can find people on the #fedora-summer-coding IRC channel.

If you are new to the Fedora Project, the following material will help you to get started. You should also follow the student application process #fedora-devel can be used for getting help with programming problems.


Supporting Mentors

The following contributors are available to provide general help and support for the GSoC 2017 program (existing contributors, feel free to add yourselves and your wiki page). If a specific project mentor is busy, you can contact one of the people below for short-term help on your project or task.

  • Brian (bex) Exelbierd (Fedora Community Action and Impact Coordinator, FCAIC, πŸŽ‚, containers, general development, general Linux)
  • Justin W. Flory (General development, general Linux, Fedora community, GSoC alumnus, questions about program, misc. advice)
  • Radka (rhea) Janek (C#, webserver or dotnet related stuff on Linux, general support)
  • Corey Sheldon (Python, 2Factor/Multi-Factor Auth, QA Testing, general mentoring, security)


Draft of an idea

Please add your idea using the following template. The template contains comments in italic text, examples and questions that should be answered. Please copy the template (your idea) into the list of ideas - do not change it here.

Project Name

Status Proposed - draft Use this status.
Skill level Novice / Intermediate / Proficient Are the required skills below something a beginner would no or could reasonably learn quickly? Is there an area where knowledge is already expected making this an advanced project? Also consider how much knowledge about Fedora is required.
Skills required Programming languages or other skills that the student should already posess. Keep in mind that students come to both practice thieir existing skills and grow. Scope your tasks for someone to be able to apply and learn during the project, therefore you shouldn't list everything required to complete the task.
Mentor(s) If your SIG is taking the responsibility, specify as in this example (and always link to people or groups) DotNet SIG - Radka (rhea) Janek, ...
Contacts (IRC & email) #example-irc-channel[?] & example-list - Mentors email or mailing list of your SIG.
Idea description Something something.
Notes & references Something or nothing.


Idea list for GSoC 2017

Fedora Atomic: Support for end-of-life notification

Status Proposed - draft
Skill level Novice
Skills required

Required:

  • C programming experience
  • Fedora or other GNU/Linux Experience

Bonus Skills:

  • Advanced C programming experience
  • experience with RPM packaging
Mentor(s) Abdel G. MartΓ­nez L. (potty)
Contacts (IRC & email) #atomic[?] //Mentor's email or mailing list is missing.//
Idea description

Libraries and Software:

  • rpm-ostree
  • atomic CLI

Expected outcomes

  • rpm-ostree and atomic command output explaining when a version of an upgraded tree branch is end of life (EoL)
  • feature merged into future releases, and packaged for distribution
  • Learn how to work with upstreams and Linux distributions
  • Understand how EOL policies and lifecycles work
Notes & references ProjectAtomic.io

389 Directory Server: //What?//

Status Proposed - draft Use this status.
Skill level Intermediate
Skills required //Python?//
Mentor(s) William Brown (firstyear)
Contacts (IRC & email) #389[?] //Mentor's email or mailing list is missing.//
Idea description

389 Directory Server is an enterprise class LDAP server, used in businesses globally to authenticate and identify people. We have a large code base that has gone through nearly 20 years of evolution.

Part of this evolution has been the recent addition of a python administration framework designed to replace our legacy perl tools. The framework already has the base classes designed and written, but we need help to knit together the high level administrative functionality.

Throughout this process you will need to:

  • Learn to deploy a 389 Directory Server.
  • Learn some of the functions of 389 DS (account policy, plugin management).
  • Read and interpret some of our existing perl and shell scripts.
  • Extend the python tools dsconf to support enabling / disabling / configuration of modules in Directory Server to replace our legacy tools.
  • Review other team members' python code.
  • Participate in our community.

From this you will learn:

  • How to integrate and use existing python frameworks and servers.
  • Techniques to unit test command line and python tools.
  • How to work with a geographically distributed team.
  • Engineering principles expected of a project with high quality demands.
  • Use of git and ticket trackers for a project.
  • How to contribute to mailing lists and the review process.

What are we looking for:

  • To teach you good community engagement, and engineering skills. The coding project is a means to help us teach you to interact effectively with a team, and to learn engineering principles.

Is this project right for you?

  • Come and talk to wibrown on #389 in irc on freenode, or email our mailing list 389-devel@lists.fedoraproject.org
Notes & references port389.org


Open Ideas From GSoC 2016

In addition to the above list of ideas, you may want to check out ideas from previous years and contact the mentors for those projects to see if they're still interested in mentoring someone this year.

Note: Do not submit a proposal for an idea from a previous year without contacting the mentor to ensure they will be available to mentor you. Without a mentor, proposals will be rejected.

Previous years: