๐ŸŽ‰ Initial commit

This commit creates a new content repository for the Mentored Projects
Working Group documentation. This allows us to have a single, absolute
source of truth for all things documentation. This convention of using a
repository named "docs" follows an existing convention being used across
several Fedora Docs content repositories across the Fedora-verse.

This content was largely imported from the Mentored Projects WG Tickets
repo, where the tickets and docs were once bundled together into one.
This content will eventually be removed from the Tickets repo.

ref: https://forge.fedoraproject.org/mentored-projects/tickets

Signed-off-by: Justin Wheeler <jwheel@redhat.com>
This commit is contained in:
Justin Wheeler 2026-02-25 19:57:06 -05:00
commit cebb3034b2
Signed by: jflory7
GPG key ID: 7748B15FA8FA4C7E
80 changed files with 16375 additions and 0 deletions

427
LICENSE.txt Normal file
View file

@ -0,0 +1,427 @@
Attribution-ShareAlike 4.0 International
=======================================================================
Creative Commons Corporation ("Creative Commons") is not a law firm and
does not provide legal services or legal advice. Distribution of
Creative Commons public licenses does not create a lawyer-client or
other relationship. Creative Commons makes its licenses and related
information available on an "as-is" basis. Creative Commons gives no
warranties regarding its licenses, any material licensed under their
terms and conditions, or any related information. Creative Commons
disclaims all liability for damages resulting from their use to the
fullest extent possible.
Using Creative Commons Public Licenses
Creative Commons public licenses provide a standard set of terms and
conditions that creators and other rights holders may use to share
original works of authorship and other material subject to copyright
and certain other rights specified in the public license below. The
following considerations are for informational purposes only, are not
exhaustive, and do not form part of our licenses.
Considerations for licensors: Our public licenses are
intended for use by those authorized to give the public
permission to use material in ways otherwise restricted by
copyright and certain other rights. Our licenses are
irrevocable. Licensors should read and understand the terms
and conditions of the license they choose before applying it.
Licensors should also secure all rights necessary before
applying our licenses so that the public can reuse the
material as expected. Licensors should clearly mark any
material not subject to the license. This includes other CC-
licensed material, or material used under an exception or
limitation to copyright. More considerations for licensors:
wiki.creativecommons.org/Considerations_for_licensors
Considerations for the public: By using one of our public
licenses, a licensor grants the public permission to use the
licensed material under specified terms and conditions. If
the licensor's permission is not necessary for any reason--for
example, because of any applicable exception or limitation to
copyright--then that use is not regulated by the license. Our
licenses grant only permissions under copyright and certain
other rights that a licensor has authority to grant. Use of
the licensed material may still be restricted for other
reasons, including because others have copyright or other
rights in the material. A licensor may make special requests,
such as asking that all changes be marked or described.
Although not required by our licenses, you are encouraged to
respect those requests where reasonable. More_considerations
for the public:
wiki.creativecommons.org/Considerations_for_licensees
=======================================================================
Creative Commons Attribution-ShareAlike 4.0 International Public
License
By exercising the Licensed Rights (defined below), You accept and agree
to be bound by the terms and conditions of this Creative Commons
Attribution-ShareAlike 4.0 International Public License ("Public
License"). To the extent this Public License may be interpreted as a
contract, You are granted the Licensed Rights in consideration of Your
acceptance of these terms and conditions, and the Licensor grants You
such rights in consideration of benefits the Licensor receives from
making the Licensed Material available under these terms and
conditions.
Section 1 -- Definitions.
a. Adapted Material means material subject to Copyright and Similar
Rights that is derived from or based upon the Licensed Material
and in which the Licensed Material is translated, altered,
arranged, transformed, or otherwise modified in a manner requiring
permission under the Copyright and Similar Rights held by the
Licensor. For purposes of this Public License, where the Licensed
Material is a musical work, performance, or sound recording,
Adapted Material is always produced where the Licensed Material is
synched in timed relation with a moving image.
b. Adapter's License means the license You apply to Your Copyright
and Similar Rights in Your contributions to Adapted Material in
accordance with the terms and conditions of this Public License.
c. BY-SA Compatible License means a license listed at
creativecommons.org/compatiblelicenses, approved by Creative
Commons as essentially the equivalent of this Public License.
d. Copyright and Similar Rights means copyright and/or similar rights
closely related to copyright including, without limitation,
performance, broadcast, sound recording, and Sui Generis Database
Rights, without regard to how the rights are labeled or
categorized. For purposes of this Public License, the rights
specified in Section 2(b)(1)-(2) are not Copyright and Similar
Rights.
e. Effective Technological Measures means those measures that, in the
absence of proper authority, may not be circumvented under laws
fulfilling obligations under Article 11 of the WIPO Copyright
Treaty adopted on December 20, 1996, and/or similar international
agreements.
f. Exceptions and Limitations means fair use, fair dealing, and/or
any other exception or limitation to Copyright and Similar Rights
that applies to Your use of the Licensed Material.
g. License Elements means the license attributes listed in the name
of a Creative Commons Public License. The License Elements of this
Public License are Attribution and ShareAlike.
h. Licensed Material means the artistic or literary work, database,
or other material to which the Licensor applied this Public
License.
i. Licensed Rights means the rights granted to You subject to the
terms and conditions of this Public License, which are limited to
all Copyright and Similar Rights that apply to Your use of the
Licensed Material and that the Licensor has authority to license.
j. Licensor means the individual(s) or entity(ies) granting rights
under this Public License.
k. Share means to provide material to the public by any means or
process that requires permission under the Licensed Rights, such
as reproduction, public display, public performance, distribution,
dissemination, communication, or importation, and to make material
available to the public including in ways that members of the
public may access the material from a place and at a time
individually chosen by them.
l. Sui Generis Database Rights means rights other than copyright
resulting from Directive 96/9/EC of the European Parliament and of
the Council of 11 March 1996 on the legal protection of databases,
as amended and/or succeeded, as well as other essentially
equivalent rights anywhere in the world.
m. You means the individual or entity exercising the Licensed Rights
under this Public License. Your has a corresponding meaning.
Section 2 -- Scope.
a. License grant.
1. Subject to the terms and conditions of this Public License,
the Licensor hereby grants You a worldwide, royalty-free,
non-sublicensable, non-exclusive, irrevocable license to
exercise the Licensed Rights in the Licensed Material to:
a. reproduce and Share the Licensed Material, in whole or
in part; and
b. produce, reproduce, and Share Adapted Material.
2. Exceptions and Limitations. For the avoidance of doubt, where
Exceptions and Limitations apply to Your use, this Public
License does not apply, and You do not need to comply with
its terms and conditions.
3. Term. The term of this Public License is specified in Section
6(a).
4. Media and formats; technical modifications allowed. The
Licensor authorizes You to exercise the Licensed Rights in
all media and formats whether now known or hereafter created,
and to make technical modifications necessary to do so. The
Licensor waives and/or agrees not to assert any right or
authority to forbid You from making technical modifications
necessary to exercise the Licensed Rights, including
technical modifications necessary to circumvent Effective
Technological Measures. For purposes of this Public License,
simply making modifications authorized by this Section 2(a)
(4) never produces Adapted Material.
5. Downstream recipients.
a. Offer from the Licensor -- Licensed Material. Every
recipient of the Licensed Material automatically
receives an offer from the Licensor to exercise the
Licensed Rights under the terms and conditions of this
Public License.
b. Additional offer from the Licensor -- Adapted Material.
Every recipient of Adapted Material from You
automatically receives an offer from the Licensor to
exercise the Licensed Rights in the Adapted Material
under the conditions of the Adapter's License You apply.
c. No downstream restrictions. You may not offer or impose
any additional or different terms or conditions on, or
apply any Effective Technological Measures to, the
Licensed Material if doing so restricts exercise of the
Licensed Rights by any recipient of the Licensed
Material.
6. No endorsement. Nothing in this Public License constitutes or
may be construed as permission to assert or imply that You
are, or that Your use of the Licensed Material is, connected
with, or sponsored, endorsed, or granted official status by,
the Licensor or others designated to receive attribution as
provided in Section 3(a)(1)(A)(i).
b. Other rights.
1. Moral rights, such as the right of integrity, are not
licensed under this Public License, nor are publicity,
privacy, and/or other similar personality rights; however, to
the extent possible, the Licensor waives and/or agrees not to
assert any such rights held by the Licensor to the limited
extent necessary to allow You to exercise the Licensed
Rights, but not otherwise.
2. Patent and trademark rights are not licensed under this
Public License.
3. To the extent possible, the Licensor waives any right to
collect royalties from You for the exercise of the Licensed
Rights, whether directly or through a collecting society
under any voluntary or waivable statutory or compulsory
licensing scheme. In all other cases the Licensor expressly
reserves any right to collect such royalties.
Section 3 -- License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the
following conditions.
a. Attribution.
1. If You Share the Licensed Material (including in modified
form), You must:
a. retain the following if it is supplied by the Licensor
with the Licensed Material:
i. identification of the creator(s) of the Licensed
Material and any others designated to receive
attribution, in any reasonable manner requested by
the Licensor (including by pseudonym if
designated);
ii. a copyright notice;
iii. a notice that refers to this Public License;
iv. a notice that refers to the disclaimer of
warranties;
v. a URI or hyperlink to the Licensed Material to the
extent reasonably practicable;
b. indicate if You modified the Licensed Material and
retain an indication of any previous modifications; and
c. indicate the Licensed Material is licensed under this
Public License, and include the text of, or the URI or
hyperlink to, this Public License.
2. You may satisfy the conditions in Section 3(a)(1) in any
reasonable manner based on the medium, means, and context in
which You Share the Licensed Material. For example, it may be
reasonable to satisfy the conditions by providing a URI or
hyperlink to a resource that includes the required
information.
3. If requested by the Licensor, You must remove any of the
information required by Section 3(a)(1)(A) to the extent
reasonably practicable.
b. ShareAlike.
In addition to the conditions in Section 3(a), if You Share
Adapted Material You produce, the following conditions also apply.
1. The Adapter's License You apply must be a Creative Commons
license with the same License Elements, this version or
later, or a BY-SA Compatible License.
2. You must include the text of, or the URI or hyperlink to, the
Adapter's License You apply. You may satisfy this condition
in any reasonable manner based on the medium, means, and
context in which You Share Adapted Material.
3. You may not offer or impose any additional or different terms
or conditions on, or apply any Effective Technological
Measures to, Adapted Material that restrict exercise of the
rights granted under the Adapter's License You apply.
Section 4 -- Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that
apply to Your use of the Licensed Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
to extract, reuse, reproduce, and Share all or a substantial
portion of the contents of the database;
b. if You include all or a substantial portion of the database
contents in a database in which You have Sui Generis Database
Rights, then the database in which You have Sui Generis Database
Rights (but not its individual contents) is Adapted Material,
including for purposes of Section 3(b); and
c. You must comply with the conditions in Section 3(a) if You Share
all or a substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not
replace Your obligations under this Public License where the Licensed
Rights include other Copyright and Similar Rights.
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
c. The disclaimer of warranties and limitation of liability provided
above shall be interpreted in a manner that, to the extent
possible, most closely approximates an absolute disclaimer and
waiver of all liability.
Section 6 -- Term and Termination.
a. This Public License applies for the term of the Copyright and
Similar Rights licensed here. However, if You fail to comply with
this Public License, then Your rights under this Public License
terminate automatically.
b. Where Your right to use the Licensed Material has terminated under
Section 6(a), it reinstates:
1. automatically as of the date the violation is cured, provided
it is cured within 30 days of Your discovery of the
violation; or
2. upon express reinstatement by the Licensor.
For the avoidance of doubt, this Section 6(b) does not affect any
right the Licensor may have to seek remedies for Your violations
of this Public License.
c. For the avoidance of doubt, the Licensor may also offer the
Licensed Material under separate terms or conditions or stop
distributing the Licensed Material at any time; however, doing so
will not terminate this Public License.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
License.
Section 7 -- Other Terms and Conditions.
a. The Licensor shall not be bound by any additional or different
terms or conditions communicated by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the
Licensed Material not stated herein are separate from and
independent of the terms and conditions of this Public License.
Section 8 -- Interpretation.
a. For the avoidance of doubt, this Public License does not, and
shall not be interpreted to, reduce, limit, restrict, or impose
conditions on any use of the Licensed Material that could lawfully
be made without permission under this Public License.
b. To the extent possible, if any provision of this Public License is
deemed unenforceable, it shall be automatically reformed to the
minimum extent necessary to make it enforceable. If the provision
cannot be reformed, it shall be severed from this Public License
without affecting the enforceability of the remaining terms and
conditions.
c. No term or condition of this Public License will be waived and no
failure to comply consented to unless expressly agreed to by the
Licensor.
d. Nothing in this Public License constitutes or may be interpreted
as a limitation upon, or waiver of, any privileges and immunities
that apply to the Licensor or You, including from the legal
processes of any jurisdiction or authority.
=======================================================================
Creative Commons is not a party to its public
licenses. Notwithstanding, Creative Commons may elect to apply one of
its public licenses to material it publishes and in those instances
will be considered the โ€œLicensor.โ€ The text of the Creative Commons
public licenses is dedicated to the public domain under the CC0 Public
Domain Dedication. Except for the limited purpose of indicating that
material is shared under a Creative Commons public license or as
otherwise permitted by the Creative Commons policies published at
creativecommons.org/policies, Creative Commons does not authorize the
use of the trademark "Creative Commons" or any other trademark or logo
of Creative Commons without its prior written consent including,
without limitation, in connection with any unauthorized modifications
to any of its public licenses or any other arrangements,
understandings, or agreements concerning use of licensed material. For
the avoidance of doubt, this paragraph does not form part of the
public licenses.
Creative Commons may be contacted at creativecommons.org.

50
README.adoc Normal file
View file

@ -0,0 +1,50 @@
== Mentored Projects WG Docs
// Style rule: one sentence per line please!
// This makes git diffs easier to read. :)
[link=https://creativecommons.org/licenses/by-sa/4.0/]
image::https://img.shields.io/badge/License-CC%20BY--SA%204.0-lightgrey.svg[Fedora Docs content licensed under CC BY-SA 4.0]
[link=https://matrix.to/#/#mentoring:fedoraproject.org]
image::https://img.shields.io/badge/Chat-in?style=flat&logo=Matrix&label=%23mentoring%3Afedoraproject.org&link=https%3A%2F%2Fmatrix.to%2F%23%2F%23mentoring%3Afedoraproject.org[Join us at #mentoring:fedoraproject.org on Matrix]
Please report issues and submit pull requests for *Content Fixes* to https://docs.fedoraproject.org/en-US/mentored-projects/[Fedora Mentored Projects documentation] against this repo.
General appearance issues and publishing issues should be reported to the https://forge.fedoraproject.org/docs/tickets[Fedora Docs Team].
Never done a pull request (or "PR")?
See the https://guides.github.com/[GitHub Guides] for getting started with git.
If you already know git, see the https://forgejo.org/docs/next/user/pull-requests-and-git-flow/[Forgejo documentation for Pull Requests] on how to submit contributions on _forge.fedoraproject.org_.
[[editing]]
=== How to edit these documents
Content for the Mentored Projects documentation is stored https://forge.fedoraproject.org/mentored-projects/docs/src/branch/main/[in this repository].
Source content is written in https://asciidoc.org/[AsciiDoc].
See these resources for help using AsciiDoc:
* https://asciidoctor.org/docs/asciidoc-syntax-quick-reference/[AsciiDoc Syntax - Quick Reference]
* https://asciidoctor.org/docs/asciidoc-recommended-practices/[AsciiDoc Recommended Practices]
* Advanced topics for Fedora Docs, AsciiDoc, and Antora:
** https://asciidoctor.org/docs/asciidoc-writers-guide/[AsciiDoc Writer's Guide]
** https://docs.antora.org/[Antora Documentation]
[[test]]
=== Test with a local preview
This repo includes a shell script to build and preview the contents of this repository.
*NOTE*:
Please note that if you reference pages from other repositories, those links will be broken in the local preview, as it only builds this repository.
If you want to rebuild the whole Fedora Docs site, see the https://pagure.io/fedora-docs/docs-fp-o/[Fedora Docs build repository] for instructions.
Both of the below scripts use containers, so ensure Podman or Docker is installed on your system before beginning.
To build and preview the site, run:
```bash
./docsbuilder.sh
```
The preview is hosted at http://localhost:8080[http://localhost:8080].

21
antora.yml Normal file
View file

@ -0,0 +1,21 @@
# Name will be mostly visible in the URL.
# Treat it as an unchangeable identifier.
# Tip: If you use the docsbuilder.sh preview script in this repo, also change this value in site.yml file. (under site/start_page)
name: mentored-projects
# Title will be visible on the page.
title: Fedora Mentored Projects
# If you don't plan to have multiple versions of the docs (for example, to document multiple versions of some software), you can ignore this field. Otherwise, change "master" to a specific version.
version: ~
# We encourage you to name the index page as "index.adoc". If you absolutely have to use a different name, please reflect it here. You can ignore this field otherwise.
start_page: ROOT:index.adoc
# Navbar element. Anything added below appears in the docs.fp.o site navbar.
#
# NOTE: If you want to add to the sidebar, look at the `nav.adoc` file in a
# module first. If you create a new module, add its `nav.adoc` file below.
nav:
- modules/ROOT/nav.adoc
- modules/handbooks/nav.adoc

292
docsbuilder.sh Executable file
View file

@ -0,0 +1,292 @@
#!/bin/bash
# script to watch source directory for changes, and re-run build and preview
#
# License: MIT
# https://fedoraproject.org/wiki/Licensing:MIT#Another_Minimal_variant_(found_in_libatomic_ops)
#
# Copyright (c) Fedora community contributors.
#
# THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED OR
# IMPLIED. ANY USE IS AT YOUR OWN RISK.
#
# Permission is hereby granted to use or copy this program for any purpose,
# provided the above notices are retained on all copies. Permission to modify
# the code and to distribute modified code is granted, provided the above
# notices are retained, and a notice that the code was modified is included
# with the above copyright notice.
script_name="docsbuilder.sh"
script_source="https://gitlab.com/fedora/docs/templates/fedora-docs-template/-/raw/main/${script_name}"
version="1.2.0"
image="registry.gitlab.com/fedora/docs/docs-website/docs-fp-o:latest"
cmd="--html-url-extension-style=indexify site.yml"
srcdir="modules"
buildir="public"
previewpidfile="preview.pid"
# 4913: for vim users, vim creates a temporary file to test it can write to
# directory
# https://groups.google.com/g/vim_dev/c/sppdpElxY44
# .git: so we don't get rebuilds each time git metadata changes
inotifyignore="\.git.*|4913"
watch_and_build () {
if ! command -v inotifywait > /dev/null
then
echo "inotifywait command could not be found. Please install inotify-tools."
echo "On Fedora, run: sudo dnf install inotify-tools"
stop_preview_and_exit
else
# check for git
# required to get ignorelist
if ! command -v git > /dev/null
then
echo "git command could not be found. Please install git."
echo "On Fedora, run: sudo dnf install git-core"
stop_preview_and_exit
else
# Get files not being tracked, we don't watch for changes in these.
# Could hard code, but people use different editors that may create
# temporary files that are updated regularly and so on, so better
# to get the list from git. It'll also look at global gitingore
# settings and so on.
inotifyignore="$(git status -s --ignored | grep '^!!' | sed -e 's/^!! //' | tr '\n' '|')${inotifyignore}"
fi
while true
do
echo "Watching current directory (excluding: ${inotifyignore}) for changes and re-building as required. Use Ctrl C to stop."
inotifywait -q --exclude "($inotifyignore)" -e modify,create,delete,move -r . && echo "Change detected, rebuilding.." && build
done
fi
}
build () {
if [ "$(uname)" == "Darwin" ]; then
# Running on macOS.
# Let's assume that the user has the Docker CE installed
# which doesn't require a root password.
echo ""
echo "This build script is using Docker container runtime to run the build in an isolated environment."
echo ""
docker run --rm -it -v $(pwd):/antora $image $cmd
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
# Running on Linux.
# Check whether podman is available, else faill back to docker
# which requires root.
if [ -n "$(command -v podman)" ]; then
echo ""
echo "This build script is using Podman to run the build in an isolated environment."
echo ""
podman run --rm -it -v $(pwd):/antora:z $image $cmd --stacktrace
elif [ -n "$(command -v docker)" ]; then
echo ""
echo "This build script is using Docker to run the build in an isolated environment."
echo ""
if groups | grep -wq "docker"; then
docker run --rm -it -v $(pwd):/antora:z $image $cmd
else
echo ""
echo "This build script is using $runtime to run the build in an isolated environment. You might be asked for your password."
echo "You can avoid this by adding your user to the 'docker' group, but be aware of the security implications. See https://docs.docker.com/install/linux/linux-postinstall/."
echo ""
sudo docker run --rm -it -v $(pwd):/antora:z $image $cmd
fi
else
echo ""
echo "Error: Container runtime haven't been found on your system. Fix it by:"
echo "$ sudo dnf install podman"
exit 1
fi
fi
}
start_preview () {
# clean up a preview that may be running
stop_preview
# always run an initial build so preview shows latest version
build
if [ "$(uname)" == "Darwin" ]; then
# Running on macOS.
# Let's assume that the user has the Docker CE installed
# which doesn't require a root password.
echo "The preview will be available at http://localhost:8080/"
docker run --rm -v $(pwd):/antora:ro -v $(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf:ro -p 8080:80 nginx
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
# Running on Linux.
# Fedora Workstation has python3 installed as a default, so using that
echo ""
echo "The preview is available at http://localhost:8080"
echo ""
pushd "${buildir}" > /dev/null 2>&1
python3 -m http.server 8080 &
echo "$!" > ../"${previewpidfile}"
popd > /dev/null 2>&1
fi
}
stop_preview () {
if [ -e "${previewpidfile}" ]
then
PID=$(cat "${previewpidfile}")
kill $PID
echo "Stopping preview server (running with PID ${PID}).."
rm -f "${previewpidfile}"
else
echo "No running preview server found to stop: no ${previewpidfile} file found."
fi
}
stop_preview_and_exit ()
{
# stop and also exit the script
# if stop_preview is trapped, then SIGINT doesn't stop the build loop. So
# we need to make sure we also exit the script.
# stop_preview is called before other functions, so we cannot add exit to
# it.
stop_preview
exit 0
}
# https://apple.stackexchange.com/questions/83939/compare-multi-digit-version-numbers-in-bash/123408#123408
version () { echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }'; }
check_update () {
if ! command -v curl > /dev/null
then
echo "curl command could not be found. Please install curl."
echo "On Fedora, run: sudo dnf install curl"
exit 0
fi
script_version="$(grep "^version=" ${script_name} | cut -d '=' -f2 | tr --delete '"')"
tempdir="$(mktemp -d)"
echo "$tempdir"
pushd "$tempdir" > /dev/null 2>&1
curl "$script_source" --silent --output "${script_name}"
upstream_version="$(grep "^version=" ${script_name} | cut -d '=' -f2 | tr --delete '"')"
echo "${upstream_version}"
if [ $(version $upstream_version) -gt $(version $script_version) ]; then
echo "Update available"
echo "Script version $upstream_version is available at $script_source"
echo "This version is $script_version."
echo "Please use the '-U' option to update."
echo
fi
popd > /dev/null 2&>1
}
install_update () {
if ! command -v curl > /dev/null
then
echo "curl command could not be found. Please install curl."
echo "On Fedora, run: sudo dnf install curl"
exit 0
fi
curl "$script_source" --silent --output "${script_name}.new"
mv "${script_name}.new" "${script_name}"
chmod +x "${script_name}"
}
usage() {
echo "$0: Build and preview Fedora antora based documentation"
echo
echo "Usage: $0 [-awbpkh]"
echo
echo "-a: start preview, start watcher and rebuilder"
echo "-w: start watcher and rebuilder"
echo "-b: rebuild"
echo "-p: start_preview"
echo "-k: stop_preview"
echo "-h: print this usage text and exit"
echo "-u: check builder script update"
echo "-U: install builder script from upstream"
echo
echo "Maintained by the Fedora documentation team."
echo "Please contact on our channels: https://docs.fedoraproject.org/en-US/fedora-docs/#find-docs"
}
# check if the script is being run in a Fedora docs repository
if [ ! -e "site.yml" ]
then
echo "site.yml not be found."
echo "This does not appear to be a Fedora Antora based documentation repository."
echo "Exiting."
echo
usage
exit 1
fi
if [ $# -lt 1 ]
then
echo "No options provided, running preview with watch and build."
echo "Run script with '-h' to see all available options."
echo
echo
trap stop_preview_and_exit INT
start_preview
watch_and_build
stop_preview
fi
# parse options
while getopts "awbpkhuU" OPTION
do
case $OPTION in
a)
# handle sig INT to stop the preview
trap stop_preview_and_exit INT
start_preview
watch_and_build
stop_preview
exit 0
;;
w)
watch_and_build
exit 0
;;
b)
build
exit 0
;;
p)
start_preview
echo "Please run ./${script_name} -k to stop the preview server"
exit 0
;;
k)
stop_preview
exit 0
;;
h)
usage
exit 0
;;
u)
check_update
exit 0
;;
U)
install_update
exit 0
;;
?)
usage
exit 1
;;
esac
done

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

86
modules/ROOT/nav.adoc Normal file
View file

@ -0,0 +1,86 @@
* xref:index.adoc[Mentored Projects]
* Google Summer of Code
** 2024
*** xref:gsoc/2024/index.adoc[Information]
*** xref:gsoc/2024/ideas.adoc[Ideas]
*** xref:gsoc/2024/application.adoc[Application Process]
** 2022
*** xref:gsoc/2022/index.adoc[Information]
*** xref:gsoc/2022/application.adoc[Application Process]
** 2021
*** xref:gsoc/2021/index.adoc[Information]
*** xref:gsoc/2021/ideas.adoc[Ideas]
*** xref:gsoc/2021/application.adoc[Application Process]
** 2020
*** xref:gsoc/2020/index.adoc[Information]
*** xref:gsoc/2020/ideas.adoc[Ideas]
*** xref:gsoc/2020/application.adoc[Application Process]
** 2019
*** xref:gsoc/2019/index.adoc[Information]
*** xref:gsoc/2019/ideas.adoc[Ideas]
*** xref:gsoc/2019/application.adoc[Application Process]
** 2018
*** xref:gsoc/2018/index.adoc[Information]
*** xref:gsoc/2018/ideas.adoc[Ideas]
*** xref:gsoc/2018/application.adoc[Application Process]
** 2017
*** xref:gsoc/2017/index.adoc[Information]
*** xref:gsoc/2017/ideas.adoc[Ideas]
*** xref:gsoc/2017/application_process.adoc[Application Process]
** 2016
*** xref:gsoc/2016/index.adoc[Information]
*** xref:gsoc/2016/ideas.adoc[Ideas]
*** xref:gsoc/2016/student_application_process.adoc[Application Process]
** 2015
*** xref:gsoc/2015/index.adoc[Information]
*** xref:gsoc/2015/ideas.adoc[Ideas]
*** xref:gsoc/2015/student_application_process.adoc[Application Process]
** 2014
*** xref:gsoc/2014/index.adoc[Information]
*** xref:gsoc/2014/ideas.adoc[Ideas]
*** xref:gsoc/2014/student_application_process.adoc[Application Process]
** 2013
*** xref:gsoc/2013/index.adoc[Information]
*** xref:gsoc/2013/ideas.adoc[Ideas]
*** xref:gsoc/2013/student_application_process.adoc[Application Process]
** 2012
*** xref:gsoc/2012/index.adoc[Information]
*** xref:gsoc/2012/ideas.adoc[Ideas]
*** xref:gsoc/2012/student_application_template.adoc[Application Template]
** 2011
*** xref:gsoc/2011/ideas.adoc[Ideas]
** 2010
*** xref:gsoc/2010/index.adoc[Information]
*** xref:gsoc/2010/ideas.adoc[Ideas]
*** xref:gsoc/2010/schedule.adoc[Schedule]
** 2009
*** xref:gsoc/2009/ideas.adoc[Ideas]
** 2008
*** xref:gsoc/2008/ideas.adoc[Ideas]
** 2007
*** xref:gsoc/2008/index.adoc[Information]
** 2006
*** xref:gsoc/2006/index.adoc[Information]
** 2005
*** xref:gsoc/2005/index.adoc[Information]
* Google Code In
** 2018
*** xref:gci/2018/tasks.adoc[Task List]
* Google Season of Docs
** 2019
*** xref:gsod/2019/index.adoc[Information]
*** xref:gsod/2019/ideas.adoc[Ideas]
** 2020
*** xref:gsod/2020/index.adoc[Information]
*** xref:gsod/2020/ideas.adoc[Ideas]
* Outreachy
** 2020
*** xref:outreachy/2020/index.adoc[Information]
*** xref:outreachy/2020/ideas.adoc[Ideas]
** 2021
*** xref:outreachy/2021/index.adoc[Information]
*** xref:outreachy/2021/ideas.adoc[Ideas]
** xref:outreachy/faq.adoc[FAQs]

View file

@ -0,0 +1,93 @@
Google-CodeIn 2018 Task List
-----------------------------
This page highlights *Fedora community mentored tasks for https://codein.withgoogle.com/[GCI]*.
* We are looking out for more volunteers and mentors
* If you want to volunteer please ping bexelbie@redhat.com or sumantro@redhat.com
===========
=== What's GCI?
Google Code-in (GCI) is an annual programming competition hosted by Google Inc. that allows pre-university students to complete tasks specified by various, partnering open source organizations.The contest was originally the Google Highly Open Participation Contest, but in 2010, the format was modified into its current state.Students that complete tasks win certificates and T-shirts.Each organization also selects two grand prize award winners who will earn a trip to Google's Headquarters located in Mountain View, California.
=== Task Themes
A wide variety of bite-sized tasks for beginners to jump in and get started no matter what skills they have.
One can find this https://developers.google.com/open-source/gci/resources/example-tasks[list] for inspiration.
=== Current Mentors
* Anna
* Amitosh
* Sumantro
* Abhishek
=== Org Admins
* Bex
* Martin
=== Task List
.Coding
[options="header"]
|=======================
|Topic |Mentor |Description
|Search archives | Anna |Add a search bar to the archives page to be able to search for messages and users
|Setup flake8 tests to check code |Anna |Setup flake8 tests to check code for Fedora Happiness Packet
|Fix failing unit test |Anna |Hapinness Packet needs help with failing unit tests
|Make websites more responsive to mobile mode |Anna| Happiness packets needs to help with responsive web view for mobile
|Make the links clickable|Abhishek|Some of the links in the About Fedora Section are not clickable. We need to fix that.
|=======================
.Design
[options="header"]
|=======================
|Topic |Mentor |Description
|Badges for Fedora Happiness Packets|Anna |Work with the Design team to come up with a badge for Fedora Happiness Packets
|Use fedora-bootstrap in Fedora styling |Amitosh |
|Inkscape plugin to build Fedora badges |Abhishek |
|Create an app icon for Fedora App|Abhishek|
|=======================
.Documentation
[options="header"]
|=======================
|Topic|Mentor |Description
|Update Website Content |Anna |Update content in FAQ, Start page and other page of Happiness Packets
|Setup a Fedora Doc and contributor guide |Anna |Set up a Fedora Docs for the Happiness Packets Project
|Booting fedora rpi and write a blog |Amitosh|
|Test Fedora on multi-boot config |Amitosh|
|NodeJS web app guide|Amitosh|
|Write Fedora Magazine article on 10 best firefox plugin for Productivity|Sumantro|
|Screencast about gnome extensions which you use in Fedora|Sumantro|
|Update Documentation for Fedora App on pagure|Abhishek|
|Content for F-Droid|Abhishek|
|=======================
.Outreach
[options="header"]
|=======================
|Topic|Mentors |Description
|Host a Fedora Classroom on any topic |Sumantro |
|Host a Fedora Classroom and talk about ansible |Sumantro |
|Host an event in your region,learn about advocate and ambassdors|Sumantro |
|Lean about Fedora D&I |Kanika/Amita/Someone-from-D&I|
|Host a Release Party|Sumantro|
|Host a FAD|Sumantro|
|=======================
.QA
[options="header"]
|=======================
|Topic| Mentor |Description
|Test Fedora Kernel |Sumantro |
|Test Case Development for Packages|Sumantro|
|Test Package updates|Sumantro|
|Test the new Silverblue and write a blog|Sumantro|
|Test Fedora Modularity and write a blog|Sumantro|
|Screencast a setup to write test cases for packages|Sumantro|
|Test Virtualization on Fedora|Sumantro|
|=======================

View file

@ -0,0 +1,49 @@
= Google Summer of Code 2005
The Fedora Project was happy to participate in
http://code.google.com/[Google's]
http://code.google.com/summerofcode.html[Summer of Code] 2005. This was
an extraordinary opportunity to involve students with the open-source
community. Below are the projects selected with Fedora as the mentoring
organization.
[[selected-projects]]
== Selected Projects
* Behdad Esfahbod <behdad@cs.toronto.edu> - intelligent readahead daemon
http://sourceforge.net/projects/preload[project page]
http://www.cs.toronto.edu/~behdad/blog/preload.txt[proposal]
* Ljudmila Korjukina <lrs@inbox.ru> - packetsim
http://sourceforge.net/projects/iptview/[project page]
* Praveenkumar Ponnusamy <ps.praveenkr@gmail.com> - global bash history
https://sourceforge.net/projects/bash-gchistory/[project page]
* Ulisses Furquim <ulissesf@gmail.com> - pylibparted
http://pylibparted.tigris.org/[project page]
* Darko Ilic <darko.ilic@gmail.com> - [wiki:Self:Kadischi Kadischi]
(live CD generator)
* Pedro Fernandes Macedo <pmacedo@dcc.ufmg.br> - smart mirror selection
http://www.sourceforge.net/projects/mirrorselect[project page]
* Wieland Gmeiner <e8607062@student.tuwien.ac.at> - setting process
rlimits http://stud4.tuwien.ac.at/~e8607062/studies/soc/[proposal and
patches]
* Dave Arter <davea@sucs.org> - user backups (work in progress is at https://sucs.org/~davea/trac/)
* Mateusz Berezecki <mateuszb@gmail.com> - atheros driver: http://www.ath-driver.org/
* Adrian Bunk <bunk@stusta.de> - Fedora Directory Server auto*-ing
http://www.fs.tum.de/~bunk/fds/[project page] or
http://sourceforge.net/projects/fds-build/[SourceForge page]
* Camron T. Lacy <clacy@ctltechnologies.net> -
system-config-securitylevel
http://www.sourceforge.net/projects/securitylevel[Sourceforge page]
* Vikram Aggarwal <vikrama@gmail.com> - install coverage testing
http://sourceforge.net/projects/pootypedia/[project page]

View file

@ -0,0 +1,31 @@
= Google Summer of Code 2006
The Fedora Project participated in the second Summer of Code event and
mentored 5 students throughought the summer as they completed their
projects. The following projects were selected from among the awesome
proposals:
[[selected-projects]]
== Selected Projects
[cols=",,",]
|=======================================================================
|*Project Summary* |*Student* |*Mentor*
|link:https://fedoraproject.org/wiki/MikkoVirkkilรค[ MoinMoin DocBook XML Conversion Tools]
|MikkoVirkkilรค |KarstenWade
|link:https://fedoraproject.org/wiki/TimNiemueller[ NetworkManager Dialup Support] |TimNiemueller
|JeremyKatz
|link:https://fedoraproject.org/wiki/NitinGupta[ Compressed Caching for Linux] |NitinGupta |RikvanRiel
|link:https://fedoraproject.org/wiki/ArthurPemberton[ Backup tool (system-config-backup)]
|ArthurPemberton |PatrickBarnes
|link:https://fedoraproject.org/wiki/IvanBarrera[ Motherboard sensors autoconfig] |IvanBarrera
|HansdeGoede
|=======================================================================
'''''

View file

@ -0,0 +1,47 @@
[[googles-summer-of-code-2007]]
= Google's Summer of Code 2007
This year, Fedora is the mentoring organization for 5 projects.
[[projects]]
== Projects
[cols=",,",]
|=======================================================================
|*Project Summary* |*Student* |*Mentor*
|link:https://fedoraproject.org/wiki/DimitrisGlezos[ An upstream-friendly l10n Web UI for Fedora]
|DimitrisGlezos |KarstenWade
|link:https://fedoraproject.org/wiki/DebarshiRay[ An offline package update/installation facility for
Pirut] |DebarshiRay |SankarshanMukhopadhyay
|link:https://fedoraproject.org/wiki/ChristopherTan[ tcconf - A traffic shaping configuration utility
for GNU/Linux] |ChristopherTan |StevenPritchard
|link:https://fedoraproject.org/wiki/JonathanSteffan[ Fedora Documentation Publishing Platform]
|JonathanSteffan |PatrickBarnes
|link:https://fedoraproject.org/wiki/RiaDas[ Publication of all man and info pages for each release
through a web interface] |RiaDas |JeffSheltren
|=======================================================================
[[coss-summer-code-2007]]
== COSS Summer Code 2007
This is Fedora's first year mentoring a project for
http://www.coss.fi/[COSS] 's
http://www.coss.fi/web/coss/developers/summercode/2007[Summer Code 2007]
.
[[projects-1]]
== Projects
[cols=",,",]
|=======================================================================
|*Project Summary* |*Student* |*Mentor*
|link:https://fedoraproject.org/wiki/VillePekkaVainio[ Extend MoinMoin with man and info page
publication and editing capabilities.] |VillePekkaVainio |KarstenWade
|=======================================================================

View file

@ -0,0 +1,904 @@
[[ideas-for-student-projects-for-2008]]
= Ideas for Student Projects for 2008
This page gathers all the ideas and pointers/references for the 2008
intern and Summer coding programs.
[cols="",]
|=======================================================================
|*If you see an idea here you want to learn about or hack on, contact
the people associated with the idea.*
|=======================================================================
JBoss.org project ideas are found here:
http://labs.jboss.com/wiki/GSoC[1]
'''''
_What could these students do for Fedora with a Summer?_
Projects can occur in an upstream, as long as the work happens through
Fedora and benefits Fedora.
Feel free to comment on the ideas posted here, putting your WikiName in
front of your comments. The goal is to consider ideas as _proposed_
until they have faced sufficient peer review, i.e., have stayed
unscathed on the page for a while.
[[apport]]
== Apport
_Status:_ _Proposed_
_Summary of idea:_ The QA team has a half finished port of Ubuntu'
Apport, it would greatly enhance the handling of crash reporting if we
were able to finish this work.
_Contacts:_ Added by DavidNielsen, I have no skills but hopefully
WillWoods will be able to function as mentor. KyleMcMartin is willing to
mentor this.
_Notes:_ More information Apport can be found here:
https://wiki.ubuntu.com/Apport
[[package-webui]]
== Package WebUI
_Status:_ _Proposed_
_Summary of idea:_ We need a web interface that is made for end-users to
access information about packages. This will be similar to
packages.debian.org or packages.gentoo.org in some ways but we hope to
improve on those in several ways.
_Contacts:_ link:https://fedoraproject.org/wiki/User:ToshioKuratomi[ Toshio Kuratomi(abadger1999)] has
agreed to take point on this. Interaction with other developers will
likely be needed as this touches many systems. Luke Macken(lmacken),
John Palmieri(J5), Ricky Zhou(ricky), Seth Vidal(skvidal), and Mike
Bonnet(mbonnet) are all involved in projects that touch on the work to
be done here.
_Notes:_ This needs to be an enhancement of the
https://fedorahosted.org/packagedb[Package Database] . The DB schema
will need additional tables to reflect the enduser view of data. We'll
need to generate dynamic web pages to display the information to the end
user and allow them to give feedback/enhanced information about a
package.
_Design Requirements:_
* This must integrate with the PackageDB. Therefore it will be a piece
of a larger TurboGears application. Knowledge of TurboGears and python
is not required but a willingness to program in them is :-)
* It is meant to be task and application oriented rather than package
oriented. The aim is to answer questions like "What application will let
me make drawings?" "Is there a python library for formatting
documentation?" "I don't like "deluge" but I need something that does a
similar thing?"
* We already have package information in several sources. We want to
avoid duplicating information where possible but for efficiency we may
need to pull some of the data into our database.
* The interface should link back and forth with the existing PackageDB
but it is not simply another view of the data. Additional data will be
involved.
* Allowing the user to contribute to the knowledge about the package is
a goal.
A mockup of what a page could look like is in the
link:https://fedoraproject.org/wiki/MyFedora?action=AttachFile&do=get&target=info-mockup.png[MyFedora
proposal] . Note that the header information is MyFedora UI rather than
PackageDB Ui and we'd want to be describing gimp as an application
rather than gimp as a package.
[[jack-driver-for-audacity]]
== Jack driver for Audacity
_Status:_ _Proposed_
_Summary of idea:_ The Jack Audio Connection Kit enables low latency
interapplication audio connections. Many applications currently in
Fedora support it and can connect to each other and to the audio card.
Audacity is one of them. But its Jack support depends on PortAudio, and
to be kind, PortAudio Jack support is sorely lacking. Audacity is an
extremely popular audio editor but its main weakness is its lack of a
proper native Jack driver. Having one would make it a lot more useful in
the context of an audio content creation environment.
_Contacts:_ Added by link:https://fedoraproject.org/wiki/User:FernandoLopezLezcano[Fernando Lopez ]
_Notes:_ Why is the PortAudio driver not so good?
It cannot react dynamically to changes in the Jack graph, that is, Jack
applications already running can be seen by Audacity, applications
started after Audacity starts are invisible until Audacity is restarted.
Jack ports can only be selected in the Preferences menu of Audacity. The
standard way of handling this in Jack applications is that in the
preferences menu you select either the Jack driver or an auto discovery
mode. If the Jack driver is selected then the application will connect
(register ports) to it on startup (if Jack is running) and will register
input and output ports with Jack. Those will be seen in the Jack graph
and can be source or sink of audio information to/from other apps and/or
the soundcard. Normally the connection with other apps or the soundcard
is done externally. Some programs add internal means of connecting to
other apps and that is generally not done through the preferences menu
(Jack is dynamic), and can show applications that started after (in this
case) Audacity starts. Some programs have the extra option of connecting
automatically on startup to the first n physical audio output ports
which facilitates trivial use of the program.
BastienNocera: we use PulseAudio by default in Fedora, and I don't
really see the point of using Jack if we use PulseAudio for "normal"
users (most users won't be changing that default). You're better off
pushing this request to an Audacity SoC project.
[[func-network-automation]]
== Func / Network Automation
_Status:_
* _Being worked on by User:bombshelter13[Gregory Masseau]
(gjmasseau@learn.senecac.on.ca)_
* _Being worked on by User:miltonpaiva[Milton Paiva]
(mpaivaneto@learn.senecac.on.ca)_
_Summary of idea:_ Func is a network applications framework that allows
for powerful remote manipulation and scripting of very large numbers of
Fedora machines.
This idea is to expand Func by writing lots of useful modules to do all
sorts of powerful remote things, making it into the world's best API for
remote scripting Fedora over lots of machines at once -- with an
emphasis on integrating Func with other tools we already have in Fedora.
This would be a particular good project for someone who had an interest
in networking, clusters, automation, or security related topics.
Contributions to Func wouldn't be limited to just writing modules, as
anything networking/automation related is fair game. Contact
MichaelDeHaan for more information.
_Contacts:_ MichaelDeHaan
_Notes:_ see https://fedorahosted.org/func
[[koji-hiding-binaries-import-secondary-repos]]
== koji hiding binaries/ import secondary repos
_Status:_ _Proposed_
_Summary of idea:_ For various reasons we need to be able to use a
second repo. but still know what was in the build root. or to be able to
hide builds for pre-release, security issues. Koji needs to be able to
import repodata and know where binaries are while not making them
available. We walso want to be able to mark a build as being embargoed
and hide it completely. from cvs through to the build happening. to be
opened up when embargo is done.
_Contacts:_ DennisGilmore
_Notes:_ https://fedorahosted.org/koji
[[integrate-fedora-infrastructure-and-eclipse]]
== Integrate Fedora Infrastructure and Eclipse
_Status:_ _Proposed_
_Summary of idea:_ At present, there is a largely functional specfile
editor plugin for Eclipse shipping in Fedora. It would be nice to expand
the usefulness of the plugin with the ability to push builds to koji.
Using mock from within Eclipse and doing pkgdb and bodhi work would also
be nice.
_Contacts:_ AndrewOverholt
_Notes:_
[[a-gobby-plugin-for-eclipse]]
== A Gobby plugin for Eclipse
_Status:_ _Proposed_
_Summary of idea:_ The Eclipse Communications Framework has shared
editing support. It would be nice to have a gobby backend for this so
that Eclipse users could take advantage of Fedora's existing gobby
server.
_Contacts:_ AndrewOverholt
_Notes:_
http://blog.mricon.com/2008/02/why-is-there-no-gobby-support-in.html ,
https://bugs.eclipse.org/bugs/show_bug.cgi?id=219829
[[windows-data-migration-tool]]
== Windows Data Migration Tool
_Status:_ _Proposed_
_Summary of idea:_ Anaconda supports partition resizing (including NTFS)
in Rawhide now. It would be great to combine this with a data migration
tool for Windows or dual booting users.
_Contacts:_ RahulSundaram
_Notes:_ I only have the general idea. Others more qualified, feel free
to volunteer
[[automatic-updates-with-dynamic-bandwidth-throttling]]
== Automatic Updates with dynamic bandwidth throttling
_Status:_ _Proposed_
_Summary of idea:_ The idea is to update the system using idle bandwidth
in an asynchronous, prioritized and throttled manner, i.e to update
packages asynchronously from the server. This way the user can continue
working while the updated packages are being downloaded without any
noticeable changes in bandwidth.
Updates can be done automatically by a cron job or with yum-updatesd,
but this will make yum/pup to use whole of the bandwidth. yum has a
throttle option but it decides the upper limit of usage of bandwidth.
Whereas, with asynchronous mode, limit can be decided dynamically
depending upon the current usage. In many developing countries most of
the people are on low bandwidth networks or have limited access to
Internet. This will help them to keep their system updated with maximum
utilization of their bandwidth.
_Contacts:_ SunilKumarGhai
_Notes:_ [1] We can also have some kind of general framework, which can
be used by other applications to use throttling in services they
provide. [2] We can implement this with repositories over http only. ftp
repositories will not work. [3] Maybe work with PackageKit? --
RichardHughes
@RichardHughes: As the idea is moving in development of framework as
mentioned in [1] point, we would be able to use it. But still as
PackageKit has YUM backend so only http repositories will work. -- sunil
[[corresponding-source-web-app]]
== Corresponding Source Web App
_Status:_ _Proposed_
_Summary of idea:_ Finish design and implement web application that
provides downloadable SRPMS for any package+tag in the Fedora Package
Source Code Control system. While we provide SRPMS for all packages at
release, the updates and rawhide trees churn their packages more
rapidly, and will remove the koji-built SRPMS when the binary packages
are removed. This would allow people to request source corresponding to
the packages they have on ISO media or otherwise.
_Contacts:_ MattDomsch
_Notes:_
http://git.fedorahosted.org/git/?p=correspondingsource.git;a=blob;f=DESIGN;hb=HEAD
has mdomsch's thoughts on how it should work.
[[extend-bootchart-to-support-systemtap]]
== Extend Bootchart to support SystemTap
_Status:_ _Proposed_
_Summary of idea:_ Bootchart is a tool for performance analysis, and
visualization of the Linux boot process. At present, bootchart uses a
logger script to collect the boot information from the /proc interface.
It also uses a parser to extract information in a non-standardized
format. It would be nice to:
* extend bootchart to collect information using SystemTap instead.
* code the boot information in XML format.
* explore additional metrics that would make bootchart more useful, i.e.
finding out the working set size at various points of the boot process,
etc.
* test bootchart on Fedora 8/9/rawhide dom0/domU/kvm/etc.
* propose (and possibly implement) suggestions on how we can improve the
boot process.
_Skills needed:_ Strong background in Operating Systems. Familiarity
with Python, Java/JAXP, XML and C programming. Some experience in kernel
internals would be helpful, but not necessary.
_Contact:_ EugeneTeo, eteo_at_fedoraproject_dot_org
_Notes:_ See http://bootchart.org/,
http://sourceware.org/systemtap/wiki/,
http://people.redhat.com/berrange/systemtap/bootprobe/
[[a-visualization-tool-for-systemtap]]
== A visualization tool for SystemTap
_Status:_ _Proposed_
_Summary of idea:_ SystemTap provides an infrastructure that simplifies
the gathering of information about the running Linux kernel, so that it
can be further analyzed for performance or functional issues. This
project involves writing a graphical tool for visualizing this
information in real-time, so that anomalies can be easily identified.
The tool should use configuration files in XML format to describe how it
should interpret the output of the scripts. Users should be able to
extend the tool by adding new SystemTap scripts. How information should
be visualized meaningfully requires more thought during the design
phase. One of the main objectives is to make SystemTap user-friendly,
and easy to use.
_Update:_ I wrote the following to a student recently. Here's more
description of the project: The objective of the project is to create a
visualization tool that we can display graphs and statistics in a
meaningful way. Another objective is to investigate how we can gather
important statistics from SystemTap, and have it formatted in a way that
is easy for the tool to display the results. I am not looking at yet
another gnome-system-monitor though. A user should be able to specify a
systemtap script, have it conform to a specific output format, write a
XML configuration file to describe the input format, and output format,
and have the visualization tool display it.
For example, we want to monitor lock contention in Linux. We write a
script to get hold of futex locks. We write a XML configuration file,
specify the output format of the script, and then display the
graphs/statistics.
....
program locks
app1 #245 #######
app2 #23 ###
app3 #423 ##############
....
Another example, we want to monitor I/O activities in the system, we
take an existing script, modify it to display output for the
visualization tool. We write a XML configuration file, specify how the
output is like, and then display the statistics:
....
program reads writes
app1 234 23
app2 123 2333
/--------\
app1 _/----\___/ |------------------
app2 -------------\_______/--------\_____
....
_Skills needed:_ Strong background in Operating Systems. Familiarity
with Python/GTK+, and C programming. Some experience in kernel internals
would be helpful, but not necessary.
_Contact:_ EugeneTeo, eteo_at_fedoraproject_dot_org
_Notes:_ See http://sourceware.org/systemtap/wiki/,
http://stapgui.sourceforge.net/screenshots.shtml,
http://www.kernel.sg/roller/eugene/entry/mortadelo_a_graphical_systemwide_strace,
http://lwn.net/Articles/271796/
[[packagekit-offline-use]]
== PackageKit Offline Use
_Status:_ _Proposed_
_Summary of idea:_ Many computers are not connected to the Internet and
cannot be updated easily. A solution should be found to use
libpackagekit and be distribution neutral so all distros can benefit.
For this task, first we would generate top-level use-cases for offline
use, and expand on existing use cases. This task would involve reviewing
link:https://fedoraproject.org/wiki/DebarshiRay/Opyum[Opyum] or
http://aptoncd.sourceforge.net/[APTonCD] for ideas and ways to do things
better.
This would possibly involve using avahi for client->client transfers,
and would have to deal with the trust issues that arise from this. It
would also involve generating offline packs for automatic install or
automatic update. ServicePack CD's could be shipped on magazine covers
with updates to all the typical fedora applications for people without
inexpensive network access. This could be investigated further.
_Contacts:_ RichardHughes, richard_at_hughsie_dot_com
_Notes:_ The applicant would need to be familiar with C and a little
python, but would be a great way to get into development of a young
fast-moving software project.
[[packagekit-self-check]]
== PackageKit Self Check
_Status:_ _Proposed_
_Summary of idea:_ PackageKit is complex, and relies on many different
parts of the stack, e.g. yum, rpm, dbus, etc. There is currently only
limited build time self-checks in the PackageKit source package. We
would need to design of an end-to-end test harness for packagekit that
would test .rpm and yum on local temporary repositories for a complete
self check of the code pathways and packages used. This could be used to
trivially check each version of these components before being pushed to
an update repository.
_Contacts:_ RichardHughes, richard_at_hughsie_dot_com
_Notes:_ The applicant would need to be familiar with C and a little
python, but would be a great way to get into development of a young
fast-moving software project.
[[non-linear-ogg-editor-screencast-helper]]
== Non linear ogg editor/ screencast helper
_Status:_ _Proposed_
_Summary of idea:_ Still we are missing a good non linear editor for ogg
videos. This can be a simple GUI based application to do non linear
editing of ogg. Like cutting, mixing the videos. Adding still frames to
the video etc. Though this is not a project to be finished within 2-3
months, but we should be able to have a basic application running to do
simple edits. May be having feature of upload videos to fedoratv or
integrate itself with recordmydesktop to get screencasts directly. I am
looking for more ideas on this.
_Contacts:_ KushalDas kushaldas AT fedoraproject \{NOSPAM} DOT org
_Notes:_ Recommended choice of language is Python or C
ValentTurkovic: I have 2 suggestions; First is to try and resurrect Diva
Project who started as GSC project in 2006. Second is to work with
Pitivi Project because it is on a good path and has ogg editing
functionality and easy enough interface. To get an overview of this Diva
Project rise and fall please read these two posts. UPDATE: There are two
projects that look promissing: saya-videoeditor
http://saya-videoeditor.blogspot.com/[2] and myvideoeditor
http://myvideoeditor.blogspot.com[3]
MDK: State of Diva http://www.mdk.org.pl/2006/12/7/state-of-diva[4]
Comment on Diva
http://blogs.gnome.org/uraeus/2006/12/08/comment-on-diva/[5]
also look at video demos of Diva Project:
http://www.archive.org/details/DivaLinuxVideoEditorDemo01[6]
http://www.archive.org/details/DivaLinuxVideoEditorDemo02[7]
http://www.youtube.com/watch?v=22qz_VWrzFo&fmt=6[8]
http://www.youtube.com/watch?v=JB1NF-tB9Lk&fmt=6[9]
[[fedora-webinstall]]
== Fedora WebInstall
_Status:_ _Proposed_
_Summary of idea:_ One of the items that other distributions have been
able to accomplish that is still lacking in Fedora is the ability to
have a web link, which will allow an update and/or install using an
approved yum repository. Similar to OpenSUSE's misnamed One-Click
install, or Ubuntu's AptURL feature, building a package repository
reference which then uses PackageKit or something similar.
_Contacts:_ ClintSavage herlo AT fedoraproject DOt org
_Notes:_ Proof of concepts are available from the Ubuntu and OpenSUSE
website's respectively.
http://packages.ubuntu.com/gutsy/admin/apturl
http://en.opensuse.org/Standards/One_Click_Install
[[ila]]
== ILA
_Status:_ _Proposed_
_Summary of idea:_ ILA is "Sanskrit" word meaning "Terrestrial"... The
Idea is to integrate all computers reachable (via any kind of network,
internet to be most obvious) into a parallel web which is reachable by a
single click or shortcut...
let me put the last line as first... "A parallel web which doesn't
depends on a central service provider for any of its functions... the
core part of the node functionality is loaded with the desktop" so every
computer online/lan is capable of being a node depending on the modules
activated
Its modular so that new features can be made available...
The architecture, language, implementation are open to discussion... I
have a few ideas but most relevant thing to write here would be
use-cases which will make the objectives of the project clear..
\1. A User is stuck on some problem he just clicks a shortcut to make
visible the desktop application goes to query tab and fills the question
then hits 'Ask'... now all the other computers (reachable) who have
selected i-want-to-answer-this-type-of-questions (which is optional)
will be shown a popup on the desktop... all the answers that are sent
are then shown on the system where they originated. [much better then a
search algorithm you are getting reply from real people]
\1. Can be used for file sharing [no need to explain just like any good
P2P]
\1. A modular design will allow users to choose from large number of
attachable modules like the above two such as
Distributed-CPU-Utilization applications (like SETI), Instant messenger,
feeds collector, news (users can add news and everyone can see it in
diff categories)... [use your imagination]
\1. The only requirement to use a feature or service is just network
reachability. no dependence on any central service provider
First Issue that I see is... It "Should" be usable... (still its an
abstract statement :-) ) Although I would like it to run on Fedora and
other Distros, porting to any plateforms should be possible Idea is
still in abstract form is "Remove dependence on centrally controlled
systems...integrate this functionality in the OS" so that new kind of
apps/tools/featuers can be created.
_Contacts:_ Added by SiddharthUpmanyu, If you want to take this project
contact me at siddharth AT techbugs DOT org.
[[transifex-ideas-transifex]]
== Transifex ideas (#transifex)
The following are some ideas on Transifex that came up. Feel free to
contact DimitrisGlezos for more info and/or extend them with new points
in your application.
If you want to discuss any ideas you might have, please contact
DimitrisGlezos right away.
You might also want to take a look at link:https://fedoraproject.org/wiki/L10N/Tools/Plans[
L10N/Tools/Plans] .
[[transifex-clients-apis-and-rpcs-tx_client]]
== Transifex: Clients, APIs and RPCs (#tx_client)
_Status:_ _Proposed_
_Summary of idea:_
Transifex works well as a server and the website workflow works well
with new content providers (eg. translators), however not all users find
the website efficient enough. Implementing an API callable over http
will enable a Command Line Interface, AJAX calls, and integration with
other tools.
_Contacts:_
DimitrisGlezos
_Notes:_
* Duplication of website functionality
* Damned Lies interaction? (eg. `tx get-file anaconda el.po`)
* How can we make login work?
* Security a challenge
* Hook-up with Pootle as a use-case scenario?
* If the server has plugins enabled, how is this going to be implemented
here? (Interaction with student working on extensions might be needed)
* (...more ideas?)
[[transifex-extension-engine-tx_ext]]
== Transifex: Extension engine (#tx_ext)
_Status:_ _Proposed_
_Summary of idea:_
Refactor Transifex's code with hooks (pre, post commit), overridden
functions, and classes in order to add a plugin/extension mechanism.
Abstract file metaphor, and make support for PO files a plugin and
implement a new one for image submissions.
_Contacts:_
DimitrisGlezos
_Notes:_
* Student might need to work with the student working on the client to
discuss how the client can be extended to implement these plugins.
* Metrics will be needed to see how good the refactoring was, and what
opportunities it will provide -- these metrics would be good to be
mentioned in the application itself.
* (...more ideas?)
[[transifex-permission-and-authorization-layer-tx_perm]]
== Transifex: Permission and authorization layer (#tx_perm)
_Status:_ _Proposed_
_Summary of idea:_
Add user/authorization/permission layer on top of Transifex, to improve
the workflow Transifex creates by identifying key user groups and
implementing functionality for each one.
* Developers, administrators, language leaders, editors, translators,
anonymous users: They all have different things to do in Transifex
* Add OpenID support
* Introduce string, release, translation freezes that influence what
some users can do
* Fine-grain permissions in Tx: Language maintainers, approvals by
proj/lang/branch, etc. Who owns what, who controls what. Add ability to
"hold" and "release" a project/branch, like in elvis.
* Requirement for this idea is to work with the creators of Vertimus.
This idea might (or might not) have common ground with Vertimus, and we
need to make sure that either Tx can interoperate with Vertimus, or that
the V folks know what we are working on and see how we can work together
(note: Vertimus is written in PHP, but some interest has been raised for
finding ways to work with Tx).
[[transifex-add-async-repo-support-tx_async]]
== Transifex: Add async repo support (#tx_async)
_Status:_ _Proposed_
_Summary of idea:_
Currently Tx requires a constant sync with the remote repo. A submission
triggers a push, and pulls happen continuously. We need to add a feature
to extend this paradigm with submissions living in Tx, until the next
push is run (probably by the developer or an editor).
This way we can enable a bunch of nice stuff like, instead of Tx
pushing, add support for the developer to pull whenever she needs. Also,
having a temporary upload place which needs approval before actually
being committed will help QA and get new translators more easily
(language leaders can review). These could either be used as a temporary
upload space or as a way to allow non-authorized submissions (an
authorized user can move a Draft to an actual submission).
Idea: Split files into multiple chunks and submit them all together?
_Contacts:_
DimitrisGlezos
[[transifexs-submissions-revisited-tx_submissions]]
== Transifex's Submissions revisited (#tx_submissions)
_Status:_ _Proposed_
_Summary of idea:_
Currently Tx supports only a small set of submission methods, all tied
in with a version control commit approach. We want to create an abstract
submission system decoupled from vcs. On top of that we want to rebuild
all the current submission methods and to implement a set of other
requested methods such as email delivery, filling a ticket on trac or
bugzilla etc.
In addition a primary goal is to build a CLI Client so translators can
submit their translations directly from their terminal.
_Info:_ Proposed by Christos Trochalakis (application:
link:https://fedoraproject.org/wiki/ChristosTrochalakis/GSoC/Tx-Submissions[Tx Submissions revisited] )
[[transifex-tx-committer-service-tx_committer]]
== Transifex: Tx Committer service (#tx_committer)
_Status:_ _Proposed_
_Summary of idea:_
Currently Transifex runs as a web server, running the actual commits
within the same process. This could be a bit of a security risk, and
we'd like to have the commit service run as a different user. An
advantage of this is that any repo can run this committer and control
the submissions instead of giving SSH access to a downstream project.
* Split committer into a different component
* Move commit code outside transifex/ and into transifex-committer/
* Practically, have it behave as a different application. First, we
could communicate with it via an API and then via JSON to have it
remotely.
* Use-cases: projects behind a firewall, upsteam projects not wanting to
give SSH access, etc.
* Work with SELinux a plus.
_Contacts:_
DimitrisGlezos
[[transifex-server-federated-architecture-tx_federated]]
== Transifex: Server-federated architecture (#tx_federated)
_Status:_ _Proposed_
_Summary of idea:_
One of the most important assets of Tx is its community bridging
architecture. When multiple Transifex instances exist, they might want
to share stuff, like users, translation statistics and maybe
submissions. Eg. a Fedora user could submit something to the Debian
server, which will wait the approval of a Debian language leader.
* For a single Tx instance to scale well, one might want to split its
functionality into (say) el.fooTx.org, pt.fooTx.org, etc.
* This splitting/joining requires something like a server to server
architecture/protocol and the ability to aggregate and delegate stuff on
both sides
* Some projects might want to have their own Tx instance which contains
internal projects, not publicly visible. At the same time, they might
have public projects wanting to freely receive translations, but also
they might want to allow their internal translators to use this instance
as a gateway to all other Tx servers.
* Minimizing the independence between the scattered Tx instances (ie.
building bridges between the Tx "islands") will bring the whole
"community bridging" idea of Transifex to a whole new level. This is the
goal we want to reach in the long term.
The most important aspect of this idea is architecture design. The
student will need to have a very good image of content and translation
workflow, the process Transifex adopts, and study how open source
projects work together.
Also, most likely the student will want to discuss a lot with the main
Transifex developers. Fluent English is probably an important asset for
someone applying for this idea.
[[transifex-usability-and-efficiency-enhancements-tx_enhancement]]
== Transifex: Usability and efficiency enhancements (#tx_enhancement)
_Status:_ _Proposed_
_Summary of idea:_
Currently our application to submit translations (Transifex) doesn't
have i18n support for translators to be able to translate it. Definitely
it is a thing than we have to do. The admin face of transifex needs some
enhancements. Currently we just have the option to add modules and
repos, but we can't handle them with edit or remove options. All
interactions with the user over the application could be quicker and
more efficient using Ajax calls mainly with JSON. It could improve the
user experience and make a great application improvement for all
translators.
_Contacts:_
DiegoZacarao, DimitrisGlezos
_Notes:_
* Add i18n support.
* Add user friendly interface to handle modules and repos.
* Should we merge the two modules lists of t.fp.o?
* Make all relevant interactions of application be called using Ajax.
PS: The idea is based on what I'm able to work on.
[[transifex-online-editing-integration-of-pootle-tx_pootle]]
== Transifex: Online editing, integration of Pootle (#tx_pootle)
_Status:_ _Proposed_
_Summary of idea:_
Currently, translators have to manually download PO files from outside
of Transifex, change them, then use Transifex to submit these changed
files to a project's repository. It would lower the bar of entry quite a
bit if they could edit the translations, one at a time (i.e.: not the
complete PO file, but individual messages), directly in Transifex. With
http://translate.sourceforge.net/wiki/pootle/index[Pootle] , there is a
web-based PO file editor which could be integrated with Transifex.
The work proposed here involves getting Pootle and Transifex working
together, in a way that Pootle uses Transifex to handle and submit
files. The idea is that we have a community that already uses a workflow
around traditional, VCS-centric translations, which would like to use a
web-based translation for some modules. Here are some details about what
could be done:
* Add necessary configuration options in Pootle to use Transifex for
certain tasks and particular modules.
* Abstract what is needed to retain compatibility with the traditional
way of handling files in Pootle.
* Extend Transifex in a way that accepts submissions without the web
interface (might need some discussion with the student working on the
Command Line Interface).
_Contacts:_
NilsPhilippsen, DimitrisGlezos
_Notes:_
* Edit translations directly in Transifex (or in a seamless, integrated
way with Tx), operating on individual messages.
* Compare pootle to locally running PO editors (e.g. kbabel,
gtranslator, poedit), check if essential functionality is missing and
eventually implement it (e.g. does it display eventually included source
code comments which help translating the message, cf. "xgettext
--add-comments ...").
* Evaluate whether certain Pootle functionality (e.g. translation
suggestions) is needed or can be disabled for Transifex.
[[smolt-pretty-web-2.0-interfaces]]
== Smolt: Pretty Web 2.0 Interfaces
_Status:_ _Proposed_
_Summary of idea:_
smolts.org stores alot of information already. Getting the information
out to the public in the way that is useful to people is hard. There is
a number of ways this can be done, and we've discussed many. We are
looking for someone who is interested in finding out ways to tell people
more about their own computer.
The Smolt program collects statistics about hardware running Linux and
other data that goes with it. It collects lists of hardware devices,
type of CPU, hard drive information and other statistics for each
machine. While we can deliver statistics that are useful as fun
factoids, they do not help out people looking for detailed information.
This also does not inform people about any known issues about their
machine. Two classic examples of what we are looking for are these:
* Joe wants to know how many machines running Fedora 9 Betas have
SELinux enabled
* Fred needs to know that there is new eratta for his soundcard, perhaps
we can make sound work on his new machine finally!
* Tim's machine works perfectly, how can he tell us this, so that we can
mark our stamp of approval
These are only guidelines of the things we are looking for. This project
is very open ended, and you can do what you feel like. New Ideas are
very welcome. You will work concurrently with one or two other
developers who will work on parallel ideas, so you will not be
completely on your own.
You will need only some basic web skills and a basic understanding of
data structures. This project is based on implementing whiz-bang ideas,
and not on using technology X. Smolt is based off of Turbogears,
SQLAlchemy, and MySQL. Basic experience in any of these technologies, or
just Python is a plus..
_Contacts:_
* YaakovNemoy
* MikeMcGrath
_Notes:_
* Create a good web interface to access data from the server
* Make Smolt more helpful to the end user
* If you like buzzwords, this project is very Web 2.0 oriented.
[[election-software]]
== Election Software
_Status:_ _Proposed_
_Summary of idea:_ Currently, our election software can only handle one
groups (FESCo, FAB, etc.) election at the time. We would like to see it
modified to handle multiple groups at a time.
_Contacts:_ ToshioKuratomi, BrianPepple
_Notes:_ The current software we're using resides at
http://cvs.fedoraproject.org/viewcvs/fedora-vote/?root=fedora
If there is enough time during the GSoC, we would advocate rewriting
this software as a TurboGears app. This will make it 1) fit into our
existing infrastructure (auth will be very easy, for instance). 2) Make
it more extensible. So we could add history view of past elections,
on-the-fly updates of how the vote is going, etc.
[[spin-chooser]]
== Spin chooser
_Status:_ _Proposed_
''Summary of idea: In this idea spins can be chosen while installing
fedora. If somebody has downloaded a dvd or a cd he can chose the a
predefined group of packages defined in the package chooser such as
choosing gamer will install all games and utilitiess available in the
dvd and the rest from internet. This would save people time as they
won't have to select apps one by one in the package chooser ''
_Contacts: arnavkalra007@gmail.com_
_Notes:_
[[idea-name-template]]
== Idea Name (Template)
_Status:_ _Proposed_ or _Ready for Use_
_Summary of idea:_
_Contacts:_
_Notes:_

View file

@ -0,0 +1,361 @@
= Ideas: Google Summer of Code 2009
////
Other ideas that were incomplete or worth considering are found at
link:Summer_coding_ideas_for_2008[Summer coding ideas for 2008].
////
Find an idea you like? Want to propose your own? See our Getting Started
Guide:
http://groups.google.com/group/redhat-summer/web/gsoc-getting-started
[[project-name]]
== Project name
_Status:_
_Summary of idea:_
_Contacts:_
_Mentor(s):_
_Notes:_
[[cobbler]]
== Cobbler
_Status:_ Proposed
_Summary of idea:_ Various ideas related to Cobbler :
http://fedorahosted.org/cobbler
_Contacts:_ MichaelDeHaan
_Mentor(s):_ MichaelDeHaan
_Notes:_ The cobbler project is a Linux (and soon to be other OS)
installation server with numerous datacenter automation features.
Possible ideas for GSOC include web app workflow improvements, or a
collection of many numerous RFEs in Fedora Hosted's Trac instance
(fedorahosted.org/cobbler). Students should also have their own original
ideas and an interest in datacenter automation -- folks doing admin work
for their college and interested in using cobbler are ideal. We are
interested in folks that (A) can show they understand the goals of the
project and understand it's present features (as to not reinvent things
it already does or are out of scope), (B) have new ideas of their own
and are creative, and (C) are interested in the domain of datacenter
automation, systems management, virtualization, or constructing SkyNet.
Some knowledge of Python, Perl, Ruby, or a similar dynamic language is
required. Cobbler is all Python so if you're a Python hacker, we'd be
especially glad to have you. If you'd like to contact me to refine your
ideas prior to submitting or just ask questions, that's great, please do
so. (mdehaan AT redhat DOT com)
[[instantmirror]]
== InstantMirror
_Status:_ Proposed
_Summary of idea:_ There exist various existing repository replication
methods to mirror repositories, each with their own pros and cons.
InstantMirror aims to solve problems of data repository replication in
an efficient way. Various modern techniques are utilized and combined
like Squid-like reverse proxy cache and cache expiry algorithm,
rsync-like local directory trees, Torrent style efficient swarming
many-to-many data replication. This project if implemented would
dramatically improve the efficiency and timeliness of repository
replication. This could be very useful for mirror networks like
kernel.org, Fedora, Debian, CPAN, etc. ''' n _Contacts:_ WarrenTogami
_Mentor(s):_ WarrenTogami, RikvanRiel
_Notes:_
* https://fedorahosted.org/InstantMirror/
[[packages-end-user-ui]]
== Packages End User UI
_Status:_ Proposed
_Summary of idea:_ A User Interface to the PackageDB for end users to
find and review packages
_Contacts:_ Toshio Kuratomi
_Mentor(s):_ Toshio Kuratomi
_Notes:_ This idea has already been taken up and a more detailed
proposal worked on by maploin, Ionuศ› Arศ›ฤƒriศ™i
Many Linux distributions have a website that shows what packages are
present in the distribution to users of the distribution. These websites
have pages that tell what the software does, how to use it, what version
it is, and so on. We'd like to add the same capabilities to the Fedora
Package Database so that Fedora Users can come there to see what
packages are in Fedora.
We also want to add a few features that aren't in other systems.
* The ability to filter these as applications instead of packages,
* Letting end users comment on the applications to help other end users
* Letting end users tag the packages with keywords to make searching
easier
More details here:
* https://fedorahosted.org/packagedb/wiki/EndUserUI
[[new-developer-ui-for-the-packagedb]]
== New Developer UI for the PackageDB
_Status:_ Proposed
_Summary of idea:_ Update the Packager's User Interface to be more
efficient.
_Contacts:_ Toshio Kuratomi
_Mentor(s):_ Toshio Kuratomi
_Notes:_ This idea has already been taken up and a more detailed
proposal worked on by Ranjith Kannikara
The Package Database provides an adequate interface to managing acls on
packages but there are some definite warts that cause our packagers to
spend too much time on the beaurocracy of maintaining packages rather
than coding. This proposal is to address several outstanding feature
requests and create some new interfaces that will make managing package
acls much easier.
More details here:
* https://fedorahosted.org/packagedb/wiki/NewDevUI
[[robotics-livecd-with-simulator-environment]]
== Robotics LiveCD with Simulator Environment
_Status:_ Proposed
_Summary of idea:_ Create a LiveCD that provides a simulation
environment and tools to start robotics experiments.
_Contacts:_ link:https://fedoraproject.org/wiki/User:Timn[Tim Niemueller]
_Mentor(s):_ Don't know, would like to be the student
_Notes:_ I would like to integrate the robot software that I've
developed at university (and that is going to be released to the public
real soon now as GPL'ed OSS) into Fedora, then integrate the
Gazebo/Stage simulators properly into Fedora and the software and
provide a simple development playground that one can use to make the
robots move in the simulation and solve tasks. Maybe a simple task-based
game (get the robot to pick the can and bring it to the place marked
with X) could come out of it. My diploma/master thesis (that I'm
finishing atm) is about efficient and simple behavior control employing
Lua, so this would be a really good fit. This project would be embedded
into the link:https://fedoraproject.org/wiki/SIGs/Robotics[Fedora Robotics SIG].
[[spacewalk]]
== Spacewalk
_Status:_ Proposed
_Summary of idea:_ PostgreSQL support in Spacewalk
_Contacts:_ JesusRodriguez
_Mentor(s):_ JesusRodriguez
_Notes:_ Spacewalk is an open source Linux systems management solution.
It allows you to:
* Inventory your systems (hardware and software information)
* Install and update software on your systems
* Collect and distribute your custom software packages into manageable
groups
* Provision (Kickstart) your systems
* Manage and deploy configuration files to your systems
* Monitor your systems
* Provision virtual guests
* Start/stop/configure virtual guests
Currently Spacewalk works only with Oracle, which is why enabling it to
work with PostgreSQL would be a great project.
* https://fedorahosted.org/spacewalk/wiki/PostgreSqlProject
* https://fedorahosted.org/spacewalk/
[[fedora-feature]]
== Fedora Feature
_Status:_ Proposed
_Summary of idea:_ Create any open ended Feature which must be approved,
and will be included in Fedora 12
_Contacts:_ link:https://fedoraproject.org/wiki/User:ynemoy[Yaakov Nemoy]
_Mentor(s):_ Yaakov Nemoy
_Notes:_ For more information link:https://fedoraproject.org/wiki/User:Ynemoy/GSOC_2009[click this link
here], or try to get in contact with Yaakov Nemoy
[[packagekit-fix-app-install]]
== PackageKit: fix app-install
_Status:_ Proposed
_Summary of idea:_ Fix app-install problems and let it be accepted to
Fedora.
_Contacts:_ Richard Hughes
_Mentor(s):_ Richard Hughes
_Notes:_
See
http://blogs.gnome.org/hughsie/2009/03/05/application-installing/[this
blog post] about more information of app-install in general.
See
https://bugzilla.redhat.com/show_bug.cgi?id=488968[fedora-app-install]
review request about problems expressed.
At least the following problems are addressed:
* Layout of app-install metadata and application icons inside of
repository,
* Pregenerating of app-install metadata and icons,
* Change app-install to download metadata from repository,
* Learn app-install to download icons on demand.
[[ekg]]
== EKG
_Status:_ Proposed
_Summary of idea:_ Help build a community scanner that gives detailed
statistics and provides visualizations about what the Open Source
community is up to.
_Contacts:_ link:https://fedoraproject.org/wiki/User:ynemoy[ Yaakov Nemoy], link:https://fedoraproject.org/wiki/Michael_DeHaan[Michael
DeHaan], Max Spevack
_Mentor(s):_ Yaakov Nemoy and Michael DeHaan
_Notes:_ EKG (http://fedorahosted.org/ekg) is a tool that lets us
monitor community mailing lists and see where traffic is coming from.
What projects are becoming more popular? What is the mix of people
posting to various lists? What's the pulse on the community?
As a contributor, you will help extend EKG to track additional
resources, mine new data, and create new visualizations, metrics, and
comparisons. We will measure the contributions by company and
organisation and community members. There is a lot of room for work in
web visualization, whether this means making new charts and graphs or
attempting to find ways to show a lot of information at a glance.
You will get to work with the following technologies:
* Python
* HTML
* Javascript
* SQLAlchemy
* Python templating languages
Students should bring some of their own ideas to table when submitting
proposals. This may be a very good project for a student with interests
in data mining, statistics, or (2D) data visualization.
[[jboss.org-ideas]]
== JBoss.org ideas
The JBoss.org crew is proposing as a mentoring organization with the
Fedora Project, as has been done in the past. That ideas page is here:
http://www.jboss.org/community/docs/DOC-13401
[[transifex-ideas]]
== Transifex ideas
The Transifex team is proposing ideas under the Fedora Project mentoring
organization for this year's Summer of Code.
Coding includes Python and Django, Web frameworks, workflow development,
and the chance to contribute to something used by quite a few folks.
A full list of ideas can be found on the Transifex wiki page:
http://transifex.org/wiki/Development/SummerCoding/Ideas
[[augeas]]
== Augeas
_Status:_ Proposed
_Summary of idea:_ Various ideas around Augeas : http://augeas.net/
_Contacts:_ link:https://fedoraproject.org/wiki/User:Lutter[David Lutterkort]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Lutter[David Lutterkort]
Augeas is a command line tool and library to make editing of
configuration files from programs and scripts easier. It does that by
parsing existing configuration files into a tree, allowing modifications
of the tree through an API, and writing the tree back to the original
configuration file with those modifications.
There are a wide variety of interesting projects to enhance Augeas
itself or build tools on top of it. Depending on the specific project,
required skills range from learning the ins and outs of specific config
files to python scripting and the ability to solve hard research
problems.
Detailed list of ideas at http://www.augeas.net/page/Project_Ideas
[[better-iptables-management]]
== Better iptables management
_Status:_ Proposed
_Summary of idea:_ Write a tool to help understand and modify iptables
rules
_Contacts:_ link:https://fedoraproject.org/wiki/User:Lutter[David Lutterkort]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Lutter[David Lutterkort]
The iptables config is a scary file, especially when programs need to
modify it, since making a change often requires that the program
understands what a chain does in its entirety. It would be much better
to have a tool that can answer questions like "What does chain X do to
packets that look like this ?" and "Modify chain X to ACCEPT/DROP/REJECT
packets that look like this" in a way that avoids redundant rules.
Solutions to these are described in a few research papers.
You should have a basic knowledge of iptables configuration, interest in
writing OCaml (preferred) or C code, and be willing to learn about some
theoretical concepts like binary decision diagrams (BDD's)
[[backup-system-on-btrfs]]
== Backup system on btrfs
_Status:_ Proposed
_Summary of idea:_ Write a backup system on btrfs (use snapshots )
_Contacts:_ link:https://fedoraproject.org/wiki/User:Kushal[ Kushal Das]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Kushal[ Kushal Das]
btrfs is upcoming filesystem which is already there in rawhide. It
include unique feature of create snapshots, one can easily go back to
the previous states of the files using that. In the current condition it
is better to take snapshots of subvolumes only.
Primary task will be to create an independent GUI based app to browse
the history. In future one can patch the major file managers for this
feature.

View file

@ -0,0 +1,794 @@
= Ideas: Google Summer of Code 2010
This page holds all the ideas suggested by community members for the
link:indes.html[Fedora Summer Coding 2010] program.
Scroll to the bottom of this page for all the pages in the 2010 ideas
category.
////
__TOC__
Other ideas that were incomplete or worth considering from the past are
found at link:Summer_coding_ideas_for_2009[Summer coding ideas for
2009].
////
Looking for JBoss.org ideas?
http://community.jboss.org/wiki/GoogleSummerofCode2010
[[process]]
== Process
1. Think in terms of use cases.
+
::
If you provide a use case and some ideas of how to solve, you give
more room for students to put in their own ideas and passion.
+
Consider if that is possible for each of your project ideas.
2. Prepare a project idea page, part of which is included on this page.
+
::
To learn how to add an idea to this page, read
link:https://fedoraproject.org/wiki/How_to_create_an_idea_page_for_Summer_Coding[How to create an
idea page for Summer Coding].
[[idea-page-sample]]
== Idea page sample
////
The main page for this idea is
link:Summer_Coding_2010_ideas_-_Idea_page_sample[Summer Coding 2010
ideas - Idea page sample].
////
_Status:_
_Summary of idea:_
_Contacts:_
_Mentor(s):_
_Notes:_
[[rhq]]
== RHQ
////
The main page for this idea is
link:Summer_Coding_2010_ideas_-_Libyahoo2[Summer Coding 2010 ideas -
Libyahoo2].
////
_Status:_ "Idea"
_Summary of idea:_ Add features to the
http://libyahoo2.sourceforge.net[libyahoo2 messaging protocol library]
_Contacts:_ link:https://fedoraproject.org/wiki/User:Siddhesh[Siddhesh Poyarekar]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Siddhesh[Siddhesh Poyarekar]
_Notes:_ A brief list of features that are currently needed:
* Webcam support
* Voice support
* Yahoo! Chat room support
[[kde-netbook-spin]]
== KDE Netbook Spin
////
The main page for this proposal is
link:Summer_Coding_2010_ideas_-_KDE_Netbook_Spin[Summer Coding 2010
ideas - KDE Netbook Spin].
////
_Status:_ Accepting Applications
_Summary of idea:_ The creation of an official KDE Netbook Edition Spin
for Fedora 14
_Contacts:_ Ryan Rix < rrix fedoraproject.org >, rrix on
irc.freenode.net/#fedora-kde
_Mentor(s):_ Ryan Rix rrix on irc.freenode.net/#fedora-kde, Jaroslav
Reznik jreznik on irc.freenode.net/#fedora-kde
[[welcome-wizard]]
== Welcome Wizard
////
main page for link:Summer_Coding_2010[Summer Coding 2010] ideas is
link:Summer_Coding_2010_ideas_-_Welcome_Wizard[Summer Coding 2010 ideas
- Welcome Wizard].
////
_Status:_ Idea
_Summary of idea:_ A step by step process of joining the Fedora Project.
_Contacts:_ link:https://fedoraproject.org/wiki/User:Mmcgrath[Mike McGrath]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Mmcgrath[Mike McGrath]
_Notes:_ Right now when new users sign up for an account, they have NO
idea what to do next. One common thing is applying for a bunch of
seemingly random groups, then trying to ssh to fedorapeople. Then just
having your applications sit there... forever never getting approved.
I'd like for the account system to have a simple wizard interface (via a
plugin), welcomes users, explains how Fedora works and explains how to
apply for groups and what to expect. We may have to come up with a
standard way to apply for groups, to be discussed.
[[packagedb-enhancements]]
== PackageDB Enhancements
////
The main page for this idea is
link:Summer_Coding_2010_ideas_-_PackageDB_Enhancements[Summer Coding
2010 ideas - PackageDB Enhancements].
////
_Status:_ Proposed
_Summary of idea:_ The Fedora PackageDB contains information that both
developers and end users would find useful about the applications and
packages in Fedora. There are a large variety of changes that could be
useful for it ranging from the mundane (example: porting to TurboGears2,
adjusting the way we link between the Application and Package
interfaces) to redesigning the database model, or including new
features.
_Contacts:_ link:https://fedoraproject.org/wiki/User:toshio[Toshio Kuratomi]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:toshio[Toshio Kuratomi]
_Notes:_ Some ideas are listed on
https://fedorahosted.org/packagedb/wiki/ToDo
[[copr]]
== Copr
////
The main page for this idea is
link:Summer_Coding_2010_ideas_-_Copr[Summer Coding 2010 ideas - Copr].
////
_Status:_ Proposed
_Summary of idea:_ Copr (Cool Other Package Repo) is a Fedora project to
help make building and managing third party package repositories easy.
Copr is being implemented this summer by Seth Vidal and Toshio Kuratomi.
They would welcome help from interested students.
_Contacts:_ link:https://fedoraproject.org/wiki/User:Toshio[Toshio Kuratomi(abadger1999)]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Toshio[Toshio Kuratomi(abadger1999)]
_Notes:_ :
////
Category:Copr[ More information about Copr]
////
[[gnome---nautilus-search-dialog]]
== Gnome - Nautilus Search dialog
////
The main page for this idea is
link:Summer_Coding_2010_ideas_-_Gnome_-_Nautilus_search[Summer Coding
2010 ideas - Gnome - Nautilus search].
////
_Status:_ Idea
_Summary of idea:_ Nautilus is the default file manager for Gnome
desktop. The current state of the search dialog is suboptimal, our goal
is to make it more rich and provide more options. For example, when we
had set Tracker as the primary search engine, we also committed users to
use their fulltext search by default. An option switching between
filename-based matching and fulltext search would be great addition.
Additional filters would also be a great asset.
_Contacts:_ link:https://fedoraproject.org/wiki/User:tbzatek[Tomรกลก Bลพatek]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:tbzatek[Tomรกลก Bลพatek]
_Notes:_ See upstream bug
https://bugzilla.gnome.org/show_bug.cgi?id=612725#c6 for details
[[chasm]]
== CHASM
////
The main page for this idea is
link:Summer_Coding_2010_ideas_-_CHASM[Summer Coding 2010 ideas - CHASM].
////
_Status:_ Idea
_Summary of idea:_ Various ideas related to http://chasmd.org[CHASM]
_Contacts:_ link:https://fedoraproject.org/wiki/User:Rescrv[Rob Escriva], link:https://fedoraproject.org/wiki/User:Mathstuf[Ben Boeckel
(mathstuf)]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Rescrv[Rob Escriva], link:https://fedoraproject.org/wiki/User:Mathstuf[Ben Boeckel
(mathstuf)]
_Notes:_ CHASM, the Cryptographic-Hash-Algorithm-Secured Mirroring
solution, is a project that is to help alleviate a lot of the pains that
mirrors have in organizing and verifying their content. The project can
be thought of as a stateful `rsync` daemon in some respects, and solves
a problem that kernel.org and a number of other large mirroring
infrastructures have been looking into for several years now. This is
ultimately a project that will be used by a greater portion of the
larger mirroring infrastructures and as such has a lot of need for high
performance and good design.
[[dgc-gtk-gui]]
== DGC GTK GUI
////
The main page for this link:Summer_Coding_2010[Summer Coding 2010] ideas
is link:Summer_Coding_2010_ideas_-_DGC_GTK_GUI[Summer Coding 2010 ideas
- DGC GTK GUI].
////
_Status:_ Proposed
_Summary of idea:_ The proposed work is to write the GTK GUI for Digital
Gate Compiler (DGC) to use the latest GTK+ 2.0 API. This is Fedora
Electronic Lab ticket #73:
https://fedorahosted.org/fedora-electronic-lab/ticket/73
_Contact:_ link:https://fedoraproject.org/wiki/User:Shakthimaan[ Shakthi Kannan] , "mbuf" at
irc.freenode.net/#fedora-india
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Shakthimaan[ Shakthi Kannan] , "mbuf" at
irc.freenode.net/#fedora-india
_Notes:_
[[infinispan]]
== Infinispan
The main page for this idea is
http://community.jboss.org/wiki/StudentContributorProjectswithInfinispan.
_Status:_ Proposed
_Summary of idea:_ Improvements to Infinispan project
(http://www.jboss.org/infinispan)
_Contacts:_ Manik Surtani
_Mentor(s):_ Manik Surtani
_Notes:_ Ideas are
* ISPN-272 Recover from transaction failures
* ISPN-127 Ability to bring up/take down nodes based on SLAs
* ISPN-374 Add event handling to HotRod
* ISPN-57 Support Google App Engine
* ISPN-200 Distributed queries
* ISPN-262 Geographically distributed data grid
* ISPN-263 Handle MERGE events to deal with split brains
Please check details at the Student/Contributor Projects with Infinispan
wiki page at
http://community.jboss.org/wiki/StudentContributorProjectswithInfinispan
[[seam-framework]]
== Seam Framework
The main page for this idea is
http://seamframework.org/Community/StudentProjects.
_Status:_ Proposed
_Summary of idea:_ Improvements and new features to seam Framework
(http://seamframework.org/)
_Contacts:_ Pete Muir
_Mentor(s):_ Pete Muir
_Notes:_ Ideas are
* JBoss ESB integration with CDI
* Errai (GWT) integration with CDI
* Errai (GWT) integration with CDI events
* Errai (GWT) integration with Seam Security
* Extensible project management tooling environment (based on Maven and
Maven Archetypes)
* Conversations with remote EJBs
Please check details at the Student Projects wiki page at
http://seamframework.org/Community/StudentProjects
[[fsoc---four-seasons-of-code]]
== FSoC - Four Seasons of Code
////
The main page for this idea is
link:Summer_Coding_2010_ideas_-_FSoC[Summer Coding 2010 ideas - FSoC].
////
_Status:_ Proposed
_Summary of idea:_ Student Project Management System
_Contacts:_ link:https://fedoraproject.org/wiki/User:Shreyankg[Shreyank Gupta] , Shrink on
irc.freenode.net/#fedora-india
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Shreyankg[Shreyank Gupta]
_Notes:_ The idea is to develop an application which would allow Mentors
and Students to collaborate effectively and get the process of mentoring
automated.
[[kronikarz---simple-tool-for-desktop-backup-restore]]
== Kronikarz - Simple Tool for Desktop Backup / Restore
////
The main page for this idea is
link:Summer_Coding_2010_ideas_-_Kronikarz_-_shortinfo[Summer Coding 2010
ideas - Kronikarz - shortinfo].
The main page for link:Summer_Coding_2010[Summer Coding 2010] ideas is
:Category:Summer_Coding_2010_ideas[:Category:Summer Coding 2010 ideas].
////
_Status:_ "Idea"
_Summary of idea:_ Handy graphical tool for archiving settings of
desktop applications. This tool will be useful for users who:
* want to simply backup / restore look-and-feel and settings of desktop
applications;
* frequently migrate from one distribution to another;
* have more then one device and want to sync settings.
_Contacts:_ link:https://fedoraproject.org/wiki/User:Elemc[Alexei Panov]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Elemc[Alexei Panov]
_Notes:_ Tool can be written to work with plugins (preferrable) or just
bunch of configuration files to describe backup / restore / sync methods
and enable support for certain application.
Proposed features:
* Easy search and select installed applications for backup / restore /
sync
* Can work as application or as daemon
* Has scheduler and backup / restore / sync settings (archive type,
passwords, compression rate, additive/solid, etc.)
* Custom selection of applications for archiving (one, group, all, etc.)
* Restoring data from archive with tracking of current application,
nonexistent on target machine applications should be reinstalled from
PackageKit
* Including user selected files in archive for restoring on target
machine (possibly searching and automatic including configuration files
or files of specified types).
[[unified-mobile-sync]]
== Unified Mobile Sync
////
The main page for this idea is
link:Summer_Coding_2010_ideas_-_Unified_Mobile_Sync_-_shortinfo[Summer
Coding 2010 ideas - Unified Mobile Sync - shortinfo].
The main page for link:Summer_Coding_2010[Summer Coding 2010] ideas is
:Category:Summer_Coding_2010_ideas[:Category:Summer Coding 2010 ideas].
////
_Status:_ Idea
_Summary of idea:_ Synchronization tool for mobile devices. The creation
of tool for data synchronization between mobile devices and desktop,
such as contacts, calendar, schedule, tasks, messages. Today mobility is
a major trend, so enabling synchronization between mobile and desktop is
important for Linux desktop adoption.
_Contacts:_ link:https://fedoraproject.org/wiki/User:Anganar[Alexey Vasyukov]
_Mentor(s):_ For the moment link:https://fedoraproject.org/wiki/User:Anganar[Alexey Vasyukov]
_Notes:_ Proposed features:
* Synchronization of contacts and calendar (required), tasks and
messages (desired)
* Support for popular mobile devices, simple extensibility for new
gadgets via plugins
* Support for popular desktop applications, simple extensibility for
other via plugins
* Simple graphical synchronization tuning tool โ€“ what to synchronize,
scheduling, rules (filters, conflict resolution, etc.)
* Enabling mobile device backup and restore
* Desirably running not only on Linux, but also on Windows and MacOS
(TBD)
* Think about future integration with open source collaboration suites
and unified communication systems.
_Current state_
The current stage (stage 1) is about research and architecture design.
It can not be stuck to certain technologies. You need a broad vision of
different technologies to be successful at this stage.
Current stage will take at least 2-3 months. After it we will determine
coding tasks and timeline and proceed to stage 2 - prototype
implementation.
The tasks for current stage:
* Find out how to upload/download to/from popular mobile devices
(Android, iPhone, Symbian, PalmOS, Win Mobile, BB, etc) contacts,
messages, calendars, todos, media content, etc. It includes studying
what data is accessible, in what format we are to process it, what
protocols-libraries-APIs should be used. As a result we should get clear
understanding what and how can be synced for different devices. This
task will require gathering and reading tons of technical documentation
and writing code to check if documentation is really true. I can not
predict what programming languages, libraries, standards and protocols
you will encounter.
* Find out how to upload/download to/from popular desktop apps
(Evolution, Thunderbird, KDE PIM, Outlook, etc) contacts, messages,
calendars, todos, media content, etc. Once again, it includes studing
what is accessible, in what format, via which channels. As a result we
should get clear understanding what and how can be synced with different
apps. This task will require, similarly with the previous one, reading
documentation and writing tests. Once again, I can not predict what
programming languages, libraries, standards and protocols you will
encounter.
* Find out how to integrate mobile sync into current system
infrastructure for Linux desktop (dbus, udev, PackageKit, etc) and,
probably, Windows desktop (???). This task will require very good
knowledge of system design.
* Prepare concept of GUI application and implement the first version
(with placeholders instead of real sync plugins). This task will require
knowledge of cross-platform programming with Python or C/C++ and
GTK/Qt/etc. Knowledge of GUI design and usability will be a big
advantage.
* Prepare the architecture based on the results of tasks #1-4. The
architecture should meet the requirements [1]. Determine tasks for
complete UMS implementation.
From my point of view each of the tasks #1-4 will require few
person-months. Task #5 will be solved collaboratively.
[[kde-fingerprint-support-for-various-components]]
== KDE fingerprint support for various components
////
The main page for this idea is
link:Summer_Coding_2010_ideas_-_KDE_fingerprint_support[Summer Coding
2010 ideas - KDE fingerprint support].
////
_Status:_ Idea
_Summary of idea:_ The aim of this project is to finish fingerprint
support for various KDE core components and package it for Fedora. The
current code supports KDM login & KDE locking and sits in KDE SVN
playground. Support to other KDE componenets have to be done - Polkit
KDE auth. agent, kdesu etc. Code should be accepted by upstream and
should go through KDE review to be shipped in official KDE SC releases.
_Contacts:_ link:https://fedoraproject.org/wiki/JaroslavReznik[Jaroslav Reznik] <jreznik@redhat.com>
_Mentor(s):_ link:https://fedoraproject.org/wiki/JaroslavReznik[Jaroslav Reznik] & KDE SIG
[[kde-usability-recording-tool]]
== KDE Usability recording tool
////
The main page for this idea is
link:Summer_Coding_2010_ideas_-_KDE_Usablity_tool[Summer Coding 2010
ideas - KDE Usablity tool].
////
_Status:_ Idea
_Summary of idea:_ Usability engineers regularly administer usability
sessions. Within these sessions there are a number of things that they
need to record:
The three most notable are the screen of the user being tested
* An external camera source
* An external microphone
These must be compressed and multiplexed together, compressed. The tool
must be able to open these files, export them to other more conventional
types, i.e. an OGG simply of the users screen.
_Contacts:_ link:https://fedoraproject.org/wiki/JaroslavReznik[Jaroslav Reznik] <jreznik@redhat.com>,
link:https://fedoraproject.org/wiki/User:Ltinkl?rd=LukasTinkl[Lukas Tinkl] <ltinkl@redhat.com>
_Mentor(s):_ link:https://fedoraproject.org/wiki/JaroslavReznik[Jaroslav Reznik], link:https://fedoraproject.org/wiki/User:Ltinkl?rd=LukasTinkl[Lukas
Tinkl] & mentor @ university
_Notes:_ for FIT BUT/FI MUNI students only
[[gnu-smalltalk-package-revamping]]
== GNU Smalltalk package revamping
////
The main page for this idea is
link:Summer_Coding_2010_ideas_-_GNU_Smalltalk_package_revamping[Summer
Coding 2010 ideas - GNU Smalltalk package revamping].
////
_Status:_ Idea
_Summary of idea:_ The GNU Smalltalk virtual machine is a monolithic
package in Fedora, and is not updated often. By contrast, the Debian
package separates all of the provided bindings into separate packages,
which allows to install the VM with fewer dependenciesโ€”for example
without GTK+ support, or without Expat, and so on.
The project aims at providing a similar level of flexibility for the
Fedora package. In addition, it would be good to have a way to generate
from the same source the Fedora .spec file, the Windows installer
(currently done with a custom shell script that uses the Fedora mingw32
cross-compilation environment), and the Debian package.
_Contacts:_ link:https://fedoraproject.org/wiki/User:Bonzini[Paolo Bonzini]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Bonzini[Paolo Bonzini]
[[unified-ink-level-reporting]]
== Unified ink level reporting
////
The main page for this proposal is
link:Summer_Coding_2010_ideas_-_Unified_ink_level_reporting[Summer
Coding 2010 ideas - Unified ink level reporting].
////
_Status:_ Idea
_Summary of idea:_ Several printer drivers are capable of reporting the
amount of remaining ink or toner in the printer they are driving, but
they all do it in different ways. Usually there is a command line
program that the user has to know about and run (and interpret the
output). For gutenprint there is escputil. For HPLIP there is hp-levels.
And so on.
CUPS provides a unified framework for all drivers to report marker
levels in the same way, viewed and queried from a single user interface.
The same interface can be used for other "special" functions such as
cleaning/aligning the print heads, printing a self-test page, etc. We
just need the printer drivers to conform to this way of doing things.
Changing both gutenprint and hplip would be sufficient to cover a large
number of printer models.
_Contacts:_ link:https://fedoraproject.org/wiki/User:twaugh[Tim Waugh]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:twaugh[Tim Waugh]
[[customizable-application-installer]]
== Customizable application installer
////
The main page for this idea is
link:Summer_Coding_2010_ideas_-_Customizable_application_installer[Summer
Coding 2010 ideas - Customizable application installer].
The main page for link:Summer_Coding_2010[Summer Coding 2010] ideas is
:Category:Summer_Coding_2010_ideas[:Category:Summer Coding 2010 ideas].
////
_Status:_ Accepting Applications
_Summary of idea:_
Ailurus is an application installer [1]. It lists specific software for
specific task. It lists few software, rather than all packages in Fedora
repository. It helps new users because new users can find out software
they want directly, rather than do searching in a lot of packages. Many
Fedora users are using Ailurus now.
Our goal is to make Ailurus _customizable_. For example, users can add
comment for software. Software introduction can be changed. New software
items can be added. Existing software items can be removed. Under the
user's permission, the changes to the software items can be uploaded to
a web service on google app-engine, therefore other users will obtain a
benefit by downloading the changes. This application installer supports
extensions. Users can add their own function.
[1] http://ailurus.googlecode.com
_Contacts:_ link:https://fedoraproject.org/wiki/User:homerxing[Homer Xing]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:homerxing[Homer Xing]
[[gnome-file-sharing-administration-tool]]
== Gnome File Sharing Administration Tool
////
Name: Gnome File Sharing Administration Tool
The main page for this idea is
link:Summer_Coding_2010_ideas_-_Gnome_File_Sharing_Administration_Tool[Summer
Coding 2010 ideas - Gnome File Sharing Administration Tool].
////
_Status:_ Idea
_Summary of idea:_ KDE has taken an advance on file sharing which is
Kcm-filesharing by allowing the user list all samba/nfs shares and allow
the user to configure the shares centrally and graphically, while which
is required but not supplied by Gnome. The proposed project aims to
create a utility that should provide a graphical administration tool to
configure both samba system shares and nfs shares. It is able to manage
the file sharing management, authentication, and other most worthy
configurations of samba and nfs.
_Contacts:_ link:https://fedoraproject.org/wiki/User:Xtyangjie[Yang Jie]
_Mentor(s):_ looking for a mentor
[[beacon]]
== Beacon
////
The main page for this idea is
link:Summer_Coding_2010_Ideas_-_Beacon[Summer Coding 2010 Ideas -
Beacon].
////
_Status:_ Proposed
_Summary of idea:_
The idea is to have an inline DocBook XML editor in Zikula (or the
Fedora instance of Zikula).
The preliminary tasks are to:
1. Enable Zikula setup with DocBook support.
2. Enable wiki-like editing setup that can support revisions too
3. Enable XSL support for parsing of docbook to and from html
_Contacts:_
link:https://fedoraproject.org/wiki/User:Satyak[Satya Komaragiri]
_Mentor(s):_
1. link:https://fedoraproject.org/wiki/User:Satyak[Satya Komaragiri]
2. link:https://fedoraproject.org/wiki/User:n9986[Nandeep Mali]
[[libyahoo2]]
== Libyahoo2
////
The main page for this idea is
link:Summer_Coding_2010_ideas_-_Libyahoo2[Summer Coding 2010 ideas -
Libyahoo2].
////
_Status:_ "Idea"
_Summary of idea:_ Add features to the
http://libyahoo2.sourceforge.net[libyahoo2 messaging protocol library]
_Contacts:_ link:https://fedoraproject.org/wiki/User:Siddhesh[Siddhesh Poyarekar]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Siddhesh[Siddhesh Poyarekar]
_Notes:_ A brief list of features that are currently needed:
* Webcam support
* Voice support
* Yahoo! Chat room support
[[fedora-musicians-guide]]
== Fedora Musicians' Guide
////
The main page for this idea is
link:Summer_Coding_2010_ideas_-_Fedora_Musicians'_Guide[Summer Coding
2010 ideas - Fedora Musicians' Guide].
////
_Status:_ Idea
_Summary of idea:_ The goal is to produce a document like the User
Guide, but focussed on applications that might be used by musicians. A
broad range of applications and application types will be covered,
including the installation and use of software from Planet CCRMA
(http://ccrma.stanford.edu/planetccrma/software/).
_Contacts:_ link:https://fedoraproject.org/wiki/User:Crantila[Christopher Antila]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Rlandmann[Rlandmann] and AnthonyGreen
[[freeseer-portable-presentationdemo-capture-station]]
== Freeseer portable presentation/demo capture station
////
The main page for this idea is
link:Summer_Coding_2010_ideas_-_Freeseer[Summer Coding 2010 ideas -
Freeseer].
////
_Status:_ Proposed
_Summary of idea:_
Freeseer is a portable presentation capture tool. It captures vga
output/firewire/webcam/local desktop and audio and mixes them together
to produce a video thus enabling you to capture great presentations,
demos, or training material easily. The ideas for this project implement
various features to improve the Freeseer video capture software.
_Contacts:_ link:https://fedoraproject.org/wiki/User:fosslc[Andrew Ross]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:fosslc[Andrew Ross], link:https://fedoraproject.org/wiki/User:herlo[Clint Savage],
link:https://fedoraproject.org/wiki/User:zxiiro[Thanh Ha]
[[dorrie]]
== Dorrie
////
The main page for this idea is
link:Summer_Coding_2010_ideas_-_Dorrie[Summer Coding 2010 ideas -
Dorrie].
////
_Status:_ Proposed
_Summary of idea:_
Dorrie is a Web interface to build customized Fedora Remixes. It is a
Free Software licensed under the GNU Affero General Public License v3 or
later and written using Django/Python.
_Contacts:_ link:https://fedoraproject.org/wiki/User:shreyankg[Shreyank Gupta]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:shreyankg[Shreyank Gupta]
_Notes:_
[[universal-build-id]]
== Universal Build-ID
////
The main page for this idea is
link:Summer_Coding_2010_ideas_-_Universal_Build-ID[Summer Coding 2010
ideas - Universal Build-ID].
////
_Status:_ "Idea"
_Summary of idea:_ Extend the Build-ID support to make it more
universally usable.
_Contacts:_ link:https://fedoraproject.org/wiki/User:Mjw[Mark Wielaard], link:https://fedoraproject.org/wiki/RolandMcGrath[Roland McGrath]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Mjw[Mark Wielaard], link:https://fedoraproject.org/wiki/RolandMcGrath[Roland McGrath]
_Notes:_ This is not a completely worked out idea yet. A proposal should
pick one or more scenarios and create a concrete implementation plan.
[[shotwell-slideshowsprinting]]
== Shotwell slideshows/printing
The main page for this idea is
http://trac.yorba.org/wiki/SummerCodeIdeas .
_Status:_ Proposed
_Summary of idea:_ Shotwell is the default photo manager in Fedora 13.
Yorba (the open source group that develops Shotwell) is looking for
students interested in working on two different aspects of Shotwell this
summer.
First, slideshows. Today, Shotwell's slideshows are primitive: photos
are simply displayed in succession with no transitions of any sort. We'd
like to implement fancier slideshows with cool-looking transitions. If
time permits, it would be great to add captions and/or music to
slideshows as well.
Second, printing. Today, printing in Shotwell is basic: you can simply
print one photo per page on a white background. We'd like to let the
user print multiple photos per page, choose fancy borders and background
colors and so on.
_Contacts:_ link:https://fedoraproject.org/wiki/User:adamdingle[Adam Dingle]
_Mentor(s):_
_Notes:_

View file

@ -0,0 +1,463 @@
= Google Summer of Code 2010
The Fedora Summer Coding program connects students, mentors,
sub-projects, and sponsors to provide coding opportunities as summer
jobs.
This page has information for all the groups involved.
(http://bit.ly/FSC-2010[Short URL.])
__TOC__
[[general-information]]
== General information
The xref:schedule.adoc[Summer Coding 2010 schedule] has
the timeline of events.
The page xref:index[Summer Coding 2010]
is the central location to find information about the program.
[[you-are-a-student]]
== You are a student
This section is for students interested in contributing to the Fedora
Project or JBoss.org through Fedora Summer Coding 2010.
If you have an idea or want to participate through Fedora or JBoss.org,
you should already be looking around the community and
link:https://fedoraproject.org/wiki/Communicating_and_getting_help[communicating].
[[timeline-for-students]]
=== Timeline for students
[[step-by-step-for-students]]
=== Step-by-step for students
[[why-spend-your-summer-working-on-foss]]
=== Why spend your summer working on FOSS?
When you work in the open on free software, you create a body of work
that follows you for the rest of your life. Rather than a coding
assignment done by thousands of other students and relegated to the
bottom of the bit drawer at semester's end, working in FOSS is a chance
to contribute to a living project.
Working in FOSS gives you a chance to:
* Work with real world large codebases.
* Collaborate with real engineers and other professional experts.
* Contribute to something meaningful while learning and earning student
value.
* Learn tools and processes that are just like what you are going to use
if you work in technology after graduation.
* Make friends and contacts around the globe.
* Possibly attract attention that gets you an internship or job after
graduation.
* Earn while you learn. We are planning to sponsor $5000 for full
projects and $2500 for half projects. Check out Summer_Coding_FAQ for
more details.
[[why-work-with-fedora-and-jboss.org]]
=== Why work with Fedora and JBoss.org?
Our projects are large and diverse. We are very experienced at working
with new contributors and helping them be successful.
Many long-time contributors continue to be around, lending expertise and
mentoring. People who stay around the community and do good work are
noticed. They get hired for jobs from it, including being hired by Red
Hat. link:https://fedoraproject.org/wiki/GSoC_report_2009[Past Google Summer of Code students were
hired by Red Hat, as well as interns in various positions]. This is just
an example, as experience and reputation in the JBoss.org and Fedora
Project communities is influential on your career in many ways.
As long-standing communities with many facets, it is possible for you to
find many rewarding sub-projects to work on.
You should know that contributing to FOSS doesn't require you to have
super programming skills, or super-anything else. You just need be
interested and curious enough, and be willing to become comfortable
being _productively lost_. This is the state of learning through finding
your way around and figuring things out.
[[do-you-want-to-start-from-ideas-mentors-already-have]]
=== Do you want to start from ideas mentors already have?
Mentors and sub-projects have put up sections on the
xref:ideas.adoc[Summer Coding 2010 ideas] page. There you
can find:
* Full ideas that you might want to start on;
* Suggestions and use cases, to help you make up your own idea;
* Links to the sub-project/upstream where you can learn more.
For example, if you are interested in doing something for the
http://rhq-project.org[RHQ Project], there is a link to an ideas page on
their website and how to contact the team. If you contact them, you can
learn about even more ideas, and share some of your thinking.
Even if a mentor has an idea, you want to find one that inspires you.
You must become part of the idea yourself.
[[do-you-have-an-idea-you-need-a-mentor-for]]
=== Do you have an idea you need a mentor for?
People can be most passionate about an idea that is their own. That
passion can be what helps you get through the hard part of the project.
Do you know what person or sub-project in JBoss or Fedora that might be
the mentoring group for your idea?
You need to do these things:
1. Contact the relevant sub-project for your idea or contact
http://lists.fedoraproject.org/mailman/listinfo/summer-coding-discuss[the
discussion group].
2. Be prepared to explain your idea, receive input and criticism, and
grow (or reduce) the idea so it has the best chance of being accepted
for Fedora Summer Coding.
3. Create an idea page, noting in the section for mentors that you are
looking for a mentor. Use
link:https://fedoraproject.org/wiki/How_to_create_an_idea_page_for_Summer_Coding[How to create an idea
page for Summer Coding] to make the page.
[[are-you-already-working-in-the-fedora-or-jboss-communities]]
=== Are you already working in the Fedora or JBoss communities?
Students who are users, participants, or contributors in the Fedora and
JBoss communities are _encouraged_ to participate.
Do you have ideas for what you'd like to see in the project?
Are you working in an area of the project that might want to mentor you
for your Summer Coding 2010 work? For example, if you write for the
Fedora Documentation Project or translate for the Fedora Localization
Project, talk with your group to see if there are ideas you can turn in
to a student proposal, with another sub-project member as the mentor.
[[what-are-my-chances-of-having-a-proposal-accepted]]
=== What are my chances of having a proposal accepted?
This is the first year we are running a solo summer coding program, and
many details are being finalized in parallel with taking and reviewing
proposals. For example, sponsors are still being sought, which affects
the size of the funding pool. We'll announce this information as it is
known and decided; final funding-per-student may vary and is dependent
on the quality of proposals as well as size of funding pool.
We may not be able to fund as many projects as we ran under the Google
Summer of Code, but our goal is on quality and not quantity.
We intend to run Fedora Summer Coding in the future. One idea is to run
it for the summer in the Southern Hemisphere (Sep 2010 to Feb 2011). If
you don't get in this round, keep trying! You are welcome to keep
lurking and offering ways to help improve the program for future rounds.
[[you-are-a-mentor]]
== You are a mentor
Wanting to be a mentor is a good thing. Join the
http://lists.fedoraproject.org/mailman/listinfo/summer-coding-discuss[discussion
list] and tell us about yourself, your project idea, and so forth.
You must be committed to work with the student and be a liaison between
the student, sub-projects, upstreams, and the overall project (Fedora
Project or JBoss.org.) You can come from a Fedora sub-project, an
upstream such as a JBoss.org project, from a university or college
sponsoring students, as a few examples.
After discussion on the main Summer Coding 2010 list, you will be
invited to join the private mentor discussion list
[[timeline-for-mentors]]
=== Timeline for mentors
[[step-by-step-for-mentors]]
=== Step-by-step for mentors
[[what-to-do-with-your-ideas]]
=== What to do with your ideas
Put them here on the : xref:ideas.adoc[Summer Coding
ideas] page. Reference
link:https://fedoraproject.org/wiki/How_to_create_an_idea_page_for_Summer_Coding[How to create an idea
page for Summer Coding] when creating your idea.
We are looking in to using http://openhatch.org[OpenHatch] for managing
ideas. If you are interested in learning more about that, join us on the
http://lists.fedoraproject.org/mailman/listinfo/summer-coding[Summer
Coding SIG mailing list].
[[how-to-work-with-students]]
=== How to work with students
One way is to provide an idea for students to work on. This idea might
be very well planned out, in which case you may need a high-level of
contact with the student to get it implemented correctly.
It is harder to find success where you are completely certain of how an
idea needs to be implemented; finding a student with the skills and
interest to implement a specific solution is a lot harder than finding a
student with enough skills to respond to a use case need.
Where you can have looser ideas, you may be able to find a student who
works as a sort-of intern who can implement a solution to a use case you
have. In past experiences, students going after a use case are more
likely to get somewhere with self-direction.
You may also want to work with a student who brings an idea to your
sub-project. This requires a different level of communication throughout
the project, but can be the most rewarding.
[[mentor-responsibilities]]
=== Mentor responsibilities
You are an essential part of the student's success, the project's
success, and the success for your overall organization (Fedora,
JBoss.org, or another).
Your responsibilities include:
* Being an interface for an identified sub-project or SIG in Fedora or
JBoss.org.
* Helping students communicate with the overall project and any
upstreams.
* Be the final, accountable person for deciding if the student is
successful or not, which affects payment.
[[are-you-committed-to-working-with-all-parties]]
=== Are you committed to working with all parties?
You need to be committed to working on your part of the Fedora Summer
Coding 2010 for it to be successful. You may want to work with another
mentor (_co-mentoring_) to ensure there is always someone available to
work with the student and other project members.
[[how-to-comment-on-proposals]]
=== How to comment on proposals
[[you-are-a-sub-project]]
== You are a sub-project
Sub-projects are teams working on discrete parts of the Fedora Project
or JBoss.org. For example:
* Fedora Infrastructure
* RHQ
* Fedora Docs Team
* Drools
* Fedora Website Team
[[timeline-for-sub-projects]]
=== Timeline for sub-projects
[[step-by-step-for-sub-projects]]
=== Step-by-step for sub-projects
https://fedoraproject.org/wiki/Summer_Coding_2010#Step-by-step_for_sub-projects[Summer
Coding 2010 step-by-step for sub-projects]
[[working-with-students-and-the-summer-coding-program]]
=== Working with students and the Summer Coding program
You can gain a lot of value from students working via the Summer Coding
program in your sub-project area; read link:https://fedoraproject.org/wiki/GSoC_report_2009[GSoC report
2009] for examples.
Your sub-project may need to identify a single mentor to work with the
student, if the mentor doesn't come from somewhere else in
Fedora/JBoss.org. In addition, you want a back-up mentor or, in some
cases, co-mentors, to ensure continuity for the student and the rest of
the sub-project.
If you have ideas/problems you want students to work on, they are best
served to the students as use cases. If you do have a strong plan for
execution, make that clear in the idea so the student knows it is more
of a guided project.
Some experience shows that student projects have a higher success rate
for all involved when more of the initial idea is from the student. Keep
that in mind as you create ideas.
Ideas can be divided in to several parts for different students. There
are no explicit limitations on how students may interact on multiple
parts of a project. For example, two students could team build a new
component instead of working on two discrete components separately.
[[you-are-a-sponsoring-organization]]
== You are a sponsoring organization
Fedora Summer Coding is about connecting sponsors (those with resources
to share) with students (those with time, passion, and skills to share.)
[[timeline-for-sponsoring-organizations]]
=== Timeline for sponsoring organizations
[[step-by-step-for-sponsors]]
=== Step-by-step for sponsors
https://fedoraproject.org/wiki/Summer_Coding_2010#Step-by-step_for_sponsors[Summer
Coding 2010 step-by-step for sponsors]
[[why-you-should-be-a-sponsor]]
=== Why you should be a sponsor?
What do you get out of it?
* Positively impact FOSS projects.
* Get your brand in front of smart students who want to work on FOSS.
* Potentially end up
link:https://fedoraproject.org/wiki/GSoC_report_2009#Recruiting_new_Red_Hat_associates[hiring great
developers through the program].
* Work on a community program that demonstrates how open source business
is done.
* See something youโ€™d like coded be completed.
* Other positive brand associations.
[[what-you-need-to-do]]
=== What you need to do
We need to start talking, soon.
* Open by default on the discuss list -
http://lists.fedoraproject.org/mailman/listinfo/summer-coding-discuss
* Private via direct email to project leadership - link:https://fedoraproject.org/wiki/User:Quaid[Karsten
Wade], ...
What are the resources you can supply?
1. Money to pay stipends to students for spending focused time on these
FOSS projects. This is a cross between a summer job and an internship.
2. Someone to help coordinate and to contribute as part of the Fedora
Summer Coding special interest group (SIG).
3. Mentors, especially if they work actively in sub-project or area the
sponsor is supporting.
[[what-does-the-summer-coding-program-do]]
=== What does the Summer Coding program do?
The Fedora Summer Coding mentors sort the student ideas, generate the
list of approved proposals, work with the students throughout the
summer, and make sure you hear back about how things went.
Itโ€™s not necessary as a sponsor to have ideas of how your resources
should be used, thatโ€™s what the Fedora Project and JBoss.org mentors and
sub-projects are prepared to do.
You can learn more about the model we are using in this blog post,
http://blog.melchua.com/2010/03/04/summer-of-code-swimchart-now-with-more-generic/[Summer
Of Code Swimchart: Now With More Generic.]
[[you-are-an-upstream]]
== You are an upstream
[[timeline-for-upstreams]]
=== Timeline for upstreams
[[step-by-step-for-upstreams]]
=== Step-by-step for upstreams
https://fedoraproject.org/wiki/Summer_Coding_2010#Step-by-step_for_upstreams[Summer
Coding 2010 step-by-step for upstreams]
[[has-a-student-brought-a-project-idea-to-you]]
=== Has a student brought a project idea to you?
Please join the
http://lists.fedoraproject.org/mailman/listinfo/summer-coding-discuss[discussion
list] and talk with us about it. We'll ask at least one member of your
project to be on that list throughout the 2010 program. It is not a
requirement, and you can best work it out with the student's assigned
mentor.
[[do-you-have-one-or-more-ideas-you-want-exposed-to-students]]
=== Do you have one or more ideas you want exposed to students?
As long as the idea is relevant for the Fedora Summer Coding program,
you can put it on the xref:ideas.adoc[Summer Coding 2010
ideas] page. Follow the process on that page.
As this is a program for the Fedora Project and JBoss.org, there must be
some benefit to those projects for your upstream idea. When you bring
the topic to the discussion list, be prepared to talk about that.
There must be a demonstrable benefit to Fedora, even if it is only
updated code in a package. Another example is having a student do the
work of getting your software packaged for Fedora. All of your ideas and
ramifications should be topics on the discussion mailing list.
[[are-you-committed-to-working-with-all-parties-1]]
=== Are you committed to working with all parties?
A project needs a mentor. Throwing an idea over the wall on to the wiki
page doesn't get it the attention it needs to be part of the Summer
Coding program. If you put an idea out there but do not have a mentor in
mind for it, it is left open to the Summer Coding mentors and
administators to sort out.
When considering a proposal, the mentors look at the amount of
connection with upstream is required, and how strong the communication
channels are. A stronger connection means the proposal looks better.
[[you-are-a-campus-ambassador]]
== You are a Campus Ambassador
Campus Ambassadors should work to guide new interests through this
process. They should work in both generating interest in Fedora Summer
Coding within the Fedora Community and also generating interest in
Fedora within student contributors.
Campus Ambassadors should then guide new contributors in helping them
get set up with mentors and helping submit their Summer Coding proposal.
[edit] Campus Ambassadors - what
`ย ย ย *ย Studentsย canย haveย aย qualityย intern-likeย experienceย workingย withย Fedora/JBoss.org.` +
`ย ย ย ย ย ย ย ย ย oย Money!ย Code!ย Fame!ย Success!ย Community!ย ` +
`ย ย ย *ย Sub-projectsย inย JBoss.orgย andย Fedoraย areย readyย toย workย withย students.` +
`ย ย ย *ย Thisย isย rightย inย yourย pocket,ย youย canย runย withย Summerย Codingย participationย andย makeย yourย schoolย veryย successful.` +
`ย ย ย *ย Youย canย makeย moreย studentsย successfulย byย beingย anย additionalย mentorย forย studentsย throughย theย process.` +
`ย ย ย *ย Doย youย knowย someoneย atย theย university/collegeย whoย wantsย toย talkย aboutย partneringย withย Fedoraย Summerย Coding?ย `
[[timeline-for-campus-ambassadors]]
=== Timeline for Campus Ambassadors
[[step-by-step-for-campus-ambassadors]]
=== Step-by-step for Campus Ambassadors
https://fedoraproject.org/wiki/Summer_Coding_2010#Step-by-step_for_Campus_Ambassadors[Summer
Coding 2010 step-by-step for Campus Ambassadors]
[[you-want-to-help-organize]]
== You want to help organize
[[timeline-for-organizers]]
=== Timeline for organizers
[[step-by-step-for-organizers]]
=== Step-by-step for organizers
[[you-are-a-member-of-the-fedora-project-community]]
== You are a member of the Fedora Project community
[[timeline-for-fedora-project-community]]
=== Timeline for Fedora Project community
[[step-by-step-for-fedora-community]]
=== Step-by-step for Fedora community
https://fedoraproject.org/wiki/Summer_Coding_2010#Step-by-step_for_Fedora_community[Summer
Coding 2010 step-by-step for Fedora community]
[[you-are-a-member-of-the-jboss.org-community]]
== You are a member of the JBoss.org community
[[timeline-for-jboss.org-community]]
=== Timeline for JBoss.org community
[[step-by-step-for-jboss.org-community]]
=== Step-by-step for JBoss.org community
https://fedoraproject.org/wiki/Summer_Coding_2010#Step-by-step_for_JBoss.org_community[Summer
Coding 2010 step-by-step for JBoss.org community]

View file

@ -0,0 +1,70 @@
= Schedule: Google Summer of Code 2010
This schedule is ready for link:index.html[Summer Coding 2010].
Join the
http://lists.fedoraproject.org/mailman/listinfo/summer-coding-discuss[discussion
mailing list] and/or watch this page to be updated about schedule
changes.
_Start dates_ are emphasized and *deadlines* are in bold emphasis for
student items.
* April
+
::
_7 April - Students can begin submitting applications_
* May
+
::
Whole month - students, mentors, and sub-projects get to know each
other
+
13 May - Mentors need to finish idea pages
+
*20 May - Students applications + proposals need to be in*
+
21 May - Sponsors must pledge funding by this point
+
24 May - Organizers finalize how many applications will be accepted
+
27 May - Mentors + admins finalize rank-ordered list
+
_28 May - Students informed yes/no about application_
* June
+
::
Whole month - code, interact
+
_01 June - Project begins (depending on proposal)_
* July
+
::
_05 July - Midterm evaluations period begins_
+
_05 July - Student midterm deadline for evaluation (first, soft
deadline)_
+
*08 July - Student midterm deadline for evaluation (final deadline)*
+
_12 July - Midterm evaluations due from mentors_
* August
+
::
*09 August - Project coding completes*
+
*16 August - Students final report, code snapshot, and evaluations
due*
+
20 August - Mentor evaluations due for students
+
23 August - Final evaluations due back to students
+
25 August - Mentor, sub-project evaluations of the Summer Coding
program requested
* September
+
::
01 September - Sponsors receive report from organizers
+
06 September - Sponsors release and deliver funds (proposed date)

View file

@ -0,0 +1,562 @@
= Ideas: Google Summer of Code 2011
Find an idea you like? Want to propose your own? See our Getting Started
Guide:
http://groups.google.com/group/redhat-summer/web/gsoc-getting-started
////
You may be interested in ideas from previous years, such as and
link:Summer_coding_ideas_for_2009[2009].
////
[[applications-for-desktop-end-users]]
== Applications for desktop end users
These are coding projects that benefit end users of the Linux desktop.
[[wubi-like-application-for-fedora]]
=== Wubi like application for Fedora
_Status:_
_Summary of idea:_
https://launchpad.net/wubi[https://launchpad.net/wubi] is a great tool
that lets one install Linux from a windows OS. It would be nice to have
something like this for Fedora as well.
_Contacts:_
_Mentor(s):_
_Notes:_
[[integrate-proxy-settings-and-network-locations]]
=== Integrate Proxy Settings and Network Locations
_Status:_ Proposed
_Summary of Idea:_ The system should use an appropriate networking
profile (e.g. Proxy settings) for each network location.
Currently, Gnome does have a concept of network locations in its Network
Proxy configuration window. However, user should select the appropriate
location whenever he moves between networks. This idea is about
providing an integration between NetworkManager and Desktop environments
so that a user can create network profiles for each network location
providing appropriate settings like proxy settings which is the main
proposed setting here. NetworkManager can have a "Network Location"
concept: for wireless networks, usually the name of the network (ESSID)
is usually enough. For wired connections, DHCP servers can and usually
do provide network's domain name, which can be used as the name of the
location. It is nice if a user can associate each network location with
a network settings profile which will be used whenever the user is
connected to that network automatically. So, when you connect to a
network, a corresponding network settings profile is activated
automatically.
_Contacts:_ link:https://fedoraproject.org/wiki/User:Hedayat[Hedayat Vatankhah]
_Mentor(s):_
[[fill-in-some-of-the-missing-nvidia-and-radeon-api-pieces]]
=== Fill in some of the Missing nVidia and Radeon API pieces
_Status:_ Proposed
_Summary of idea:_ Add some of the missing 3d APIs for at least one of
the major card types, considerably helping out the beleagured Radeon and
Nvidia reverse-engineering efforts. There is enough currently (F14)
missing that most 3d games do not function correctly, many of the
underpinnings of FireFox 4 acceleration are blacklisted under Linux, and
many other visual and other components cannot make correct use of the
gpu(s) under Linux. Progress is abysmal for many reasons.
_Contacts:_
_Mentor(s):_
_Notes:_ Requires good integration with the existing Radeon and nVidia
teams and their testsuites
[[spice-as-a-replacement-for-vnc-and-ltsp]]
=== SPICE as a replacement for VNC and LTSP
_Status:_ Proposed
_Summary of Idea:_ SPICE is a virtual desktop interaction protocol that
would be an ideal replacement for VNC and current X based LTSP
implementations. Using SPICE would improve the user experience by
implementing some missing capabilities such as sound in VNC, and making
LTSP more efficient than using raw X. A common protocol for all types of
remote displays would also simplify the client setup. More information
on SPICE can be found here:
http://www.spicespace.org/
_Contacts:_
_Mentor(s):_
_Notes:_
[[applications-for-programmers]]
== Applications for programmers
Other programmers benefit most from these coding project ideas.
[[better-erlang-support]]
=== Better Erlang support
_Status:_ Proposed
_Summary of Idea:_ There is one major issue with Erlang RPM packaging
now. A dependencies between Erlang packages still must be calculated by
hand. There was an initial attempt to create list of Provides and
Requires automatically during build stage but it wasn't finished.
Another interesting task is to tightly integrate Erlang/OTP essential
feature of live application upgrades with RPM upgrade process thus
allowing really smooth upgrades of running Erlang applications.
_Contacts:_ link:https://fedoraproject.org/wiki/User:Peter[Peter Lemenkov]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Peter[Peter Lemenkov]
_Notes:_ Requires average knowledge of RPM building process and
installation procedure. Also basic Erlang knowledge is required.
[[infrastructure-for-fedora-contributors-and-users]]
== Infrastructure for Fedora contributors and users
Other contributors and users of the Fedora Project's infrastructure
benefit most from these coding projects.
[[port-infrastructure-turbogears-apps-to-tg2]]
=== Port Infrastructure TurboGears apps to TG2
_Status:_ Proposed
_Summary of idea:_ Several Fedora Infrastructure applications are
written in TurboGears 1.0, and for longevity need to be ported to TG2.
These include bodhi, mirrormanager, packagedb, elections, fas, smolt.
_Contacts:_ link:https://fedoraproject.org/wiki/User:mdomsch[Matt Domsch], link:https://fedoraproject.org/wiki/User:toshio[Toshio Kuratomi]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:mdomsch[mdomsch]
[[mirrormanager-enhancements]]
=== MirrorManager enhancements
_Status:_ Proposed
_Summary of idea:_ MirrorManager provides the mirror lists to all Fedora
systems. In addition to porting to TG2 (see above), several enhancements
would be welcome:
* Simplify creation of new MirrorManager instances (non-Fedora users,
such as CentOS)
* Simplify selection of mirrors within Cloud Providers on granularity
other than netblocks and ASNs
* Other items on the http://git.fedorahosted.org/git/mirrormanager?p=mirrormanager;a=blob;f=TODO;hb=HEAD[TODO list]
_Contacts:_ link:https://fedoraproject.org/wiki/User:mdomsch[Matt Domsch]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:mdomsch[mdomsch]
[[create-a-fedora-events-system]]
=== Create a Fedora Events System
_Status:_ Proposed
_Summary of Idea:_ The idea is to create a website which would allow
displaying events, divided by region, list attendance, topics discussed
and other points. For reference, see
http://loco.ubuntu.com/events/[Ubuntu Loco Events].
http://nushio.fedorapeople.org/fes/roadmap.html[Roadmap] (Work in
progress. Tasks are defined, but dates aren't yet)
_Contacts:_
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Nushio[Nushio] develops webapps as a dayjob and
wouldn't mind making it a summer job too.
_Notes:_ link:https://fedoraproject.org/wiki/User:Giallu[giallu] the Ubuntu site is a django application,
code available as GPLv3
http://bazaar.launchpad.net/~loco-directory-dev/loco-directory If they
do not require copyright assignment I'd consider using it
[[self-manage-buildroot-overrides]]
=== Self Manage Buildroot overrides
_Status:_ Proposed
_Summary of Idea:_ when users need a buildroot override they can manage
it all themselves.
For this I see 2 parts: cli integration into fedpkg i.e. "fedpkg
override" and a server to talk to, track overrides, and do the actual
tagging and untagging -possible work flow: allow developer to specify a
life for the override, defaulting to 24 hours: the server would then do
the tag in koji and at the end of its life untag it I could see having a
web app to see the current overrides, allow requests, extensions etc
_Contacts:_ link:https://fedoraproject.org/wiki/User:Ausil[Dennis Gilmore]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Ausil[Dennis Gilmore]
[[mw-enhancements]]
=== `mw` enhancements
_Status:_ Proposed
_Summary of idea:_ mw is a command-line program that pretends to be a
version control system. It should eventually help people who are console
nuts (like me) edit MediaWiki-based wikis without having to shout at
their web browser.
_Contacts:_ link:https://fedoraproject.org/wiki/User:Ianweller[Ian Weller]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Ianweller[Ian Weller]
_Notes:_ Here are some ideas for students:
link:https://fedoraproject.org/wiki/User:Ianweller/mw_thoughts[User:Ianweller/mw thoughts]
[[complete-implementation-and-deployment-of-copr]]
=== Complete implementation and deployment of Copr
_Status:_ Proposed
_Summary of Idea:_ Finalize and deploy the personal repositories concept
initiated by http://repos.fedorapeople.org
http://fedoraproject.org/wiki/Category:Copr[Copr (Cool Other Package
Repo)] is a Fedora project to help make building and managing third
party package repositories easy. The instance to be installed within
Fedora Infrastructure provides Fedora maintainers with the ability to
create repos of packages to build against and share with others.
As a Fedora user and Ambassador, I'm asked a lot about this feature in
Fedora.
_Contacts:_
_Mentor(s):_
[[integrating-fuzzing-based-instruments-in-quality-assurance-tools]]
=== Integrating Fuzzing-based instruments in quality assurance tools
_Summary of idea:_ Generate fuzzing testcases from the existing "make
test", which is generally only as good as the package maintainer placed
effort into this Extending the range of testcases in a generic way
contributes to an enhanced scope of quality and security testing of
software. Key implementation technique is providing mock "fuzzing"
devices and transparent in-process instrumentation (fuzzing loops) the
turn-around time and bug discovery rate will improve. Transparent
integration in build tools (like rpm-build macros) lower the entry
hurdle for developers and maintainers.
Key components:
-Fuzzing devices: By this we mean user space devices that manipulate
given original data based on a given fuzzing strategy, the strategy
chosen depends on the nature of the file type, implemented by plugins
(for a start provide comprehensive plugin source for image types, gif
png, multimedia, midi).
-Package QA process: We think that a prototypical integration in
rpm-build (macro, pre-waive certain results ) will help (Fedora)
developers package maintainers to transparently gain from these
functionality during package build.
Target: It is expected that all posix variants can benefit from wrapping
fuzzing algorithms behind devices, however due to the rpm-build macro
support, we expect most benefit for rpm-based distros.
_Contacts:_ Marc Schoenefeld , mschoene@redhat.com
_Mentor(s):_ Marc Schoenefeld , mschoene@redhat.com
[[linux-system-services]]
== Linux system services
These coding projects are lower-level services that benefit Fedora and
other Linux distributions.
[[nis-support-in-sssd]]
=== `NIS` support in `SSSD`
* _Status:_ Proposed
* _Summary of idea:_ Currently, the System Security Services Daemon
supports only LDAP for network user identity. Support for NIS identities
has been requested several times by end-users.
* _Contacts:_ link:https://fedoraproject.org/wiki/User:Sgallagh[Stephen Gallagher]
* _Mentor(s):_ link:https://fedoraproject.org/wiki/User:Sgallagh[Stephen Gallagher]
[[sudo-support-in-sssd]]
=== `SUDO` support in `SSSD`
* _Status:_ Proposed
* _Summary of idea:_ Sudo 1.8.0 will support a plugin interface for sudo
authorization decisions. It would be excellent for SSSD to provide such
a plugin to provide cached access to sudo information stored in the sudo
LDAP schema. This would make it easier to maintain centralized sudo
rules that also function while offline.
* _Contacts:_ link:https://fedoraproject.org/wiki/User:Sgallagh[Stephen Gallagher]
* _Mentor(s):_ link:https://fedoraproject.org/wiki/User:Sgallagh[Stephen Gallagher]
* _Notes:_ http://www.sudo.ws/sudo_plugin.man.html
[[improving-fedora-packaging]]
== Improving Fedora packaging
The heart of Fedora are the packages and the applications that manage
them; these coding projects help improve the package experience for
users and contributors.
[[maven-and-packagekit-integration]]
=== Maven and PackageKit integration
_Status:_ Proposed
_Summary of idea:_ Currently when building with maven locally, all spec
files need to specify build dependencies manually. Java libraries and
maven plugins should have something like
"Provide(groupId:artifactId:version:format)" so that "yum install
org.apache.velocity:velocity" will correctly find and install velocity
package. Second part of this project can be creating maven plugin asking
you to install via PackageKit the package that provides the dependency.
_Contacts:_ link:https://fedoraproject.org/wiki/User:Sochotni[Stanislav Ochotnicky] or
link:https://fedoraproject.org/wiki/User:Akurtakov[Alexander Kurtakov]
_Mentor(s):_
_Notes:_ Basic knowledge of maven and rpm is required.
[[kde-plasma-and-packagekit-integration]]
=== KDE Plasma and PackageKit integration
_Status:_ Proposed
_Summary of idea:_ Add automatically-generated rpm dependencies for
kde/plasma related services (see also
http://rdieter.livejournal.com/14897.html[blog entry on the topic]), and
add packagekit hooks to use them (one concrete example would be for
plasma dataengines (see also
http://rdieter.livejournal.com/14897.html[blog entry on the topic]).
_Contacts:_ link:https://fedoraproject.org/wiki/User:Rdieter[Rex Dieter]
_Mentor(s):_
_Notes:_ Intermediate knowledge of rpm and/or kde plasma coding
[[avahi-yum-repositories]]
=== Avahi yum repositories
_Status:_ Proposed
_Summary of idea:_ Add a yum plugin that will use avahi to find local
mirrors of canonical repositories, and tools/scripts for local http/nfs
servers to advertise what they have. It would also be nice to include
proper nfs repository support in yum or a plugin, so the advertised
repositories can be on NFS filesystems that are not already mounted
locally on clients. The use on the clients should be transparent without
any local yum repo config changes except perhaps for installing/enabling
the plugin. Later anaconda could also be taught to use avahi to find
repositories for installation.
_Contacts:_ link:https://fedoraproject.org/wiki/User:roland[Roland McGrath]
_Mentor(s):_
_Notes:_ Divisible into various separate pieces that are worthwhile on
their own.
[[improve-critical-dependency-management-in-yum]]
=== Improve critical dependency management in Yum
_Status:_ Proposed (please review)
_Summary of idea:_ The idea (roughly) is that Yum could detect when a
package update is going to break some important functionality of the
system because is a dependency of another package that won't be updated
(for example: Yum is not detecting that when a kernel is updated,
because the previous kernel is not deleted, and the dependency isn't
broken). This happens once in a while with kernel and third party
packages that provide support for devices that aren't supported by
Fedora directly because of licensing restrictions: ie. Fedora updates
the kernel, and RPM Fusion packages related to Broadcom wireless usually
need 2-4 days to be updated, resulting in a non working wireless.
_Contacts:_
_Mentor(s):_
_Notes:_ I don't feel qualified to be mentor.
[[masking-packages]]
=== Masking packages
Mixing stable and unstable packages (ie from different repositories) is
quite tiresome and hardly manageable for more than a few packets. What
is missing is something like the Gentoo approach where you can unmask
(or mask) certain unstable packages so that they will be pulled and
installed into your otherwise stable-only environment. The user has to
resolve any conflicts that may arise.
Apart from the luxury of more bleeding-edge packages available, this
could also really get more people into testing of unstable packages.
With changed policies regarding only stable updates / backports to a
stable Fedora release, this would make Fedora still attractive for users
that like to work with latest packages but refrain from rawhide for
whatever reasons.
[[smarter-yum-metadata]]
=== Smarter Yum Metadata
_Status:_ Proposed
_Summary of Idea:_ Share yum metadata among users of a system and also
fetch them faster instead of downloading the whole chunk each time.
A git-based metadata store was
http://log.amitshah.net/2010/12/idea-faster-metadata-downloads-with-yum.html[proposed]
but https://bugzilla.redhat.com/show_bug.cgi?id=664356[objected] to by
yum maintainers. There could be other ways of doing this, as suggested
in the bug report or by going ahead with the git idea -- I believe it
can be done.
_Contacts:_
_Mentor(s):_
[[turn-smock-into-a-real-program]]
=== Turn smock into a real program
_Status:_
_Summary of idea:_
http://git.annexia.org/?p=fedora-mingw.git;a=tree;f=smock;hb=HEAD[smock]
is a hack that Dan and I wrote a few years ago that lets you build a
chain of RPMs in mock. It works out all the dependencies and builds the
packages in the right order, using the result from an earlier build to
satisfy dependencies in a later build, and being almost completely
automated. What really needs to happen is that link:https://fedoraproject.org/wiki/Projects/Mock[mock]
is extended to support this as a native feature.
_Contacts:_
_Mentor(s):_
_Notes:_
[[fedora-spins-and-remixes]]
== Fedora Spins and remixes
Remixing and making new Fedora Spins is an important part of the
community's freedoms, and these coding projects support that.
[[fedora-medical]]
=== Fedora Medical
_Status:_ In progress.
_Summary of idea:_ Here, we are looking for a couple students who have
some experience in RPM packaging, python, and bash. This would be a good
opportunity to learn in depth packaging and fedora contributor
ecosystem.
This is a work in progress and details can be found here:
http://fedoraproject.org/wiki/SIGs/FedoraMedical
We are looking forward to do mainly packaging and getting them published
to fedora repo. However, we will also be doing some tooling and
associated works. So, python and bash will be required.
Understanding fedora package maintainer guideline is required. Having
existing packages in fedora will be a plus. Also, the student should be
interested in maintaining some of those packages after SOC.
_Contacts:_ Susmit Shannigrahi
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Susmit[Susmit] and link:https://fedoraproject.org/wiki/User:Mrceresa[Mario Ceresa ]
_Notes:_
[[create-a-spin-to-aid-students-in-education-and-to-help-them-understand-linux-and-fedora-better]]
=== Create a spin to aid students in education and to help them understand Linux and Fedora better
_Status:_ Proposed
_Summary of Idea:_ The idea is to create a spin which would be more
student friendly. It should have some graph plotting tools, some circuit
simulator, maybe an equation solving application, IDE for some basic
coding and a few compilers which are taught in colleges and other
relevant stuff. It should consist of extensive documentation to help
students use these tools and Linux in general. A few interesting games
and music player would be a plus.
Additionally, if possible, one can imagine to throw up a screen during
install which would help in picking the age group of the student. The
applications can be installed accordingly. For example, I would like to
have a scrabble game for a small kid then a circuit simulator.
_Contacts:_ link:https://fedoraproject.org/wiki/User:Rrix[ Ryan Rix]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Rrix[ Ryan Rix] (Maybe)
[[educational-application-for-fedora-robotics-suite]]
=== Educational Application for Fedora Robotics Suite
_Status:_ Proposed
_Summary of Idea:_ Create an educational app introducing software from
Fedora Robotics Suite
The link:https://fedoraproject.org/wiki/SIGs/Robotics[Fedora Robotics SIG] is creating a
link:https://fedoraproject.org/wiki/Features/RoboticsSuite[Robotics Suite] consisting of many packages
useful in robotics. We want to develop a demonstration application
introducing new users step by step to core packages like
http://www.fawkesrobotics.org[Fawkes] and
http://playerstage.sourceforge.net[Player/Stage]. It would feature
multiple game-like levels with increasing complexity. The general task
would be to instruct the robot to fulfill a specific task in a
simulation environment.
Developing this requires a strong background in C++, a background in
robotics is preferred but not necessary. You should be able to
familiarize yourself with new software quickly. User visible parts will
require GUI programming using Gtkmm.
_Contacts:_ link:https://fedoraproject.org/wiki/User:Timn[Tim Niemueller]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Timn[Tim Niemueller]
[[dorrie---a-web-interface-to-create-fedora-remixes]]
=== Dorrie - A Web interface to create Fedora Remixes
_Status:_ Proposed
_Summary of Idea:_ Contribute to Dorrie, and make it more usable, tested
and deployable.
More at link:https://fedoraproject.org/wiki/Remixes_Web_Interface[Dorrie], code at
https://github.com/shreyankg/Dorrie, fork and send pull request, if you
are interested to contribute.
_Contacts:_ link:https://fedoraproject.org/wiki/User:Shreyankg[Shreyank Gupta]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Shreyankg[Shreyank Gupta]
[[aeolus-packaging]]
=== Aeolus Packaging
_Status:_ Proposed
_Summary of Idea:_ Contribute to the Aeolus family of projects
(http://aeolusproject.org), starting with packaging of dependencies not
yet in Fedora
(http://www.aeolusproject.org/page/Packages_Missing_From_Fedora)
_Contacts:_ link:https://fedoraproject.org/wiki/User:clalance[ Chris Lalancette <clalance@redhat.com>]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:clalance[ Chris Lalancette <clalance@redhat.com>]

View file

@ -0,0 +1,962 @@
= Ideas: Google Summer of Code 2012
Find an idea you like? Want to propose your own? See the Getting Started
Guide with GSoC:
link:index.html[Information]
////
You may be interested in ideas from
link:Summer_coding_ideas_for_2011[2011],
link:Summer_coding_ideas_for_2010[2010],
link:Summer_coding_ideas_for_2009[2009] and
link:Summer_coding_ideas_for_2008[2008].
////
Further, last year accepted ideas from the Fedora Project can be found
at http://www.google-melange.com/gsoc/org/google/gsoc2011/fedora[GSoC
2011 web site]
[[students-welcome]]
== Students Welcome
If you are a student looking forward to participate the GSoC 2012 with
Fedora, please feel free to browse the idea list which is still growing.
Do not hesitate to contact the mentors/ contributors as indicated in
this page for any related clarification. If you are new to The Fedora
project, following material would help you to get started. Further
please sign-up with the https://fedoraproject.org/wiki/FAS[Fedora
Account System(FAS)] if you are willing to continue with the Fedora
project. `#fedora-devel`, IRC channel can be used to get instant
support.
1. link:https://fedoraproject.org/wiki/Foundation[The Foundation]
2. http://docs.fedoraproject.org/en-US/index.html[Fedora Documentation]
3. link:https://fedoraproject.org/wiki/Communicate/IRCHowTo[IRC]
4. https://fedoraproject.org/wiki/FAS[Fedora Account System(FAS)]
5. link:https://fedoraproject.org/wiki/Development[Development]
[[supporting-mentors]]
== Supporting Mentors
Following contributors are also willing to support the GSoC 2012
program. (please feel free to add your self, attach the user page).
Sometimes there should be some backing up mentors to mentor if the
original mentor get busy with something for a short time period. In such
case we need help.
1. link:https://fedoraproject.org/wiki/User:Bckurera[Buddhike Kurera(Bckurera)]
2. link:https://fedoraproject.org/wiki/User:Quaid[Karsten Wade(Quaid)]
3. link:https://fedoraproject.org/wiki/User:Susmit[Susmit Shannigrahi(Susmit)]
4. link:https://fedoraproject.org/wiki/User:Duffy[ Mo Duffy (Duffy)]
5. link:https://fedoraproject.org/wiki/User:Mmorsi[ Mo Morsi]
[[draft-of-an-idea]]
== Draft of an idea
Please add your idea as follows.
[[project-name]]
=== Project name
_Status:_
_Summary of idea:_
_Knowledge prerequisite:_
_Skill level:_
_Contacts:_
_Mentor(s):_
_Notes:_
*!!!The draft was changed slightly, please add required field as
required!!!*
[[idea-list-for-gsoc-2012]]
== Idea list for GSoC 2012
[[applications-for-desktop-end-users]]
=== Applications for desktop end users
These are coding projects that benefit end users of the Linux desktop.
[[integrate-proxy-settings-and-network-connectionslocations]]
==== Integrate Proxy Settings and Network Connections(Locations)
_Status:_ Proposed
_Summary of idea:_ The system should use an appropriate networking
profile (e.g. Proxy settings) for each network connection.
Gnome 2 had a concept of network locations in its Network Proxy
configuration window. However, user should selected the appropriate
location whenever he moves between networks. This idea is about
providing an integration between NetworkManager and Desktop environments
so that a user can create network profiles for each network
location(connection) providing appropriate settings like proxy settings
which is the main proposed setting here. NetworkManager can have a
"Network Location" concept: for wireless networks, usually the name of
the network (ESSID) is usually enough. For wired connections, DHCP
servers can and usually do provide network's domain name, which can be
used as the name of the location. It is nice if a user can associate
each network location with a network settings profile which will be used
whenever the user is connected to that network automatically. So, when
you connect to a network, a corresponding network settings profile is
activated automatically.
_Knowledge prerequisite:_
_Skill level:_
_Contacts:_ link:https://fedoraproject.org/wiki/User:Hedayat[Hedayat Vatankhah]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:danw[Dan Winship]
_Notes:_ There is an entry with some description in
http://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/TODO[NetworkManager
TODO] which should be considered for the implementation
[[bringing-the-cloud-to-the-fedora-desktop]]
==== Bringing the Cloud to the Fedora Desktop
_Status:_ Proposed
_Summary of idea:_ http://www.aeolusproject.org[Aeolus] is an umbrella
project that provides an open source API which to control any number of
backend proprietary cloud providers. It allows us to write tooling that
is able to deploy, monitor, and manager instances to any cloud provider
such as EC2 or OpenStack in a Free and Open Manner. We need more tooling
to interface with the various Aeolus components from the Fedora desktop
(or any other) in novel ways such as command-line and gtk-based
applications to deploy instances to the cheapest cloud provider or the
one with the fastest response time, to monitor running instances using
various visualizations, and more closely integrate local data and code
w/ that on the cloud.
_Knowledge prerequisite:_
_Skill level:_
_Contacts:_ link:https://fedoraproject.org/wiki/User:_Mmorsi[Mo Morsi]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:_Mmorsi[Mo Morsi], link:https://fedoraproject.org/wiki/User:_Matthewwagner[ Matt Wagner]
as co-mentor
_Notes:_ Ping me (mmorsi on freenode) for more info about the Aeolus
project. All the components which to build images for the cloud and
control instances is in place and ready to go, just drop various bits
(they are interoperable and interchangable) into an environment to be
able to interact with the cloud, avoiding proprietary interfaces and
vendor lockin.
[[web-hosting-control-panel]]
==== Web hosting control panel
_Status:_ Proposed - Draft
_Summary of idea:_ develop a free alternative of cpanel / plesk control
panels, 100% compatible with fedora, and redhat enterprise Linux.
written in python.
the control panel will be able to create domains and automatically setup
apache, postfix, dovecot, mysql, postgresql bind etc...
_Knowledge prerequisite:_ apache, postfix, dovecot, mysql, postgresql,
proftpd, bind
_Skill level:_ Medium
_Contacts:_ itamarjp [AT] fedoraproject [DOT] org, kaustubh [DOT]
karkare [AT] gmail [DOT] com
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Ausil[ Dennis Gilmore]
_Notes:_ link:https://fedoraproject.org/wiki/User:Itamarjp/gsoc-2012[webhosting control panel draft]
[[assemble-a-toolchain-for-recording-screencasts-easily]]
==== Assemble a toolchain for recording screencasts easily
_Status:_ Proposed - Draft - Need a mentor
_Summary of idea:_ Creating screencasts on Fedora and post-processing
them for upload should be easy and fool proof.
The link:https://fedoraproject.org/wiki/Videos[Fedora Videos] project has been launched to bring
together a collection of screencasts that help people learn how to use
Fedora. There's only one major hurdle, though. Capturing really good
screencasts on Fedora, post-processing them to include an intro and
outro and other effects, and finally exporting them to an open format is
challenging. There are lots of different tools, but each one only gets
you part of the way there and you have to be the glue to make it all
work. And then there are the bugs.
The goal of this project is to assemble a toolchain (a recommended
collection of software available in the Fedora repositories) and write a
comprehensive tutorial for how to create an professional-looking
screencast. That may included chasing down & fixing bugs in the existing
tools, discovering new tools and getting them packaged and learning
about techniques in the environment around the computer, such as how to
select & setup a microphone or how to draft a good speaking script. One
possible task in the project is to add sound recording support to the
Gnome 3 desktop recorder. Currently, the desktop recorder only grabs the
video of the screen.
The student will get support and advice from the Fedora Videos team
since they are trying to learn how to create these screencasts.
_Knowledge prerequisite:_ gstreamer, video and sound editing, blender
_Skill level:_ Medium
_Contacts:_ link:https://fedoraproject.org/wiki/Videos[Fedora Videos Team]
_Mentor(s):_ -
_Notes:_
[[improve-fedoras-tablet-user-experience]]
==== Improve Fedora's Tablet User Experience
_Status:_ Proposed - Draft
_Summary of idea:_ Improving Fedora's Tablet User Experience.
The window managers/desktop environments officially supported by Fedora
do not match the expectations of people with low power touch devices.
Fedora features new technology to reduce system load and - requirements,
the user interface has not seen too much love.
Currently available interfaces for users are:
* Too Ressource Consuming
* Too Overloaded or
* Too Feature Poor
* Not Customizable With Reasonable Effort
The E17 Desktop Shell, developed as part of the
http://www.enlightenment.org[Enlightenment Project], is a perfect match.
It provides a rich interface, whilst consuming very little ressources.
The Enlightenment Foundation Libraries, on which E17 is built upon, were
chosen as Foundation Block of Tizen, the MeeGo successor backed by
Samsung and Intel. If things work out, E17 will be the first "real"
Desktop Shell for Wayland.
Though it already provides
http://dev.enlightenment.fr/~captainigloo/2011/08/25/elfe-and-the-composited-windows-list/[special
behaviour] for touchscreen devices through certain modules, there's
still room for improvement.
The overall goal of this project would be to improve the user experience
of people who want to use Fedora on low power devices such as tablets.
The student will get support and advice from the Enlightenment Project
developers.
_Knowledge prerequisite:_ C, X11, Wayland, Enlightenment Foundation
Libraries
_Skill level:_ Medium to High
_Contacts:_ Michael Bouchaud (yoz [at] efl [dot] so), link:https://fedoraproject.org/wiki/User:leif[ Leif
Middelschulte] (leif [dot] middelschulte [at] student [dot] kit [dot]
edu)
_Mentor(s):_ Michael Bouchaud (yoz [at] efl [dot] so)
_Notes:_ If this idea gets realized, a proper tablet spin can be
created, that honors the spirit of Fedora.
[[applications-for-programmers]]
=== Applications for programmers
[[implement-a-binding-translator-for-glusterfs]]
==== Implement a binding translator for GlusterFS
_Status:_ Proposed - Draft
_Summary of idea:_ In transporting data across networks, programmers
need GlusterFS language bindings to be able to create apps in their
language of choice. A language binding translator would greatly increase
the number of programmers who would be able to more easily extend
GlusterFS. It's also a fun project for someone wanting to get some
experience with multi-threaded architecture and design in the context of
distributed systems and data.
_Knowledge prerequisite:_ C, Python, embedded Python
_Skill level:_ Medium to High
_Contacts:_ johnmark [AT]redhat [DOT] com , abperiasamy [AT] gmail [DOT]
com
_Mentor(s):_ Anand Avati - Mentor, AB Periasamy - Co-mentor,
link:https://fedoraproject.org/wiki/User:johnmark[John Mark Walker] - Co-mentor
_Notes:_ -
[[implement-a-cassandranosql-connector-or-translator-for-glusterfs]]
==== Implement a Cassandra/NoSQL Connector or Translator for GlusterFS
_Status:_ Proposed - Draft
_Summary of idea:_ In general, there is a need for the ability to store
and access NoSQL data on general purpose distributed filesystems.
Currently, there are a host of single-purpose methods for storing and
retrieving NoSQL data, which are difficult to access from legacy
applications. Creating a NoSQL translator for GlusterFS would help
mitigate this problem and give developers more options for storing and
accessing "big data" in a way that is accessible via a variety of
standard toolkits and protocols.
_Knowledge prerequisite:_ C, GlusterFS internals
_Skill level:_ High
_Contacts:_ johnmark [AT]redhat [DOT] com , abperiasamy [AT] gmail [DOT]
com
_Mentor(s):_ Anand Avati - Mentor, AB Periasamy - Co-mentor,
link:https://fedoraproject.org/wiki/User:johnmark[John Mark Walker] - Co-mentor
_Notes:_ -
[[linux-kernel-project]]
=== Linux kernel project
[[implement-nfsfscache-writeback-cache]]
==== Implement nfs/fscache writeback cache
_Status:_ Proposed
_Summary of idea:_ Currently, the flashcache/bcache only works for local
filesystems. For network filesystems, nfs only supports write through
cache based on fscache/cachefiles. With wider adoption of SSD on nfs
client side, it would be great for nfs to support writeback cache to
speed up write intensive clients. This project would implement a
writeback mechanism for nfs, which need to make necessary changes to
kernel nfs, fscache and cachefiles modules, and take care of nfs
close-to-open semantics.
_Knowledge prerequisite:_ C, Linux kernel, nfs
_Skill level:_ High
_Contacts:_ bergwolf [AT] gmail [DOT] com
_Mentor(s):_ Peng Tao - Mentor
[[infrastructure-for-fedora-contributors-and-users]]
=== Infrastructure for Fedora contributors and users
[[implement-a-survey-infrastructure-for-the-fedora-project]]
==== Implement a survey infrastructure for the Fedora Project
_Status:_ Proposed - Draft
_Summary of idea:_ Surveys are important to increase the quality of a
service, and it is true for the Fedora project as well.(discussions
http://meetbot.fedoraproject.org/fedora-meeting/2011-12-24/apac.2011-12-24-04.00.log.html#l-310[1])
In this project it is supposed to implement a survey infrastructure
facility so that the contributors can use for various activities as per
the need.
The concern is to develop a simple web base survey system OR implement a
existing survey project and customized as required, so that contributors
can easily create surveys and dig for results as well. Linking with the
[FAS|FAS] is required. Further it should be compatible with anonymous
and open ID so that if the creator set for those authentication the
survey should allow those authentications. Statistics and other required
reports can be obtained. So that it is easy to analyse.
_Knowledge prerequisite:_ PHP, Python, Ruby are preferred, MySQL
(database handling), experience with Lime Survey would be an advantage
_Skill level:_ Medium
_Contacts:_ kevin [AT]scrye [DOT] com , bckurera [AT] fedoraproject
[DOT] org
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Kevin[Kevin Fenzi] - Mentor, link:https://fedoraproject.org/wiki/User:Bckurera[Buddhike
Kurera] Co-mentor.
_Notes:_ This idea is improving, please contact for upto-date details.
[[design-hub-floss-collaboration-for-floss-designers]]
==== Design Hub: FLOSS Collaboration for FLOSS Designers
_Status:_ Proposed - Draft
_Summary of idea:_ Free software designers don't have a great set of
tools to work with to collaborate with each other and with the community
on their design work. With this project, we'd like to make progress
towards fixing that. We have some disparate ideas / tools that we'd like
to be integrated:
* http://sparkleshare.org[Sparkleshare] - a git-backed, Dropbox like
system that will automatically check in and push files in project
directly to a shared git repo
* https://github.com/garrett/magicmockup[Magic Mockup] - a
coffeescript/javascript you can insert into an SVG of mockups to enable
interactive, click-through mockups
(http://blog.linuxgrrl.com/2011/08/12/interactive-svg-mockups-with-inkscape-javascript/[see
a demo here]
* http://blog.linuxgrrl.com/category/design-hub/[Design Hub] - an idea
and a ruby on rails prototype of a web front end that could potentially
serve as a front end to git repos with design assets *and* serve as well
as a front end to magic mockup mockups in said repos
* http://inkscape.org[Inkscape] is our preferred design tool of choice;
it would be great if it had some GUI integration with Magic Mockup,
Sparkleshare, and Design Hub
_Knowledge prerequisite:_ Ruby on Rails, web development, some UI design
chops
_Skill level:_ Intermediate
_Contacts:_ duffy at fedoraproject [dot] org
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Duffy[ Mo Duffy], link:https://fedoraproject.org/wiki/User:Emichan[ Emily Dirsh]
_Notes:_ We can provide a development platform for the web UI at
openshift.redhat.com. Also, note this project doesn't just benefit
Fedora designers, but it benefits all FLOSS designers.
[[implement-a-unit-test-framework-for-fedpkg-and-rpkg]]
==== Implement a unit test framework for fedpkg and rpkg
_Status:_ Proposed
_Summary of idea:_ Unit tests are good. Testing is good. fedpkg and it's
backend rpkg is a growing code base, gaining more and more contributors.
It lacks a unit test framework which would be very beneficial to the
code base for making sure contributions don't break the code in subtle
ways.
_Knowledge prerequisite:_
_Skill level:_
_Contacts:_ jkeating [AT]redhat [DOT] com
_Mentor(s):_ User:jkeating - Mentor
_Notes:_ This project is in python.
[[insight-use-cases-for-calendar]]
==== Insight use cases for calendar
Status: Proposed - Draft
Insight project requirement to be implemented. More details can be found
at the wiki, Insight_use_cases_for_calendar
_Knowledge prerequisite:_ Knowledge on PHP and Drupal would be essential
_Skill level:_ Medium
Contacts: link:https://fedoraproject.org/wiki/User:Pfrields[Paul W. Frields], link:https://fedoraproject.org/wiki/User:Herlo[Clint Savage] &
link:https://fedoraproject.org/wiki/Insight[Insight Team]
Mentor(s): link:https://fedoraproject.org/wiki/User:Tatica[Marรญa "tatica"], link:https://fedoraproject.org/wiki/User:Asrob[Peter Tibor Borsa]
and _Back-up Mentor :_ link:https://fedoraproject.org/wiki/User:Bckurera[Buddhika Kurera]
Notes: -
[[insight-use-cases-for-status-and-microblogging]]
==== Insight use cases for status and microblogging
Status: Proposed - Draft
These are use cases for status and microblogging services that we might
want to provide through Insight. More details can be found at the wiki,
Insight_use_cases_for_status_and_microblogging
_Knowledge prerequisite:_ Knowledge on Drupal would be essential.
_Skill level:_ High
Contacts: link:https://fedoraproject.org/wiki/User:Pfrields[Paul W. Frields]
Mentor(s): link:https://fedoraproject.org/wiki/User:Asrob[Peter Tibor Borsa], link:https://fedoraproject.org/wiki/User:Tatica[Marรญa "tatica"]
and _Back-up Mentor :_ link:https://fedoraproject.org/wiki/User:Bckurera[Buddhika Kurera]
Notes: Students who are interested on this topic is highly requested to
contact the mentors as the first step. Knowledge on Drupal would be
essential.
[[insight-use-cases-for-events]]
==== Insight use cases for events
Status: Proposed
This integration should facilitate Fedora ambassadors to organize their
events easily and at the same time should be compatible with the Insight
calender. Please refer to link:https://fedoraproject.org/wiki/Insight_use_cases_for_events[Insight use
cases for events.]
_Knowledge prerequisite:_ Knowledge on Drupal would be essential. PHP
and MySQL
_Skill level:_ Medium
Mentor(s): link:https://fedoraproject.org/wiki/User:Bckurera[Buddhika Kurera], link:https://fedoraproject.org/wiki/User:Asrob[Peter Tibor Borsa]
[[isitfedoraruby.com]]
==== isitfedoraruby.com
_Status:_ Proposed
_Summary of idea:_ Right now most Ruby programmers make use of the
http://rubygems.org/[gem] package management system to install Ruby
libraries on their system. The link:https://fedoraproject.org/wiki/Ruby_SIG[Fedora/Ruby] community
works hard to convert these gems into rpms for inclusion in the Fedora
stack, making use of various tooling such as
https://github.com/lutter/gem2rpm[gem2rpm]. We are looking for more
tools and capabilities around Ruby / Fedora integration, namely to
reduce the overhead in supporting Ruby on Fedora and to promote Fedora
as the de-facto platform for Ruby development.
As part of this, we would like to develop a isitfedoraruby.com website
(similar to http://isitruby19.com/[isitruby19] and other sites like it)
to promote the ruby stack on Fedora and the Fedora/Ruby development
effort, highlighting success stories, use cases, ways contributors can
help, etc
_Knowledge prerequisite:_
_Skill level:_
_Contacts:_ link:https://fedoraproject.org/wiki/User:_Mmorsi[Mo Morsi]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:_Mmorsi[Mo Morsi], link:https://fedoraproject.org/wiki/User:_Matthewwagner[ Matt Wagner]
as co-mentor
_Notes:_ Ping me (mmorsi on freenode) for more info. This project should
be written in Ruby
[[setup-gitlab-as-a-front-end-for-fedora-hosted-git-repositories]]
==== Setup Gitlab as a front end for Fedora Hosted git repositories
_Status:_ Proposed
_Summary of idea:_ To setup http://gitlabhq.com/[Gitlab] as a front end
for git repositories at [fedorahosted.org].
Git has fundamentally improved the way that developers share code. The
barrier to sharing code has virtually been eliminated. We are also
seeing the emergence of a new dynamic called "Social Coding". There's no
better example of this than Github.
Creating an environment to foster social coding, and a low barrier to
sharing code, requires more than just git, though. A lot of what makes
Github successful with git is the web-based front end. That explains why
there is such a dramatic difference between Github and fedorahosted.org,
and why many projects are moving to Github instead.
Fortunately, there is an open source application named Gitlab that
provides much of the interactive functionality and usability that is
found at Github. The goal of this project is to bring that experience to
fedorahosted.org by setting up Gitlab.
This project will require working with the infrastructure team to get
the necessary prerequisites installed, find a server to host the
application and configure the existing projects to be wired to this
interface.
_Knowledge prerequisite:_ Ruby, git, Linux system administration (web
servers, authentication)
_Skill level:_ Medium
_Contacts:_ link:https://fedoraproject.org/wiki/User:mojavelinux[Dan Allen] (general), link:https://fedoraproject.org/wiki/User:Vondruch[Vรญt
Ondruch] (packaging)
_Mentor(s):_ Ranjib Dey (tentative), Seth Vidal (tentative), Dmitriy
Zaporozhets (dzaporozhets), Ariejan de Vroom (ariejan)
_Notes:_ This idea is definitely something the Fedora project is
interested in pursuing. The work in this project will be carried on
after the project, and is an opportunity for a longer-term involvement
in Fedora.
See the discussion on the Fedora Infrastructure list about
implementation details:
http://lists.fedoraproject.org/pipermail/infrastructure/2012-March/011463.html
A demo of Gitlab can be found here: http://gitlabhq.com/demo.html
[[dorrie-a-web-interface-for-building-fedora-spinsremixes]]
==== Dorrie: A web-interface for building Fedora spins/remixes
_Status:_ Proposed
_Summary of idea:_ Contribute to Dorrie, and make it more usable, add
test coverage and deployable. Details at
link:https://fedoraproject.org/wiki/Remixes_Web_Interface[Dorrie].
_Knowledge prerequisite:_ Python, Django
_Skill level:_ Intermidiate
_Contacts:_ link:https://fedoraproject.org/wiki/User:Shreyankg[Shreyank Gupta]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Shreyankg[Shreyank Gupta], link:https://fedoraproject.org/wiki/User:Rtnpro[Ratnadeep
Debnath]
_Notes:_ Features that I am looking to target:
`*ย Userย management/FASย integration` +
`*ย Un-linerizeย theย workflow.` +
`*ย Defaultย wallpaper/Hostname/user-password/root-password` +
`*ย Customย repos/RPMs` +
`*ย Homeย directoryย content` +
`*ย Searchย Packages` +
`*ย Imageย type:ย ISO,ย virtย image,ย rawย disk`
Code at https://github.com/shreyankg/Dorrie, fork and send pull request,
if you are interested to contribute.
[[semi-automated-system-implementation-for-fwn]]
==== Semi-automated system implementation for FWN
_Status:_ Proposed
_Summary of idea:_ The idea behind this project is to make the
link:https://fedoraproject.org/wiki/FWN[Fedora Weekly News] composing less cumbersome and
semi-automated.
_Knowledge prerequisite:_ PHP, Python, Parsing, XML
_Skill level:_ Intermediate
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Bckurera[Buddhike Kurera]
_Notes:_ Contact the mentor if anyone is interested.
[[linux-system-services]]
== Linux system services
[[improving-fedora-packaging]]
=== Improving Fedora packaging
[[java-apiabi-changes-checker]]
==== Java API/ABI changes checker
_Status:_ Proposed
_Summary of idea:_ Libraries written in Java add, remove and modify
their public interfaces from time to time. This is normal, but currently
it is very hard to guess effect an update of library to new version will
have on rest of the system. What is needed is a tool that would be able
to tell us that "With update of package java-library to version 2.0,
function X(b) has been removed. This function is used in package
java-app". There are already a few open-source projects that can do some
of the analysis needed. This would be of interest to whole Java world I
believe and would enable safer and easier updates. To get an idea of
similar projects see http://linuxtesting.org/upstream-tracker/java/[Java
API compliance checker] and
https://sites.google.com/site/obriencj/projects/java-classfile-python-module[Python
Javaclass project]
_Knowledge prerequisite:_ Knowledge of Java (inheritance rules,
generics, etc.) and probably some scripting language(s)
_Skill level:_ Fairly high
_Contacts:_ link:https://fedoraproject.org/wiki/User:Sochotni[Stanislav Ochotnickรฝ]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Sochotni[Stanislav Ochotnickรฝ]
_Notes:_ Don't hesitate to get in touch via IRC (sochotni@FreeNode) or
email (contact on my user page).
[[aur-clone-for-fedora]]
==== AUR Clone for Fedora
_Status:_ Proposed - Students' Idea - Need a mentor
_Summary of idea:_ The idea is to make an AUR clone for Fedora where
users can submit buildfiles, which need to be hosted. These set of files
can compile packages on the user side, and installed locally.
The benefit of this method is:
1. No need to host the entire packages (saving space on servers hosting
the RPMs)
2. Make changes to the buildfile, and not compile the package
3. Can pull sources from any version control system/stored tarballs to
make a very upto-date package. (See blog entry for an example)
_Contacts:_ link:https://fedoraproject.org/wiki/User:Anujmore[Anuj More]
_Notes:_ Need mentor. Need advice on feasibility of the software and
issues that can arise. Also, read the extensive blog post on
http://execat.blogspot.in/2012/03/aur-clone-for-fedora.html[my blog].
Analogy: This is a lot like "having your own library" vs "getting a book
from a bookstore". If you refer a book often, you'd keep it in your
library. This would occupy space and consume resources. Otherwise, you'd
just pull out a separate paper with instructions about the bookstore to
find the book, and fetch the book from the store. Though the first
method is hassle-free, it is not possible to have all the books in the
world with you.
[[maven-foss-repository-extension]]
==== Maven FOSS Repository Extension
_Status:_ Proposed
_Summary of idea:_ With the inception of Maven we have a means to
standardize the building of Java projects. However it has also resulted
in the usage of a very wide dependency set by these Java projects. This
makes it very hard to integrate those projects on a single platform (be
it Fedora or JBoss Application Server (or the combination)).
In essence during packaging all these dependencies must be lined up to
form a single consistent component set. Thus each project will only have
those components available which are actually available on the target
platform. This is very hard to enforce using standard Maven setup.
For Fedora I'm envisioning a Maven extension that makes sure only
sanctioned components are used during the build (without putting a
burden on the packager). This will allow developers who are not on
Fedora to also build with this extension and thus verify (and fix)
issues which are the result of "Fedora packaging".
A prototype can be viewed at
https://github.com/wolfc/fedora-maven[Fedora Maven Extension].
_Knowledge prerequisite:_ Knowledge of Maven
_Skill level:_ Medium
_Contacts:_ http://community.jboss.org/people/wolfc[Carlo de Wolf]
_Mentor(s):_ http://community.jboss.org/people/wolfc[Carlo de Wolf]
_Notes:_ You can find me at irc.freenode.net #fedora-java wolfc
[[fedora-spins-and-remixes]]
=== Fedora Spins and remixes
[[fedora-audio-creation-spin]]
==== Fedora Audio Creation Spin
_Status:_ Proposed
_Summary of idea:_ To create a Fedora Audio spin showcasing the rich and
diverse landscape of Linux Audio production.
The link:https://fedoraproject.org/wiki/Audio_Creation[Fedora Audio Creation SIG] is a collection of
enthusiastic Fedora users driven by the common desire to make the best
Linux distribution also the best for Music creation and Audio
Production.
We are looking for one or two candidates to assist us in the complete
development cycle of this project. Tasks may include (but not limited
to):
* packaging open source audio projects
* porting certain packages from the PlanetCCRMA repository into Fedora
* working/communicating with the Fedora Audio community to determine the
final make-up of the spin
* help coordinate pushing the spin through the Spins Review process
* creating/testing kickstart files
* developing small applications/scripts to help solve hardware and audio
system configuration requirements
* communicating with Fedora Audio SIG, Fedora Desktop team and other
Fedora teams
* organizing QA testcases and test days
Ideally, interested candidates will have a passion for Music/Audio
Production. Basic scripting knowledge and the ability to compile
projects from source is a must. Sponsored packagers / knowledge of the
Fedora Packaging Guidelines and/or the desire to continuing maintaining
the packaged software post-project considered a plus.
Interested? Why wait, submit an audio package for review and get
sponsored (Join_the_package_collection_maintainers).
_Knowledge prerequisite:_ Scripting/programming (bash/python)
_Skill level:_ Rudimentry
_Contacts:_ link:https://fedoraproject.org/wiki/User:bsjones[Brendan Jones]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:bsjones[Brendan Jones] and link:https://fedoraproject.org/wiki/User:Crantila[Christopher
Antila]
[[fedora-jboss-spin]]
==== Fedora JBoss Spin
_Status:_ Proposed
_Summary of idea:_ To create a Fedora JBoss spin that helps Java
developers get started quickly using JBoss software.
The link:https://fedoraproject.org/wiki/SIGs/Java[Java SIG] and the link:https://fedoraproject.org/wiki/JBossAS7[JBoss AS 7 on Fedora
Initiative] is a cross-section of enthusiastic Fedora users driven by
the common desire to make the Fedora the best OS for developing with
JBoss software.
We are looking for one or two candidates to assist us in the complete
development cycle of this project. The bulk of the effort lies in
packaging open source Java and JBoss projects and integrating many of
the packages from the JBoss Community into Fedora. Packages in
particular include JBoss AS 7, JBoss Tools and JBoss Forge. Other tasks
may include the testing of kickstart files and developing configurations
to better integrate with the Fedora Desktop.
There could be two variants of this spin (feel free to choose). One is
on the developer needing a good desktop to create JBoss-based
applications (things like Eclipse + JBoss Tools, AS 7, Forge, a
database, and so on). The other focus is on getting a server setup so
that it can run the application. That would also be where the upcoming
OpenShift toolset will come into play.
Another critical component is the interoperability with Eclipse. It's
important that a setup for Eclipse gets augmented for a developer to
install/implement the JBoss specific tools and plugins. A decision needs
to be done, whether updates of Eclipse should be done via RPMs or via a
Eclipse repository. JBossAS7 is targeting a maven repository setup - one
option could simply be to tie into this repository.
Ideally, interested candidates will have a passion for Java development
using JBoss software. Basic scripting knowledge and the ability to
compile Java projects from source is a must. Sponsored packagers /
knowledge of the Fedora Packaging Guidelines and/or the desire to
continuing maintaining the packaged software post-project considered a
plus, but not required.
Interested? Why wait, submit a Java package for review and get sponsored
(link:https://fedoraproject.org/wiki/Join_the_package_collection_maintainers[Join the package
collection maintainers]).
_Knowledge prerequisite:_ Scripting/programming (Java, shell)
_Skill level:_ Rudimentary
_Contacts:_ link:https://fedoraproject.org/wiki/Goldmann[Marek Goldmann],
http://community.jboss.org/people/wolfc[Carlo de Wolf],
http://community.jboss.org/people/alrubinger[Andrew Rubinger],
https://community.jboss.org/people/maxandersen[Max Andersen],
link:https://fedoraproject.org/wiki/User:bit4man[Peter Larsen]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Goldmann[Marek Goldmann],
http://community.jboss.org/people/wolfc[Carlo de Wolf]
[[educational-application-for-fedora-robotics-suite]]
==== Educational Application for Fedora Robotics Suite
_Status:_ Proposed
_Summary of Idea:_ Create an educational app introducing software from
Fedora Robotics Suite
The link:https://fedoraproject.org/wiki/SIGs/Robotics[Fedora Robotics SIG] is creating a
link:https://fedoraproject.org/wiki/Features/RoboticsSuite[Robotics Suite] consisting of many packages
useful in robotics. We want to develop a demonstration application
introducing new users step by step to core packages like
http://www.fawkesrobotics.org[Fawkes] and
http://playerstage.sourceforge.net[Player/Stage]. It would feature
multiple game-like levels with increasing complexity. The general task
would be to instruct the robot to fulfill a specific task in a
simulation environment.
_Knowledge prerequisite:_ Developing this requires a strong background
in C++, a background in robotics is preferred but not necessary. You
should be able to familiarize yourself with new software quickly. User
visible parts will require GUI programming using Gtkmm.
_Skill level:_ Medium to High
_Contacts:_ link:https://fedoraproject.org/wiki/Timn[Tim Niemueller]
_Mentor(s):_ link:https://fedoraproject.org/wiki/Timn[Tim Niemueller]
[[applications-for-systems-administrators]]
=== Applications for systems administrators
[[rhq-agent-to-interface-with-matahari]]
==== RHQ-agent to interface with Matahari
_Status:_ Proposed
_Summary of idea:_ Write a RHQ-agent in Python and make it interface
with Matahari to pick up metrics that are provided by Matahari from
Fedora or RHEL systems. The agent would talk to the RHQ server via the
REST api and push metrics to RHQ etc. This agent will not implement the
full functionality of the RHQ java agent.
While RHQ is written in Java, this project does not need any Java
knowledge.
_Knowledge prerequisite:_ Python, Linux system administration, qpid,
principles of REST
_Skill level:_ Medium to High
_Contacts:_ Heiko Rupp
_Mentor(s):_ Heiko Rupp
_Notes:_ RHQ wiki is at http://rhq-project.org/
[[applications-for-testers]]
=== Applications for Testers
[[fedora-gooey-karma]]
==== Fedora Gooey Karma
_Status:_ Proposed
_Summary of idea:_ link:https://fedoraproject.org/wiki/Fedora_Easy_Karma[Fedora Easy Karma] is a CLI
application to help testers apply karma to installed updates and while
it's great at doing so, it doesn't display much other information on
what an update is supposed to fix or what can be done to test a
particular update. A GUI tool that pulls in more information on packages
under test would help in the testing process and hopefully help
encourage less techical users to start testing packages.
_Knowledge prerequisite:_ GUI tool kit (Qt or GTK), python
_Skill level:_ intermediate
_Contacts:_ link:https://fedoraproject.org/wiki/User:Tflink[Tim Flink (tflink)]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Tflink[Tim Flink (tflink)]
_Notes:_ A longer description and some rough mockups
http://blog.tirfa.com/gooey-karma[can be found here]
[[fedora-on-demand-build-service]]
==== Fedora On-Demand Build Service
_Status:_ Proposed (Student Idea)
_Summary of idea:_ During the testing of Fedora releases, test images
are often useful as smoke tests before full TC/RC composes, as baselines
for specific test days or for automated installation testing in AutoQA.
The idea is to make an *on-demand* Web-based build service (similar to
https://build.opensuse.org/[Open Suse Build Service] and
http://www.slax.org/build.php[Slax]) which users/developers can use to
make custom Fedora based distributions. The service would be capable of
building and hosting images (boot iso, installation DVDs and live
images) made up of builds from stable repositories in addition to side
repos containing specific builds from both updates-testing and koji
builds that have yet to be pushed to any repos. The service should also
also have a RESTful API (or similar).
_Knowledge prerequisite:_ Python, Fedora repositories
_Knowledge nice-to-have_: Fedora image building, testing, Celery
_Skill level:_ intermediate to advanced
_Contacts:_ link:https://fedoraproject.org/wiki/User:Amitksaha[Amit Saha]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Tflink[Tim Flink (tflink)]
_Notes:_ Looking for co-mentors, will update this idea if any are found

View file

@ -0,0 +1,261 @@
= Google Summer of Code 2012
image:Gsoc-2012-logo.png[Gsoc-2012-logo.png,title="Gsoc-2012-logo.png"]
The Fedora project represented the Google Summer of Code program for 6
years and willing to participate on year 2012 program as well. This wiki
page serves as the GSoC portal. Please feel free to contact us via
https://admin.fedoraproject.org/mailman/listinfo/summer-coding[summer-coding@lists.fedoraproject.org]
for clarifications/ more info.
[[students]]
== Students
Students who are looking for challenges and would like to contribute to
the worlds' leading and innovative Linux Distro, this could be the
chance. Please feel free to contact and refer to the material and start
contacting mentors.
1. xref:ideas.adoc[Main Idea Page]
[[why-spend-your-summer-working-on-foss]]
=== Why spend your summer working on FOSS?
When you work in the open on free software, you create a body of work
that follows you for the rest of your life. Rather than a coding
assignment done by thousands of other students and relegated to the
bottom of the bit drawer at semester's end, working in FOSS is a chance
to contribute to a living project.
Working in FOSS gives you a chance to:
* Work with real world large codebases.
* Collaborate with real engineers and other professional experts.
* Contribute to something meaningful while learning and earning student
value.
* Learn tools and processes that are just like what you are going to use
if you work in technology after graduation.
* Make friends and contacts around the globe.
* Possibly attract attention that gets you an internship or job after
graduation.
* Create life time connections.
[[why-work-with-fedora]]
=== Why work with Fedora?
Our project is large and diverse. We are very experienced at working
with new contributors and helping them be successful.
Many long-time contributors continue to be around, lending expertise and
mentoring. People who stay around the community and do good work are
noticed. They get hired for jobs from it, including being hired by Red
Hat. Past Google Summer of Code students were hired by Red Hat, as well
as interns in various positions. This is just an example, as experience
and reputation in the Fedora Project communities is influential on your
career in many ways.
As long-standing communities with many facets, it is possible for you to
find many rewarding sub-projects to work on.
You should know that contributing to FOSS doesn't require you to have
super programming skills, or super-anything else. You just need be
interested and curious enough, and be willing to become comfortable
being productively lost. This is the state of learning through finding
your way around and figuring things out.
[[step-by-step-guide-for-students]]
=== Step-by-step guide for students
Please check the link:https://fedoraproject.org/wiki/GSOC_Guide_students[Step by Step guide for
students].
[[students-application]]
=== Student's application
Please use the following application template to apply for the program.
link:https://fedoraproject.org/wiki/GSOC_2012/Student_Application_Template[Student application template]
[[administration]]
== Administration
In order to clarify matters/ obtain more info related with the GSoC 2012
with Fedora please contact the administrators directly (please consider
CCing the summer-coding list where ever possible).
1. link:https://fedoraproject.org/wiki/User:Bckurera[Buddhike Kurera(Bckurera)] - Administrator
2. link:https://fedoraproject.org/wiki/User:Quaid[Karsten Wade(Quaid)] - Backup-Admin
3. link:https://fedoraproject.org/wiki/User:Susmit[Susmit Shannigrahi(Susmit)] - Fall-back Admins
4. link:https://fedoraproject.org/wiki/User:Duffy[ Mo Duffy (Duffy)] - Fall-back Admins
5. link:https://fedoraproject.org/wiki/User:Mmorsi[ Mo Morsi] - Fall-back Admins
[[mentors]]
== Mentors
The contributors of the Fedora Project can propose ideas and mentor
them. Please feel free to check following links and please add your
ideas to the main idea page, further if you are not interested in
proposing an idea but still want to support the program please check the
students' idea page and pick one as per your interest.
1. http://en.flossmanuals.net/GSoCMentoring/[Manual on Mentoring]
2. xref:ideas.adoc[Main Idea Page]
3. link:https://fedoraproject.org/wiki/Summer_coding_ideas_for_2012/Students_Idea[Students' Idea page]
[[how-to-work-with-students]]
=== How to work with students
* One way is to provide an idea for students to work on. This idea might
be very well planned out, in which case you may need a high-level of
contact with the student to get it implemented correctly.
* It is harder to find success where you are completely certain of how
an idea needs to be implemented; finding a student with the skills and
interest to implement a specific solution is a lot harder than finding a
student with enough skills to respond to a use case need.
* Where you can have looser ideas, you may be able to find a student who
works as a sort-of intern who can implement a solution to a use case you
have. In past experiences, students going after a use case are more
likely to get somewhere with self-direction.
* You may also want to work with a student who brings an idea to your
sub-project. This requires a different level of communication throughout
the project, but can be the most rewarding.
[[mentor-responsibilities]]
=== Mentor responsibilities
You are an essential part of the student's success, the project's
success, and the success for your overall organization (Fedora,
JBoss.org, or another).
Your responsibilities include:
* Being an interface for an identified sub-project or SIG in Fedora.
* Helping students communicate with the overall project and any
upstreams.
* Be the final, accountable person for deciding if the student is
successful or not, which affects payment.
[[list-of-mentors]]
=== List of Mentors
Please feel free to contact mentors to clarify the related matters.
* link:https://fedoraproject.org/wiki/User:Hedayat[Hedayat Vatankhah]
* link:https://fedoraproject.org/wiki/User:Mmorsi[Mo Morsi]
* link:https://fedoraproject.org/wiki/User:Ausil[Dennis Gilmore]
* link:https://fedoraproject.org/wiki/User:toshio[Toshio kuratomi]
* link:https://fedoraproject.org/wiki/User:Kevin[Kevin Fenzi]
* link:https://fedoraproject.org/wiki/User:Bckurera[Buddhike Kurera]
* link:https://fedoraproject.org/wiki/User:Duffy[Mo Duffy]
* link:https://fedoraproject.org/wiki/User:Emichan[Emily Dirsh]
* link:https://fedoraproject.org/wiki/User:jkeating[Jkeating (at) fedoraproject (dot) org]
* link:https://fedoraproject.org/wiki/User:Tatica[Marรญa "tatica"]
* link:https://fedoraproject.org/wiki/User:Asrob[Peter Tibor Borsa]
* link:https://fedoraproject.org/wiki/User:bsjones[Brendan Jones]
* link:https://fedoraproject.org/wiki/User:Sochotni[Stanislav Ochotnickรฝ]
* link:https://fedoraproject.org/wiki/User:Timn[Tim Niemueller]
* link:https://fedoraproject.org/wiki/User:Bergwolf[ Peng Tao]
* link:https://fedoraproject.org/wiki/User:Tflink[ Tim Flink]
[[list-of-registered-members]]
==== List of registered members
List of mentors who are registered with Google and added to the project
as a mentor are listed here;
link:https://fedoraproject.org/wiki/GSOC_2012/Registered_Mentors_Registered_mentor_list[GSOC_2012/Registered_Mentors
Registered mentor list]
[[communication]]
== Communication
*Mailing List (GSOC related) :*
https://admin.fedoraproject.org/mailman/listinfo/summer-coding[https://admin.fedoraproject.org/mailman/listinfo/summer-coding] +
*Mailing List (Technical) :*
http://lists.fedoraproject.org/mailman/listinfo/devel[http://lists.fedoraproject.org/mailman/listinfo/devel] +
*IRC :* Channel - link:https://webchat.freenode.net/?channels=#fedora-summer-coding[#fedora-summer-coding] or link:https://webchat.freenode.net/?channels=#fedora-devel[#fedora-devel] on Freenode
[[time-line]]
== Time Line
Reference :
http://www.google-melange.com/document/show/gsoc_program/google/gsoc2012/faqs#timeline[official timeline]
* March 9: Mentoring organization application deadline.
* March 12-15: Google program administrators review organization
applications.
* March 16: List of accepted mentoring organizations published on the
Google Summer of Code 2012 site.
* March 17-25: Would-be student participants discuss application ideas
with mentoring organizations.
* March 26: Student application period opens.
* April 6: Student application deadline.
Interim Period: Mentoring organizations review and rank student
proposals; where necessary, mentoring organizations may request further
proposal detail from the student applicant.
* April 20: All mentors must be signed up and all student proposals
matched with a mentor. Student ranking/scoring deadline.
* April 23: Accepted student proposals announced on the Google Summer of
Code 2012 site.
Community Bonding Period: Students get to know mentors, read
documentation, get up to speed to begin working on their projects.
* May 21: Students begin coding for their Google Summer of Code
projects;
Interim Period: Mentors give students a helping hand and guidance on
their projects.
* July 9: Mentors and students can begin submitting mid-term
evaluations.
* July 13: Mid-term evaluations deadline;
Google begins issuing mid-term student payments provided passing student
survey is on file. Interim Period: Mentors give students a helping hand
and guidance on their projects.
* August 13: Suggested 'pencils down' date. Take a week to scrub code,
write tests, improve documentation, etc.
* August 20: Mentors, students and organization administrators can begin
submitting final evaluations to Google.
* August 24: Final evaluation deadline
* August 27: Final results of Google Summer of Code 2012 announced
* August 31: Students can begin submitting required code samples to
Google
* October 20 - 21: Mentor Summit at Google.
[[organization-application]]
== Organization Application
*Status :* Submitted +
*Link :*
link:https://fedoraproject.org/wiki/GSoC_2012_org_application[application]
[[ideas-page]]
== Ideas Page
*Status :* Open for Ideas +
*Link :*
xref:ideas.adoc[ideas]
We encourage students to provide creative yet useful ideas towards the
Fedora project as well. Please use
link:https://fedoraproject.org/wiki/Summer_coding_ideas_for_2012/Students_Idea[Student Idea] page to
note your idea. The idea will be moved to the original idea page once
the idea is picked by a mentor.
[[links]]
== Links
1. link:https://fedoraproject.org/wiki/Foundation[The Foundation]
2. https://developers.google.com/open-source/gsoc/faqge[GSoC FAQ]
3. http://docs.fedoraproject.org/en-US/index.html[Fedora Documentation]
4. link:https://fedoraproject.org/wiki/Communicate/IRCHowTo[IRC]
5. link:https://fedoraproject.org/wiki/Development[Development]

View file

@ -0,0 +1,47 @@
= Student application template: Google Sumer of Code 2012
....
=== Contact Information ===
Email Address:
Telephone:
Blog URL:
Freenode IRC Nick:
NOTE: We require all students to blog about the progress of their project time to time.
You are strongly encouraged to register on the Freenode network and participate in our
IRC channels. For more information and other instructions, see:
https://fedoraproject.org/wiki/GSOC_2012
Please answer following questions.
=== Why do you want to work with the Fedora Project? ===
=== Do you have any past involvement with the Fedora project or with any another open
source project as a contributor (if possible please add some references as well)? ===
=== Did you participate with the past GSoC programs, if so which years, which organizations? ===
=== Will you continue contributing/ supporting the Fedora project after the GSoC 2012
program, if yes, which team(s)/area(s), you are interested with? ===
=== Why should we choose you over the other applicants? ===
=== Proposal Description ===
Please describe your proposal in detail. Include:
* An overview of your proposal
* The need you believe it fulfills
* Any relevant experience you have
* How do you intend to implement your proposal
* Final deliverable of the proposal at the end of the period
* A rough timeline for your progress
* Any other details you feel we should consider
=== Have you communicated with a potential mentor? If so, who? ===
....

View file

@ -0,0 +1,926 @@
= Ideas: Google Summer of Code 2013
Find an idea you like? Want to propose your own? See the Getting Started
Guide with GSoC:
link:index.html[Information 2013]
////
You may be interested in ideas from
link:Summer_coding_ideas_for_2012[2012],
link:Summer_coding_ideas_for_2011[2011],
link:Summer_coding_ideas_for_2010[2010],
link:Summer_coding_ideas_for_2009[2009] and
link:Summer_coding_ideas_for_2008[2008].
////
Further, last year accepted ideas from the Fedora Project can be found
at http://www.google-melange.com/gsoc/org/google/gsoc2011/fedora[GSoC
2013 web site]
[[students-welcome]]
== Students Welcome
If you are a student looking forward to participate the GSoC 2013 with
Fedora, please feel free to browse the idea list which is still growing.
Do not hesitate to contact the mentors/ contributors as indicated in
this page for any related clarification. If you are new to The Fedora
project, following material would help you to get started. Further
please sign-up with the https://fedoraproject.org/wiki/FAS[Fedora
Account System(FAS)] if you are willing to continue with the Fedora
project. `#fedora-devel`, IRC channel can be used to get instant
support.
1. link:https://fedoraproject.org/wiki/Foundation[The Foundation]
2. http://docs.fedoraproject.org/en-US/index.html[Fedora Documentation]
3. link:https://fedoraproject.org/wiki/Communicate/IRCHowTo[IRC]
4. link:https://fedoraproject.org/wiki/FAS[Fedora Account System(FAS)]
5. link:https://fedoraproject.org/wiki/Development[Development]
[[supporting-mentors]]
== Supporting Mentors
Following contributors are also willing to support the GSoC 2013
program. (please feel free to add your self, attach the user page).
Sometimes there should be some backing up mentors to mentor if the
original mentor get busy with something for a short time period. In such
case we need help.
1. link:https://fedoraproject.org/wiki/User:Bckurera[Buddhike Kurera(Bckurera)]
2. link:https://fedoraproject.org/wiki/User:Kushal[Kushal Das(Kushal)]
3. link:https://fedoraproject.org/wiki/User:Myth17[Nitish Upreti(Myth17)]
[[draft-of-an-idea]]
== Draft of an idea
Please add your idea as follows.
[[project-name]]
=== Project name
_Status:_
_Summary of idea:_
_Knowledge prerequisite:_
_Skill level:_
_Contacts:_
_Mentor(s):_
_Notes:_
*!!!The draft was changed slightly, please add required field as
required!!!*
[[idea-list-for-gsoc-2013]]
== Idea list for GSoC 2013
[[collaboration-projects-with-mate-project]]
=== Collaboration projects with MATE project
[[gtk3-support]]
==== GTK3 support
_Status:_ Proposed - Draft
_Summary of idea:_ GTK+ (GIMP Toolkit) is the cross-platform widget
toolkit used in MATE to create graphical user interfaces. GTK3, released
in 2011, and in Fedora since F14, brings a lot of improvements. Add GTK3
support to MATE, keeping the traditional desktop metaphor, is one of the
goals of the MATE Desktop project.
_Knowledge prerequisite:_ C, GTK.
_Skill level:_ Medium
_Contacts:_ link:https://fedoraproject.org/wiki/User:Stefanok[Stefano Karapetsas]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Stefanok[Stefano Karapetsas], stevezesch2 [AT] gmail
[DOT] com
_Notes:_ -
[[wayland-support-in-marco-window-manager]]
==== Wayland support in marco window manager
_Status:_ Proposed - Draft
_Summary of idea:_ Wayland is a next generation display server protocol
with the aim to replace the old X server. With Wayland, the window
managers will become display servers and compositors at same time, using
the Wayland library. Wayland is already available in Fedora, and KDE and
GNOME already are moving in this direction, so this could be a great
improvement for both MATE and Fedora.
_Knowledge prerequisite:_ C, X11.
_Skill level:_ High
_Contacts:_ link:https://fedoraproject.org/wiki/User:Stefanok[Stefano Karapetsas]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Stefanok[Stefano Karapetsas], stevezesch2 [AT] gmail
[DOT] com
_Notes:_ -
[[collaboration-projects-with-geeklog-project]]
=== Collaboration projects with Geeklog project
Please note that only *one* of the following Geeklog projects will be
accepted under the Fedora umbrella!
[[geeklog-install-script-refinements]]
==== Geeklog: Install Script Refinements
_Status:_ Proposed
_Summary of idea:_ The install script is one of the very first things a
new Geeklog user encounters. Therefore, it is important that it is easy
to use, supports the user in installing, updating and migrating a
Geeklog site while being robust and providing helpful hints and error
messages.
The current install script was originally implemented as a GSoC project
in 2007 and further improved upon in GSoC 2008. We are still pretty
happy with it, but there's always room for improvement. And this is what
this GSoC project is about - we are looking for an _evolution_, not a
_revolution_.
_Knowledge prerequisite:_ PHP, MySQL (possibly also PostgreSQL and MS
SQL), basic webserver knowledge
_Skill level:_ Low - Medium
_Contacts:_ link:https://fedoraproject.org/wiki/User:dhaun[Dirk Haun]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:dhaun[Dirk Haun]
_Notes:_
http://wiki.geeklog.net/index.php/SoC_install_script_refinements
[[geeklog-crowdsourcing-translations]]
==== Geeklog: Crowdsourcing Translations
_Status:_ Proposed
_Summary of idea:_ Geeklog has been translated into over 30 languages,
but many of those translations haven't been updated in a while. The
current way of editing a PHP file is just too awkward, error prone, and
not very intuitive (since you can't see the context in which a text
string is used).
We're looking for a way to make translating Geeklog easier, especially
for people who do not have a knowledge of PHP. Also, for new
translations, the sheer amount of text to translate can be discouraging.
The idea is to address both of these problems by crowdsourcing.
_Knowledge prerequisite:_ PHP, SQL, JavaScript
_Skill level:_ Medium - High
_Contacts:_ link:https://fedoraproject.org/wiki/User:dhaun[Dirk Haun]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:dhaun[Dirk Haun]
_Notes:_
http://wiki.geeklog.net/index.php/SoC_crowdsourcing_translations
[[geeklog-provide-php-session-handling]]
==== Geeklog: Provide PHP Session Handling
_Status:_ Proposed
_Summary of idea:_ Geeklog currently uses custom session management to
maintain users session information. The custom session implementation is
antique and needs to be upgraded to a fully supported session management
system such as the one provided by PHP Sessions. The implementation
needs to be secure and should cache user data between page loads of a
session.
Given Geeklog's focus on security, this implementation must be hardened
against the usual attacks.
_Knowledge prerequisite:_ PHP, PHP / Web Security
_Skill level:_ Medium - High
_Contacts:_ link:https://fedoraproject.org/wiki/User:dhaun[Dirk Haun]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:dhaun[Dirk Haun]
_Notes:_ http://wiki.geeklog.net/index.php/SoC_php_sessions
[[applications-for-desktop-end-users]]
=== Applications for desktop end users
These are coding projects that benefit end users of the Linux desktop.
[[integrate-proxy-settings-and-network-connectionslocations]]
==== Integrate Proxy Settings and Network Connections(Locations)
_Status:_ Proposed
_Summary of idea:_ The system should use an appropriate networking
profile (e.g. Proxy settings) for each network connection.
Gnome 2 had a concept of network locations in its Network Proxy
configuration window. However, user should selected the appropriate
location whenever he moves between networks. This idea is about
providing an integration between NetworkManager and Desktop environments
so that a user can create network profiles for each network
location(connection) providing appropriate settings like proxy settings
which is the main proposed setting here. NetworkManager can have a
"Network Location" concept: for wireless networks, usually the name of
the network (ESSID) is usually enough. For wired connections, DHCP
servers can and usually do provide network's domain name, which can be
used as the name of the location. It is nice if a user can associate
each network location with a network settings profile which will be used
whenever the user is connected to that network automatically. So, when
you connect to a network, a corresponding network settings profile is
activated automatically.
_Knowledge prerequisite:_
_Skill level:_
_Contacts:_ link:https://fedoraproject.org/wiki/User:Hedayat[Hedayat Vatankhah]
_Mentor(s):_
_Notes:_ There is an entry with some description in
http://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/TODO[NetworkManager
TODO] which should be considered for the implementation
[[web-hosting-control-panel]]
==== Web hosting control panel
_Status:_ Proposed - Draft
_Summary of idea:_ develop a free alternative of cpanel / plesk control
panels, 100% compatible with fedora, and redhat enterprise Linux.
written in python.
the control panel will be able to create domains and automatically setup
apache, postfix, dovecot, mysql, postgresql bind etc...
_Knowledge prerequisite:_ apache, postfix, dovecot, mysql, postgresql,
proftpd, bind
_Skill level:_ Medium
_Contacts:_ itamarjp [AT] fedoraproject [DOT] org, kaustubh [DOT]
karkare [AT] gmail [DOT] com
_Mentor(s):_
_Notes:_ link:https://fedoraproject.org/wiki/User:Itamarjp/gsoc-2012[webhosting control panel draft]
[[assemble-a-toolchain-for-recording-screencasts-easily]]
==== Assemble a toolchain for recording screencasts easily
_Status:_ Proposed - Draft - Need a mentor
_Summary of idea:_ Creating screencasts on Fedora and post-processing
them for upload should be easy and fool proof.
The link:https://fedoraproject.org/wiki/Videos[Fedora Videos] project has been launched to bring
together a collection of screencasts that help people learn how to use
Fedora. There's only one major hurdle, though. Capturing really good
screencasts on Fedora, post-processing them to include an intro and
outro and other effects, and finally exporting them to an open format is
challenging. There are lots of different tools, but each one only gets
you part of the way there and you have to be the glue to make it all
work. And then there are the bugs.
The goal of this project is to assemble a toolchain (a recommended
collection of software available in the Fedora repositories) and write a
comprehensive tutorial for how to create an professional-looking
screencast. That may included chasing down & fixing bugs in the existing
tools, discovering new tools and getting them packaged and learning
about techniques in the environment around the computer, such as how to
select & setup a microphone or how to draft a good speaking script. One
possible task in the project is to add sound recording support to the
Gnome 3 desktop recorder. Currently, the desktop recorder only grabs the
video of the screen.
The student will get support and advice from the Fedora Videos team
since they are trying to learn how to create these screencasts.
_Knowledge prerequisite:_ gstreamer, video and sound editing, blender
_Skill level:_ Medium
_Contacts:_ link:https://fedoraproject.org/wiki/Videos[Fedora Videos Team]
_Mentor(s):_ -
_Notes:_
[[improve-fedoras-tablet-user-experience]]
==== Improve Fedora's Tablet User Experience
_Status:_ Proposed - Draft
_Summary of idea:_ Improving Fedora's Tablet User Experience.
The window managers/desktop environments officially supported by Fedora
do not match the expectations of people with low power touch devices.
Fedora features new technology to reduce system load and - requirements,
the user interface has not seen too much love.
Currently available interfaces for users are:
* Too Ressource Consuming
* Too Overloaded or
* Too Feature Poor
* Not Customizable With Reasonable Effort
The E17 Desktop Shell, developed as part of the
http://www.enlightenment.org[Enlightenment Project], is a perfect match.
It provides a rich interface, whilst consuming very little ressources.
The Enlightenment Foundation Libraries, on which E17 is built upon, were
chosen as Foundation Block of Tizen, the MeeGo successor backed by
Samsung and Intel. If things work out, E17 will be the first "real"
Desktop Shell for Wayland.
Though it already provides
http://dev.enlightenment.fr/~captainigloo/2011/08/25/elfe-and-the-composited-windows-list/[special
behaviour] for touchscreen devices through certain modules, there's
still room for improvement.
The overall goal of this project would be to improve the user experience
of people who want to use Fedora on low power devices such as tablets.
The student will get support and advice from the Enlightenment Project
developers.
_Knowledge prerequisite:_ C, X11, Wayland, Enlightenment Foundation
Libraries
_Skill level:_ Medium to High
_Contacts:_ Michael Bouchaud (yoz [at] efl [dot] so), link:https://fedoraproject.org/wiki/User:leif[ Leif
Middelschulte] (leif [dot] middelschulte [at] student [dot] kit [dot]
edu)
_Mentor(s):_ Michael Bouchaud (yoz [at] efl [dot] so)
_Notes:_ If this idea gets realized, a proper tablet spin can be
created, that honors the spirit of Fedora.
[[applications-for-programmers]]
=== Applications for programmers
[[implement-a-binding-translator-for-glusterfs]]
==== Implement a binding translator for GlusterFS
_Status:_ Proposed - Draft
_Summary of idea:_ In transporting data across networks, programmers
need GlusterFS language bindings to be able to create apps in their
language of choice. A language binding translator would greatly increase
the number of programmers who would be able to more easily extend
GlusterFS. It's also a fun project for someone wanting to get some
experience with multi-threaded architecture and design in the context of
distributed systems and data.
_Knowledge prerequisite:_ C, Python, embedded Python
_Skill level:_ Medium to High
_Contacts:_ johnmark [AT]redhat [DOT] com , abperiasamy [AT] gmail [DOT]
com
_Mentor(s):_ Anand Avati - Mentor, AB Periasamy - Co-mentor,
link:https://fedoraproject.org/wiki/User:johnmark[John Mark Walker] - Co-mentor
_Notes:_ -
[[implement-a-cassandranosql-connector-or-translator-for-glusterfs]]
==== Implement a Cassandra/NoSQL Connector or Translator for GlusterFS
_Status:_ Proposed - Draft
_Summary of idea:_ In general, there is a need for the ability to store
and access NoSQL data on general purpose distributed filesystems.
Currently, there are a host of single-purpose methods for storing and
retrieving NoSQL data, which are difficult to access from legacy
applications. Creating a NoSQL translator for GlusterFS would help
mitigate this problem and give developers more options for storing and
accessing "big data" in a way that is accessible via a variety of
standard toolkits and protocols.
_Knowledge prerequisite:_ C, GlusterFS internals
_Skill level:_ High
_Contacts:_ johnmark [AT]redhat [DOT] com , abperiasamy [AT] gmail [DOT]
com
_Mentor(s):_ Anand Avati - Mentor, AB Periasamy - Co-mentor,
link:https://fedoraproject.org/wiki/User:johnmark[John Mark Walker] - Co-mentor
_Notes:_ -
[[embedded-cli-tool-for-most-popular-dbms]]
==== Embedded Cli tool for most popular DBMS
_Status:_ Proposed - Students' Idea - Need a mentor
_Summary of idea:_ Today, many developers are working with different
DBMS. I propose to develop a common command line interface for most
popular databases. For example: MySQL, Oracle Database, PostgreSQL.
_Knowledge prerequisite:_ Java, JDBC, MySQL, Oracle Database,
PostgreSQL.
_Skill level:_ Medium
_Contacts:_ Alexandr Egorov 0x0j023 [AT] gmail [DOT] com
_Mentor(s):_
_Notes:_
[[linux-kernel-project]]
=== Linux kernel project
[[implement-nfsfscache-writeback-cache-dropped]]
==== Implement nfs/fscache writeback cache (Dropped)
_Status:_ Dropped -- This is a GSoC _2012_ idea and is being working on
by Hongyi Jia although he didn't get the GSoC slot
(http://www.jiayi.net/works/nfsfscache-writeback-cache/). So, I'm not
going to mentor the idea this year and if anyone is really interested in
it, feel free to contact me and I'll be happy to answer questions:-)
_Summary of idea:_ Currently, the flashcache/bcache only works for local
filesystems. For network filesystems, nfs only supports write through
cache based on fscache/cachefiles. With wider adoption of SSD on nfs
client side, it would be great for nfs to support writeback cache to
speed up write intensive clients. This project would implement a
writeback mechanism for nfs, which need to make necessary changes to
kernel nfs, fscache and cachefiles modules, and take care of nfs
close-to-open semantics.
_Knowledge prerequisite:_ C, Linux kernel, nfs
_Skill level:_ High
_Contacts:_ bergwolf [AT] gmail [DOT] com
_Mentor(s):_ Peng Tao - Mentor
[[infrastructure-for-fedora-contributors-and-users]]
=== Infrastructure for Fedora contributors and users
[[design-hub-floss-collaboration-for-floss-designers]]
==== Design Hub: FLOSS Collaboration for FLOSS Designers
_Status:_ Proposed - Draft
_Summary of idea:_ Free software designers don't have a great set of
tools to work with to collaborate with each other and with the community
on their design work. With this project, we'd like to make progress
towards fixing that. We have some disparate ideas / tools that we'd like
to be integrated:
* http://sparkleshare.org[Sparkleshare] - a git-backed, Dropbox like
system that will automatically check in and push files in project
directly to a shared git repo
* https://github.com/garrett/magicmockup[Magic Mockup] - a
coffeescript/javascript you can insert into an SVG of mockups to enable
interactive, click-through mockups
(http://blog.linuxgrrl.com/2011/08/12/interactive-svg-mockups-with-inkscape-javascript/[see
a demo here]
* http://blog.linuxgrrl.com/category/design-hub/[Design Hub] - an idea
and a ruby on rails prototype of a web front end that could potentially
serve as a front end to git repos with design assets *and* serve as well
as a front end to magic mockup mockups in said repos
* http://inkscape.org[Inkscape] is our preferred design tool of choice;
it would be great if it had some GUI integration with Magic Mockup,
Sparkleshare, and Design Hub
_Knowledge prerequisite:_ Ruby on Rails, web development, some UI design
chops _Skill level:_ Intermediate _Contacts:_ edirsh at redhat dot com
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Emichan[ Emily Dirsh]
_Notes:_ We can provide a development platform for the web UI at
openshift.redhat.com. Also, note this project doesn't just benefit
Fedora designers, but it benefits all FLOSS designers.
[[implement-a-unit-test-framework-for-fedpkg-and-rpkg]]
==== Implement a unit test framework for fedpkg and rpkg
_Status:_ Proposed
_Summary of idea:_ Unit tests are good. Testing is good. fedpkg and it's
backend rpkg is a growing code base, gaining more and more contributors.
It lacks a unit test framework which would be very beneficial to the
code base for making sure contributions don't break the code in subtle
ways.
_Knowledge prerequisite:_
_Skill level:_
_Contacts:_
_Mentor(s):_
_Notes:_ This project is in python.
[[package-gitlab-in-fedoraepel]]
==== Package GitLab in Fedora/EPEL
_Status:_ Proposed
_Summary of idea:_ To package http://gitlab.org/[GitLab] for Fedora and
EPEL (if possible).
Git has fundamentally improved the way that developers share code. The
barrier to sharing code has virtually been eliminated. We are also
seeing the emergence of a new dynamic called "Social Coding". There's no
better example of this than Github.
Creating an environment to foster social coding, and a low barrier to
sharing code, requires more than just git, though. A lot of what makes
Github successful with git is the web-based front end.
Fortunately, there is an open source application named Gitlab that
provides much of the interactive functionality and usability that is
found at Github. The goal of this project is to bring that experience to
fedorahosted.org by setting up Gitlab.
This project will require working with ruby packaging sig to get the
necessary gems packaged and available in Fedora (and if possible EPEL as
well).
_Knowledge prerequisite:_ Ruby, git, packaging
_Skill level:_ Medium
_Contacts:_ link:https://fedoraproject.org/wiki/User:mojavelinux[Dan Allen] (general), link:https://fedoraproject.org/wiki/User:Vondruch[Vรญt
Ondruch] (packaging)
_Mentor(s):_ Ranjib Dey (tentative), Dmitriy Zaporozhets (dzaporozhets),
Ariejan de Vroom (ariejan)
_Notes:_ This idea is definitely something the Fedora project is
interested in pursuing. The work in this project will be carried on
after the project, and is an opportunity for a longer-term involvement
in Fedora.
A demo of Gitlab can be found here: http://demo.gitlabhq.com
[[dorrie-a-web-interface-for-building-fedora-spinsremixes]]
==== Dorrie: A web-interface for building Fedora spins/remixes
_Status:_ Proposed
_Summary of idea:_ Contribute to Dorrie, and make it more usable, add
test coverage and deployable. Details at
link:https://fedoraproject.org/wiki/Remixes_Web_Interface[Dorrie].
_Knowledge prerequisite:_ Python, Django
_Skill level:_ Intermidiate
_Contacts:_ link:https://fedoraproject.org/wiki/User:Shreyankg[Shreyank Gupta]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Shreyankg[Shreyank Gupta], link:https://fedoraproject.org/wiki/User:Rtnpro[Ratnadeep
Debnath]
_Notes:_ Features that I am looking to target:
`*ย Userย management/FASย integration` +
`*ย Un-linerizeย theย workflow.` +
`*ย Defaultย wallpaper/Hostname/user-password/root-password` +
`*ย Customย repos/RPMs` +
`*ย Homeย directoryย content` +
`*ย Searchย Packages` +
`*ย Imageย type:ย ISO,ย virtย image,ย rawย disk`
Code at https://github.com/shreyankg/Dorrie, fork and send pull request,
if you are interested to contribute.
[[fedpkg-chain-builds-for-non-rawhide-branches]]
==== Fedpkg: Chain-builds for non-Rawhide branches
* Status: Proposed
* Summary of idea: Contribute to the fedpkg project, enabling the
building of a series of interdependent packages in a single action for
released Fedora branches
* Knowledge Prerequisite: Python, Fedora Packaging
* Skill Level: Low - Medium
* Contacts: link:https://fedoraproject.org/wiki/User:sgallagh[Stephen Gallagher]
* Mentor(s): link:https://fedoraproject.org/wiki/User:sgallagh[Stephen Gallagher] (Backup)
* Notes: https://fedorahosted.org/fedpkg/ticket/6
[[financial-is-for-fedora-project]]
==== Financial IS for Fedora project
* Status: Proposed
* Summary of idea: There is a need of an information system where it can
be used with in the project to track and analyse the finacial
activities. It may be a customiztion of a open source solution or a
solution from scratch.
* Skill Level: Medium
* Mentor : link:https://fedoraproject.org/wiki/User:Charindu100[Charindu Thiwanka] - Technical
* Co-Mentor(s): link:https://fedoraproject.org/wiki/User:Bckurera[Buddhike Kurera] - Functional
* Notes: knowledge in PHP is required. MVC design pattern
[[event-management-system-for-fedora]]
==== Event management system for Fedora
* Status: Proposed
* Summary of idea: Fedora contributors organize lot of events. We need a
system to manage them. This sounds like a project management utility.
You can either build from scratch or customize an available free
software. This can be used to small event and as well as large event
like FUDcons. The main advantage to use such system is to organize tasks
and manage the cost. If you are interested contact me with a proposal.
* Skill Level: Medium
* Contacts: link:https://fedoraproject.org/wiki/User:Bckurera[Buddhike Kurera]
* Mentor(s): link:https://fedoraproject.org/wiki/User:Bckurera[Buddhike Kurera])
* Notes: knowledge in PHP is required. MVC design pattern, creativity
[[darkserver-improvement]]
==== Darkserver improvement
* Status: Proposed
* Summary of idea: http://darkserver.fedoraproject.org/[Darkserver] now
only supports primary koji instance of Fedora. We need support
other secondary architectures and distributions. Different workers
should use different job queues and they all should work independently.
The current admin commands also need proper upgrade to handle different
resources to import from. The code also needs to be rebased so that it
becomes more test friendly.
* Knowledge prerequisite: Python, Django
* Skill level: high
* Contacts: kushal AT fedoraproject.org
* Mentor(s): link:https://fedoraproject.org/wiki/User:Kushal[Kushal Das]
* Notes: Join the
https://lists.fedorahosted.org/mailman/listinfo/darkserver[mailing list]
and also #dgplug on freenode.
[[linux-system-services]]
=== Linux system services
[[implement-a-battery-of-unit-tests-for-sssd]]
==== Implement a battery of unit tests for SSSD
* Status: Proposed
* Summary of idea: The purpose of this project is to develop a suite of
unit tests for the SSSD. The unit tests would leverage mock objects to
be able to exercise code that is otherwise only ever reachable when the
SSSD is connected to the network. Contributing the set of unit tests to
the SSSD would greatly improve its stability long-term and would help
raise confidence when pushing new SSSD versions into Fedora or other
distributions.
* Knowledge prerequisite: C programming
* Skill level: intermediate to high
* Contacts: link:https://fedoraproject.org/wiki/User:jhrozek[Jakub Hrozek]
* Mentor(s): link:https://fedoraproject.org/wiki/User:jhrozek[Jakub Hrozek]
[[improving-fedora-packaging]]
=== Improving Fedora packaging
[[aur-clone-for-fedora]]
==== AUR Clone for Fedora
_Status:_ Proposed - Students' Idea - Need a mentor
_Summary of idea:_ The idea is to make an AUR clone for Fedora where
users can submit buildfiles, which need to be hosted. These set of files
can compile packages on the user side, and installed locally.
The benefit of this method is:
1. No need to host the entire packages (saving space on servers hosting
the RPMs)
2. Make changes to the buildfile, and not compile the package
3. Can pull sources from any version control system/stored tarballs to
make a very upto-date package. (See blog entry for an example)
_Contacts:_ link:https://fedoraproject.org/wiki/User:Anujmore[Anuj More]
_Notes:_ Need mentor. Need advice on feasibility of the software and
issues that can arise. Also, read the extensive blog post on
http://execat.blogspot.in/2012/03/aur-clone-for-fedora.html[my blog].
Analogy: This is a lot like "having your own library" vs "getting a book
from a bookstore". If you refer a book often, you'd keep it in your
library. This would occupy space and consume resources. Otherwise, you'd
just pull out a separate paper with instructions about the bookstore to
find the book, and fetch the book from the store. Though the first
method is hassle-free, it is not possible to have all the books in the
world with you.
[[maven-foss-repository-extension]]
==== Maven FOSS Repository Extension
_Status:_ Proposed
_Summary of idea:_ With the inception of Maven we have a means to
standardize the building of Java projects. However it has also resulted
in the usage of a very wide dependency set by these Java projects. This
makes it very hard to integrate those projects on a single platform (be
it Fedora or JBoss Application Server (or the combination)).
In essence during packaging all these dependencies must be lined up to
form a single consistent component set. Thus each project will only have
those components available which are actually available on the target
platform. This is very hard to enforce using standard Maven setup.
For Fedora I'm envisioning a Maven extension that makes sure only
sanctioned components are used during the build (without putting a
burden on the packager). This will allow developers who are not on
Fedora to also build with this extension and thus verify (and fix)
issues which are the result of "Fedora packaging".
A prototype can be viewed at https://github.com/fmvn/foss-maven[Maven
FOSS Repository Extension].
_Knowledge prerequisite:_ Knowledge of Maven
_Skill level:_ Medium
_Contacts:_ http://community.jboss.org/people/wolfc[Carlo de Wolf],
User:Mizdebsk[Mikolaj Izdebski]
_Mentor(s):_ http://community.jboss.org/people/wolfc[Carlo de Wolf],
User:Mizdebsk[Mikolaj Izdebski]
_Notes:_ You can find us at irc.freenode.net #fedora-java: wolfc and
mizdebsk
[[fedora-spins-and-remixes]]
=== Fedora Spins and remixes
[[educational-application-for-fedora-robotics-suite]]
==== Educational Application for Fedora Robotics Suite
_Status:_ Proposed
_Summary of Idea:_ Create an educational app introducing software from
Fedora Robotics Suite
The link:https://fedoraproject.org/wiki/SIGs/Robotics[Fedora Robotics SIG] is creating a
link:https://fedoraproject.org/wiki/Features/RoboticsSuite[Robotics Suite] consisting of many packages
useful in robotics. We want to develop a demonstration application
introducing new users step by step to core packages like
http://www.fawkesrobotics.org[Fawkes] and
http://playerstage.sourceforge.net[Player/Stage]. It would feature
multiple game-like levels with increasing complexity. The general task
would be to instruct the robot to fulfill a specific task in a
simulation environment.
_Knowledge prerequisite:_ Developing this requires a strong background
in C++, a background in robotics is preferred but not necessary. You
should be able to familiarize yourself with new software quickly. User
visible parts will require GUI programming using Gtkmm.
_Skill level:_ Medium to High
_Contacts:_ link:https://fedoraproject.org/wiki/User:Timn[Tim Niemueller]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Timn[Tim Niemueller]
[[applications-for-systems-administrators]]
=== Applications for systems administrators
[[improving-the-rhq-pyagent-to-interface-with-openlmi]]
==== Improving the RHQ-PyAgent to interface with OpenLMI
_Status:_ Proposed
_Summary of idea:_ Improve the current RHQ-PyAgent written in Python
that interfaces RHQ with OpenLMI to pick up metrics that are provided by
OpenLMI from Fedora or RHEL systems. The agent is talking to the RHQ
server via the REST api and push metrics to RHQ etc. This agent
does/will not implement the full functionality of the RHQ java agent.
The previous work is already pretty good, but it is cumbersome to add
new OpenLMI-enabled servers and the types of the data model. The work of
this year should concentrate on automating that process - perhaps after
providing a range of IP addresses to query for servers. Similar for
resource types, the agent would talk to the server to see what types are
available and then check with the OpenLMI provider if this supports the
same.
While RHQ is written in Java, this project does not require any Java
knowledge.
_Knowledge prerequisite:_ Python, Linux system administration,
principles of REST
_Skill level:_ Medium to High
_Contacts:_ Heiko Rupp
_Mentor(s):_ Heiko Rupp
_Notes:_ RHQ wiki is at http://jboss.org/rhq, Previous years work:
http://rhqagent.blogspot.com
[[applications-for-testers]]
=== Applications for Testers
[[fedora-gooey-karma]]
==== Fedora Gooey Karma
_Status:_ Proposed
_Summary of idea:_ link:https://fedoraproject.org/wiki/Fedora_Easy_Karma[Fedora Easy Karma] is a CLI
application to help testers apply karma to installed updates and while
it's great at doing so, it doesn't display much other information on
what an update is supposed to fix or what can be done to test a
particular update. A GUI tool that pulls in more information on packages
under test would help in the testing process and hopefully help
encourage less techical users to start testing packages.
_Knowledge prerequisite:_ GUI tool kit (Qt or GTK), python
_Skill level:_ intermediate
_Contacts:_ link:https://fedoraproject.org/wiki/User:Jskladan[Josef Skladanka (jskladan)], link:https://fedoraproject.org/wiki/User:Tflink[Tim
Flink (tflink)]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Jskladan[Josef Skladanka (jskladan)], link:https://fedoraproject.org/wiki/User:Tflink[Tim
Flink (tflink)]
_Notes:_ A longer description and some rough mockups
http://tirfa.com/gooey-karma.html[can be found here]
[[blocker-tracking-application]]
==== Blocker Tracking Application
_Status:_ Proposed
_Summary of idea:_ The
http://qa.fedoraproject.org/blockerbugs[blockerbugs web application] is
used by QA to track bugs which are currently blocking release, proposed
as blocking release or could be pulled into the release past a code
freeze. While the app itself already exists, there are many features
which we would like to see implemented including (but not limited to):
* Creating a RESTful API
* Tracking contents of TC/RC spins
* migrating css to zurb foundation 4
* search functionality
* improve the update sync process
* implement CI tools (make-ish file that runs pylint, tests etc.)
* integrate email (on error, on proposal, other thoughts ...)
* integrate fedbus (blocker X proposed, accepted, rejected)
* fix the admin interface so that it actually works
_Knowledge prerequisite:_ Some python experience is required, the app is
written with Flask so some experiehce with that would be helpful
_Skill level:_ Intermediate
_Contacts:_ link:https://fedoraproject.org/wiki/User:Tflink[Tim Flink (tflink)]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Tflink[Tim Flink (tflink)]
[[image-building-project]]
==== Image Building Project
https://fedorahosted.org/fedora-build-service/[The image building
project] started last year as a gsoc project and while the progress was
good, it isn't quite to the point where we need it to be for everyday
usage. The emphasis would be on getting local image building to work
before more work on distributing image building tasks got started.
Possible project components:
* side repository management
* better integration with bodhi and working based on updates instead of
just package envrs
* tree replication
* integration with blockerbugs app
* deltaiso creation
* zsync for downloads
* integration with koji's new livecd scratch builds
_Knowledge prerequisite:_ Some python experience is required,
familiarity with Fedora's ISO build tools would be preferred
_Skill level:_ Intermediate to advanced
_Contacts:_ link:https://fedoraproject.org/wiki/User:Tflink[Tim Flink (tflink)], link:https://fedoraproject.org/wiki/User:Amitksaha[Amit Saha]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Tflink[Tim Flink (tflink)], link:https://fedoraproject.org/wiki/User:Amitksaha[Amit Saha]

View file

@ -0,0 +1,247 @@
= Google Summer of Code 2013
image::Gsoc-2013-logo.png.jpg[]
The Fedora project represented the Google Summer of Code program for 7
years wih managing 52 projects and willing to participate on year 2013
program as well. This wiki page serves as the GSoC portal. Please feel
free to contact us via link:https://lists.fedoraproject.org/admin/lists/summer-coding@lists.fedoraproject.org/[summer-coding] list for clarifications/ more info.
[[students]]
== Students
Students who are looking for challenges and would like to contribute to
the worlds' leading and innovative Linux Distro, this could be the
chance. Please feel free to contact and refer to the material and start
contacting mentors.
1. xref:ideas.adoc[Main Idea Page]
[[why-spend-your-summer-working-on-foss]]
=== Why spend your summer working on FOSS?
When you work in the open on free software, you create a body of work
that follows you for the rest of your life. Rather than a coding
assignment done by thousands of other students and relegated to the
bottom of the bit drawer at semester's end, working in FOSS is a chance
to contribute to a living project.
Working in FOSS gives you a chance to:
* Work with real world large codebases.
* Collaborate with real engineers and other professional experts.
* Contribute to something meaningful while learning and earning student
value.
* Learn tools and processes that are just like what you are going to use
if you work in technology after graduation.
* Make friends and contacts around the globe.
* Possibly attract attention that gets you an internship or job after
graduation.
* Create life time connections.
[[why-work-with-fedora]]
=== Why work with Fedora?
Our project is large and diverse. We are very experienced at working
with new contributors and helping them be successful.
Many long-time contributors continue to be around, lending expertise and
mentoring. People who stay around the community and do good work are
noticed. They get hired for jobs from it, including being hired by Red
Hat. Past Google Summer of Code students were hired by Red Hat, as well
as interns in various positions. This is just an example, as experience
and reputation in the Fedora Project communities is influential on your
career in many ways.
As long-standing communities with many facets, it is possible for you to
find many rewarding sub-projects to work on.
You should know that contributing to FOSS doesn't require you to have
super programming skills, or super-anything else. You just need be
interested and curious enough, and be willing to become comfortable
being productively lost. This is the state of learning through finding
your way around and figuring things out.
[[step-by-step-guide-for-students]]
=== Step-by-step guide for students
Please check the link:https://fedoraproject.org/wiki/GSOC_Guide_students[Step by Step guide for
students].
[[students-application]]
=== Student's application
Please refer to the following to follow the students' application
process,
xref:student_application_process.adoc[Student Application Process]
[[administration]]
== Administration
In order to clarify matters/ obtain more info related with the GSoC 2013
with Fedora please contact the administrators directly (please consider
CCing the summer-coding list where ever possible).
1. link:https://fedoraproject.org/wiki/User:Bckurera[Buddhike Kurera(Bckurera)] - Administrator
2. link:https://fedoraproject.org/wiki/User:Charindu100[Chrindu Thiwanka] - Administrator
3. link:https://fedoraproject.org/wiki/User:Mmorsi[Mo Morsi] - Administrator - Fall-back Admins
[[mentors]]
== Mentors
The contributors of the Fedora Project can propose ideas and mentor
them. Please feel free to check following links and please add your
ideas to the main idea page, further if you are not interested in
proposing an idea but still want to support the program please check the
students' idea page and pick one as per your interest.
1. http://en.flossmanuals.net/GSoCMentoring/[Manual on Mentoring]
2. xref:ideas.adoc[Main Idea Page]
[[how-to-work-with-students]]
=== How to work with students
* One way is to provide an idea for students to work on. This idea might
be very well planned out, in which case you may need a high-level of
contact with the student to get it implemented correctly.
* It is harder to find success where you are completely certain of how
an idea needs to be implemented; finding a student with the skills and
interest to implement a specific solution is a lot harder than finding a
student with enough skills to respond to a use case need.
* Where you can have looser ideas, you may be able to find a student who
works as a sort-of intern who can implement a solution to a use case you
have. In past experiences, students going after a use case are more
likely to get somewhere with self-direction.
* You may also want to work with a student who brings an idea to your
sub-project. This requires a different level of communication throughout
the project, but can be the most rewarding.
[[mentor-responsibilities]]
=== Mentor responsibilities
You are an essential part of the student's success, the project's
success, and the success for your overall organization (Fedora,
JBoss.org, or another).
Your responsibilities include:
* Being an interface for an identified sub-project or SIG in Fedora.
* Helping students communicate with the overall project and any
upstream.
* Be the final, accountable person for deciding if the student is
successful or not, which affects payment.
[[list-of-mentors]]
=== List of Mentors
[[list-of-registered-members]]
==== List of registered members
List of mentors who are registered with Google and added to the project
as a mentor are listed here;
link:https://fedoraproject.org/wiki/GSOC_2013/Registered_Mentors_List[Registered Mentor List]
[[communication]]
== Communication
*Mailing List (GSOC related) :* link:https://lists.fedoraproject.org/admin/lists/summer-coding@lists.fedoraproject.org/[summer-coding] +
*Mailing List (Technical) :* link:https://lists.fedoraproject.org/admin/lists/devel@lists.fedoraproject.org/[devel] +
*IRC :* Channel - link:https://webchat.freenode.net/?channels=#fedora-summer-coding[#fedora-summer-coding] or link:https://webchat.freenode.net/?channels=#fedora-devel[#fedora-devel] on Freenode
[[time-line-student-version]]
== Time Line (Student version)
Reference :
http://www.google-melange.com/gsoc/events/google/gsoc2013[Full timeline]
* April 8: 19:00 UTC List of accepted mentoring organizations published
on the Google Summer of Code 2013 site.
* April 9 - 21: Would-be student participants discuss application ideas
with mentoring organizations.
* April 22: 19:00 UTC Student application period opens.
* May 3: 19:00 UTC Student application deadline.
Interim Period: Mentoring organizations review and rank student
proposals; where necessary, mentoring organizations may request further
proposal detail from the student applicant.
* May 6: Mentoring organizations should have requested slots via their
profile in Melange by this point.
* May 8: Slot allocations published to mentoring organizations
Interim Period: Slot allocation trades happen amongst organizations.
Mentoring organizations review and rank student proposals; where
necessary, mentoring organizations may request further proposal detail
from the student applicant.
* May 27: 19:00 UTC Accepted student proposals announced on the Google
Summer of Code 2013 site.
Community Bonding Period: Students get to know mentors, read
documentation, get up to speed to begin working on their projects.
* June 17: Students begin coding for their Google Summer of Code
projects;
Google begins issuing initial student payments provided tax forms are on
file and students are in good standing with their communities. Work
Period: Mentors give students a helping hand and guidance on their
projects.
* July 29: 19:00 UTC Mentors and students can begin submitting mid-term
evaluations.
* August 2: 19:00 UTC Mid-term evaluations deadline;
* Work Period: Mentors give students a helping hand and guidance on
their projects.
* September 16: Suggested 'pencils down' date. Take a week to scrub
code, write tests, improve documentation, etc.
* September 23: 19:00 UTC Firm 'pencils down' date. Mentors, students
and organization administrators can begin submitting final evaluations
to Google.
* September 27: 19:00 UTC Final evaluation deadline
Google begins issuing student and mentoring organization payments
provided forms and evaluations are on file.
* September 27: Students can begin submitting required code samples to
Google
* October 1: Final results of Google Summer of Code 2013 announced
* October 19 & 20: Mentor Summit at Google
[[organization-application]]
== Organization Application
'''Org Application submitting has not yet begun !! '''
[[ideas-page]]
== Ideas Page
////
is it still opened?
////
*Status :* Open for Ideas +
*Link :*
xref:ideas.adoc[ideas]
We encourage students to provide creative yet useful ideas towards the
Fedora project as well. Please use
link:https://fedoraproject.org/wiki/Summer_coding_ideas_for_2013/Students_Idea[Student Idea] page to
note your idea. The idea will be moved to the original idea page once
the idea is picked by a mentor.
[[links]]
== Links
1. link:https://fedoraproject.org/wiki/Foundation[The Foundation]
2. http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2016/help_page[GSoC
FAQ]
3. http://docs.fedoraproject.org/en-US/index.html[Fedora Documentation]
4. link:https://fedoraproject.org/wiki/Communicate/IRCHowTo[IRC]
5. link:https://fedoraproject.org/wiki/Development[Development]

View file

@ -0,0 +1,106 @@
= Student application process: Google Summer of Code 2013
This year Student Application process is quite different from the last
year GSOC program with Fedora. Therefore please follow the below
instructions and make sure the application process is correctly
followed.
[[process]]
== Process
. link:https://fedoraproject.org/wiki/GSOC_Guide_students#Set_up_an_account[Create a FAS account]
. link:https://fedoraproject.org/wiki/GSOC_Guide_students#Start_communicating[Join with
fedora-summer-coding mailing list]
. Submit application on
https://google-melange.appspot.com/gsoc/proposal/submit/google/gsoc2013/fedora[Google-Melange]
. link:https://fedoraproject.org/wiki/GSOC_2013/Student_Application_Template/Common[Application is
filled] and available on Fedora Wiki -
link:https://fedoraproject.org/wiki/GSOC_Guide_students#Create_your_Application[How to fill the
application]
. CV highlighting your activities with Information Technology
. A recommendation from (highlighting your fitness)
. A member of a Free Software Organization you have contributed earlier OR
. A lecturer in your university
. A detailed plan with your planned activities in May to September (eg: Exams in university, internships, vacations..etc)
'''Please note - ''' email your CV, Recommendation and Detailed plan to
Org Admins, *bckurera AT fedoraproject DOT org* for any inquiry please
use the above email address and feel free to CC your mentor if required
(recommended).
*Important* - We understand that you need some time to contact a person
and get a recommendation, therefore if it seems like getting delayed
please send us the rest of the documents and email the recommendation
later.
*Bare mind* - You are required to add your project proposal to wiki,
therefore proceed with the application process as quickly as possible.
*We do not accept any document after Google student application
deadline, all entries make after the deadline is ignored unless you have
not informed to Org Admins! However if you have any difficulty to meet
this requirement please let us know in advance (before the deadline).*
Once you have completed above steps and email those documents, Org
admins will peer-review your application set and you will be contacted
with more information. As a caution please do not wait till the last
minute, complete the application process in advance. Further you need to
respond to any communication from the Org Admins or mentors with in 24
hours in this period.
[[faq]]
== FAQ
* *What about details of my project?*
You will be asked and given a link to update information about your
project idea once you have completed the above mentioned process.
* *Why recommendation is required?*
This gives us an information about your reliability, we need you to
complete the project with mentioned goals and with in the time period.
* *I am a Fedora project contributor, do I need a recommendation?*
Yes, since we maintain equal opportunity environment the process is
common for all.
* *What are the file formats that I can use?*
You are encourage to use .pdf as much as possible, if not a Open Format
can be used.
* *What is meant by a "Recommendation", how should it looks like?*
It is good to have a recommendation from a person who knows you well,
recommending that you suites to this program. May be you worked with him
for another project and he is delighted with your work, so we want to
know it, that is simply a recommendation. If you have contributed to a
Free Software Project then we would like to hear about that from some
one from the project who see your great contribution. That can be
considered as a recommendation.
* *I dont get a reply from Org Admins after sending documents, is it
normal?*
You should get a reply with in 24 hours, if not please immediately
contact Org Admin.
* *What should be included in my CV?*
It should be decided by you. Good to include each and every important
thing that make you a suitable candidate and add values. if you want to
know how to create an effective CV, please google.
* *What is the need of a detailed plan of my activities?*
It is important to get an idea about your free time and arrange things
at the early stage. Therefore this is really important and try to make
it accurate as much as possible.
* *Why should I email the documents?*
It is for your own privacy. If you would like to make the public please
feel free to do so and send us the links instead.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,267 @@
= Google Summer of Code 2014
image:Gsoc-2014-logo.jpg[Gsoc-2014-logo.jpg,title="Gsoc-2014-logo.jpg",width=500]
The Fedora project represented the Google Summer of Code program for 8
years with managing 62 projects and willing to participate on year 2014
program as well. This wiki page serves as the GSoC portal. Please feel
free to contact us via link:https://lists.fedoraproject.org/admin/lists/summer-coding@lists.fedoraproject.org/[summer-coding] list for clarifications/ more info.
[[students]]
== Students
Students who are looking for challenges and would like to contribute to
the worlds' leading and innovative Linux Distro, this could be the
chance. Please feel free to contact and refer to the material and start
contacting mentors.
1. xref:ideas.adoc[Main Idea Page]
[[why-spend-your-summer-working-on-foss]]
=== Why spend your summer working on FOSS?
When you work in the open on free software, you create a body of work
that follows you for the rest of your life. Rather than a coding
assignment done by thousands of other students and relegated to the
bottom of the bit drawer at semester's end, working in FOSS is a chance
to contribute to a living project.
Working in FOSS gives you a chance to:
* Work with real world large codebases.
* Collaborate with real engineers and other professional experts.
* Contribute to something meaningful while learning and earning student
value.
* Learn tools and processes that are just like what you are going to use
if you work in technology after graduation.
* Make friends and contacts around the globe.
* Possibly attract attention that gets you an internship or job after
graduation.
* Create life time connections.
[[why-work-with-fedora]]
=== Why work with Fedora?
Our project is large and diverse. We are very experienced at working
with new contributors and helping them be successful.
Many long-time contributors continue to be around, lending expertise and
mentoring. People who stay around the community and do good work are
noticed. They get hired for jobs from it, including being hired by Red
Hat. Past Google Summer of Code students were hired by Red Hat, as well
as interns in various positions. This is just an example, as experience
and reputation in the Fedora Project communities is influential on your
career in many ways.
As long-standing communities with many facets, it is possible for you to
find many rewarding sub-projects to work on.
You should know that contributing to FOSS doesn't require you to have
super programming skills, or super-anything else. You just need be
interested and curious enough, and be willing to become comfortable
being productively lost. This is the state of learning through finding
your way around and figuring things out.
[[step-by-step-guide-for-students]]
=== Step-by-step guide for students
Please check the link:https://fedoraproject.org/wiki/GSOC_Guide_students[Step by Step guide for
students].
[[students-application]]
=== Student's application
Please refer to the following to follow the students' application
process,
xref:student_application_process.adoc[Student_Application_Process]
[[administration]]
== Administration
In order to clarify matters/ obtain more info related with the GSoC 2014
with Fedora please contact the administrators directly (please consider
CCing the summer-coding list where ever possible).
1. link:https://fedoraproject.org/wiki/User:Bckurera[Buddhike Kurera(Bckurera)] - Administrator
2. link:https://fedoraproject.org/wiki/User:Charindu100[Chrindu Thiwanka] - Backup-Administrator
[[mentors]]
== Mentors
The contributors of the Fedora Project can propose ideas and mentor
them. Please feel free to check following links and please add your
ideas to the main idea page, further if you are not interested in
proposing an idea but still want to support the program please check the
students' idea page and pick one as per your interest.
1. http://en.flossmanuals.net/GSoCMentoring/[Manual on Mentoring]
2. xref:ideas.adoc[Main Idea Page]
[[how-to-work-with-students]]
=== How to work with students
* One way is to provide an idea for students to work on. This idea might
be very well planned out, in which case you may need a high-level of
contact with the student to get it implemented correctly.
* It is harder to find success where you are completely certain of how
an idea needs to be implemented; finding a student with the skills and
interest to implement a specific solution is a lot harder than finding a
student with enough skills to respond to a use case need.
* Where you can have looser ideas, you may be able to find a student who
works as a sort-of intern who can implement a solution to a use case you
have. In past experiences, students going after a use case are more
likely to get somewhere with self-direction.
* You may also want to work with a student who brings an idea to your
sub-project. This requires a different level of communication throughout
the project, but can be the most rewarding.
[[mentor-responsibilities]]
=== Mentor responsibilities
You are an essential part of the student's success, the project's
success, and the success for your overall organization (Fedora,
JBoss.org, or another).
Your responsibilities include:
* Being an interface for an identified sub-project or SIG in Fedora.
* Helping students communicate with the overall project and any
upstream.
* Be the final, accountable person for deciding if the student is
successful or not, which affects payment.
[[list-of-mentors]]
=== List of Mentors
[[list-of-registered-members]]
==== List of registered members
List of mentors who are registered with Google and added to the project
as a mentor are listed here;
link:https://fedoraproject.org/wiki/GSOC_2014/Registered_Mentors_List[Registered Mentor List]
[[communication]]
== Communication
*Mailing List (GSOC related) :* link:https://lists.fedoraproject.org/admin/lists/summer-coding@lists.fedoraproject.org/[summer-coding] +
*Mailing List (Technical) :* link:https://lists.fedoraproject.org/admin/lists/devel@lists.fedoraproject.org/[devel] +
*IRC :* Channel - link:https://webchat.freenode.net/?channels=#fedora-summer-coding[#fedora-summer-coding] or link:https://webchat.freenode.net/?channels=#fedora-devel[#fedora-devel] on Freenode
[[time-line-student-version]]
== Time Line (Student version)
Reference :
http://www.google-melange.com/gsoc/events/google/gsoc2014[Full timeline]
* 24 February:19:00 UTC List of accepted mentoring organizations
published on the Google Summer of Code 2014 site.
* February 24 - March 10: Would-be student participants discuss
application ideas with mentoring organizations.
* 10 March:19:00 UTC Student application period opens.
* 21 March:19:00 UTC Student application deadline.
Interim Period: Mentoring organizations review and rank student
proposals; where necessary, mentoring organizations may request further
proposal detail from the student applicant.
* 7 April: Mentoring organizations should have requested slots via their
profile in Melange by this point.
* 9 April: Slot allocations published to mentoring organizations
Interim Period: Slot allocation trades happen amongst organizations.
Mentoring organizations review and rank student proposals; where
necessary, mentoring organizations may request further proposal detail
from the student applicant.
* 21 April: 19:00 UTC Accepted student proposals announced on the Google
Summer of Code 2014 site.
Community Bonding Period: Students get to know mentors, read
documentation, get up to speed to begin working on their projects.
* 19 May: Students begin coding for their Google Summer of Code
projects;
Google begins issuing initial student payments provided tax forms are on
file and students are in good standing with their communities. Work
Period: Mentors give students a helping hand and guidance on their
projects.
* 23 June: 19:00 UTC Mentors and students can begin submitting mid-term
evaluations.
* 27 June: 19:00 UTC Mid-term evaluations deadline;
* Work Period: Mentors give students a helping hand and guidance on
their projects.
* 11 August: Suggested 'pencils down' date. Take a week to scrub code,
write tests, improve documentation, etc.
* 18 August: 19:00 UTC Firm 'pencils down' date. Mentors, students and
organization administrators can begin submitting final evaluations to
Google.
* 22 August: 19:00 UTC Final evaluation deadline
Google begins issuing student and mentoring organization payments
provided forms and evaluations are on file.
* 22 August: 20:00 UTC Students can begin submitting required code
samples to Google
* 25 August: Final results of Google Summer of Code 2014 announced
* 25 & 26 October: Mentor Summit at Google
[[ideas-page]]
== Ideas Page
*Status :* Done +
*Link :* xref:ideas.adoc[Summer coding ideas for 2014]
We encourage students to provide creative yet useful ideas towards the
Fedora project as well. Please use
link:https://fedoraproject.org/wiki/Summer_coding_ideas_for_2014/Students_Idea[Student Idea] page to
note your idea. The idea will be moved to the original idea page once
the idea is picked by a mentor.
[[policy-on-proposal-submissions-on-non-related-project-ideas]]
== Policy on proposal submissions on non-related project ideas
Over the past period we have observed that few students tend to submit
proposals for their own ideas directly to Google-melange. There will be
no communication after then even we ask more info on Google-melange.
Such nature of submissions need extra effort when it comes to manage
proposals on Google-Melange. Therefore as a policy, proposals for
students ideas (with no supporting mentor indicated) that are being
submitted directly to Google-melange will be marked *Ignore* after a 24
hours of warning unless the students does not voluntary withdraw the
proposal or explain basis of their idea. +
This will not restrict submitting proposals on students ideas, we always
welcome novel and innovative ideas from students if they follow the
right path. As the first step send us your idea and will start discuss
how to manage it. If you have a supporting mentor for your own idea
please feel free to submit it directly to Google-melange and clearly
note the mentors' contact details.
[[links]]
== Links
1. link:https://fedoraproject.org/wiki/Foundation[The Foundation]
2. http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2016/help_page[GSoC
FAQ]
3. http://docs.fedoraproject.org/en-US/index.html[Fedora Documentation]
4. link:https://fedoraproject.org/wiki/Communicate/IRCHowTo[IRC]
5. link:https://fedoraproject.org/wiki/Development[Development]

View file

@ -0,0 +1,111 @@
= Student application process: Google Summer of Code 2014
Following are specific guidelines for the students to follow, who are
interested in submitting an application for the GSoC program through the
Fedora Project. Please go through carefully and follow them. Incomplete
applications will not be entertained after the deadline.
[[process]]
== Process
Following criterion should be fulfilled on or before the application
deadline unless otherwise specifically noted.
. link:https://fedoraproject.org/wiki/GSOC_Guide_students#Set_up_an_account[Create a FAS account]
. link:https://fedoraproject.org/wiki/GSOC_Guide_students#Start_communicating[Join with fedora-summer-coding mailing list]
. Submit application on https://google-melange.appspot.com/gsoc/proposal/submit/google/gsoc2014/fedora[Google-Melange]
. link:https://fedoraproject.org/wiki/GSOC_2013/Student_Application_Template/Common[Application is filled] and available on Fedora Wiki - link:https://fedoraproject.org/wiki/GSOC_Guide_students#Create_your_Application[How to fill the application]
. CV highlighting your activities with Information Technology
. A recommendation from (highlighting your fitness)
. A member of a Free Software Organization in which you have contributed earlier OR
. A lecturer in your university
. A detailed plan with your planned activities in May to September (eg: Exams in university, internships, vacations..etc)
'''Please note - ''' email your CV, Recommendation and Detailed plan to
Org Admins, *bckurera AT fedoraproject DOT org* for any inquiry please
use the above email address and feel free to CC your mentor if required
(recommended).
*Important* - We understand that you need some time to contact a person
and get a recommendation, therefore if it seems like getting delayed
please send us the rest of the documents and email the recommendation
later.
*Bare mind* - You are required to add your project proposal to wiki,
therefore proceed with the application process as quickly as possible.
*We do not accept any document after Google student application
deadline, all entries make after the deadline is ignored unless you have
not informed to Org Admins! However if you have any difficulty to meet
this requirement please let us know in advance (before the deadline).*
Once you have completed above steps and email those documents, Org
admins will peer-review your application set and you will be contacted
with more information. As a caution please do not wait till the last
minute, complete the application process in advance. Further you need to
respond to any communication from the Org Admins or mentors with in 24
hours in this period.
[[faq]]
== FAQ
* Why should I let program administrators know about my application?
We would like to keep the pages clean and structured therefore once you
have created your application let us know the link. We go through your
application and let you know if further action is required. If
everything looks ok, will send you the link so that you can add your
proposal as per the template in that link.
* *What about details of my project?*
You will be asked and given a link to update information about your
project idea once you have completed the above mentioned process.
* *Why recommendation is required?*
This gives us an information about your reliability, we need you to
complete the project with mentioned goals and with in the time period.
* *I am a Fedora project contributor, do I need a recommendation?*
Yes, since we maintain equal opportunity environment the process is
common for all.
* *What are the file formats that I can use?*
You are encourage to use .pdf as much as possible, if not a Open Format
can be used.
* *What is meant by a "Recommendation", how should it looks like?*
It is good to have a recommendation from a person who knows you well,
recommending that you suites to this program. May be you worked with him
for another project and he is delighted with your work, so we want to
know it, that is simply a recommendation. If you have contributed to a
Free Software Project then we would like to hear about that from some
one from the project who see your great contribution. That can be
considered as a recommendation.
* *I dont get a reply from Org Admins after sending documents, is it
normal?*
You should get a reply with in 24 hours, if not please immediately
contact Org Admin.
* *What should be included in my CV?*
It should be decided by you. Good to include each and every important
thing that make you a suitable candidate and add values. if you want to
know how to create an effective CV, please google.
* *What is the need of a detailed plan of my activities?*
It is important to get an idea about your free time and arrange things
at the early stage. Therefore this is really important and try to make
it accurate as much as possible.
* *Why should I email the documents?*
It is for your own privacy. If you would like to make the public please
feel free to do so and send us the links instead.

View file

@ -0,0 +1,736 @@
= Ideas: Google Summer of Code 2015
Find an idea you like? Want to propose your own? See the
link:student_application_process.html[GSoC Getting Started Guide].
Further, last year accepted ideas from the Fedora Project can be found
at http://www.google-melange.com/gsoc/org/google/gsoc2014/fedora[GSoC
2014 web site]
[[students-welcome]]
== Students Welcome
If you are a student looking forward to participate the GSoC 2016 with
Fedora, please feel free to browse the idea list which is still growing.
Do not hesitate to contact the mentors/ contributors as indicated in
this page for any related clarification. You also should find some
like-minded people on the `#fedora-summer-coding` IRC channel.
If you are new to The Fedora project, the following material would help
you to get started. Further please sign-up with the link:https://fedoraproject.org/wiki/FAS[Fedora
Account System(FAS)] if you are willing to continue with the Fedora
project. `#fedora-devel`, IRC channel can be used to get instant
support.
1. link:https://fedoraproject.org/wiki/Foundation[The Foundation]
2. http://docs.fedoraproject.org/en-US/index.html[Fedora Documentation
(Users/ Contributors)]
3. link:https://fedoraproject.org/wiki/Communicate/IRCHowTo[How to work with IRC?]
https://fedoramagazine.org/begginers-guide-to-irc[Beginner's Guide to
IRC]
4. link:https://fedoraproject.org/wiki/FAS[Fedora Account System]
5. link:https://fedoraproject.org/wiki/Development[Development]
[[supporting-mentors]]
== Supporting Mentors
Following contributors are also willing to support the GSoC 2016
program. (please feel free to add your self, attach the user page).
Sometimes there should be some backing up mentors to mentor if the
original mentor get busy with something for a short time period. In such
case we need help.
1. link:https://fedoraproject.org/wiki/User:Sgallagh[Stephen Gallagher]
2. link:https://fedoraproject.org/wiki/User:Lsd[Lali Devamanthri]
3. link:https://fedoraproject.org/wiki/User:corey84[Corey Sheldon] (linuxmodder)
[[draft-of-an-idea]]
== Draft of an idea
Please add your idea as follows.
[[project-name]]
=== Project name
_Status:_
_Summary of idea:_
_Knowledge prerequisite:_
_Skill level:_
_Contacts:_
_Mentor(s):_
_Notes:_
*!!!The draft was changed slightly, please add required field as
required!!!*
[[idea-list-for-gsoc-2016]]
== Idea list for GSoC 2016
[[implement-tinykdump]]
=== Implement Tinykdump
_Status:_ Proposed - draft
_Summary of idea:_ Tinykdump is a minimal daemon to capture kernel-based
crash dumping (kdump) memory image to usb storage. Compared to the
traditional kdump solution, it is,
`*ย moreย reliableย andย scalable` +
`*ย hasย smallerย memoryย foot-print` +
`*ย moreย friendlyย toย kernelย developersย `
More information here: https://fedorahosted.org/tinykdump/
_Knowledge prerequisite:_ Python, kernel programming (desired)
_Skill level:_ intermediate (programming)
_Contacts:_ link:https://fedoraproject.org/wiki/User:caiqian[CAI Qian]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:caiqian[CAI Qian]
_Notes:_ Rough roadmap:
* Implement tinykdump daemon to be included in Fedora.
* Submit kernel patches for reserving kdump memory at run-time for
community review and inclusion.
* Currently, pstore only log kernel messages for panic and Oops. Patches
are needed to support logging of kdump kernel and initramfs console
output.
[[improve-fedora-review]]
=== Improve Fedora Review
_Status:_ Proposed - draft
_Summary of idea:_ Every package that is included into Fedora needs to
go through a review to ensure it matches the Packaging:Guidelines.
https://fedorahosted.org/FedoraReview/[Fedora Review] is a tool to help
with the review. It needs constant development to be updated for changes
in the guidelines. Also there is currently no process to ensure that
existing packages adhere to the packaging guidelines. This project is
meant to improve this.
_Knowledge prerequisite:_ Python 2&3 programming skills
_Skill level:_ intermediate (programming)
_Contacts:_ link:https://fedoraproject.org/wiki/User:Leamas[Alec Leamas], link:https://fedoraproject.org/wiki/User:Till[Till Maas]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Till[Till Maas]
_Notes:_ Possible tasks:
* Make Fedora Review PEP8 compliant, fix its current test cases
* Help running Fedora Review regularly for existing packages e.g.,
updating the Jenkins continuous builds and/or integrate it into
Taskotron
* Add static code checker support to Fedora Review (e.g. with
https://git.fedorahosted.org/git/csmock.git[csmock])
* Build a web service mockup supporting the review process
http://fedoraproject.org/wiki/Package_Review_Process[1] replacing
current bugzilla workflow.
[[enhance-fedora-build-setup]]
=== Enhance Fedora build setup
_Status:_ Proposed - draft
_Summary of idea:_ Fedora uses the http://koji.fedoraproject.org[Koji]
build system with GIT as a source. Plugings/scripts are needed to allow
package maintainer to be able to use own branches without accidently
deleting the source of published RPMs.
_Knowledge prerequisite:_ Python programming skills, ideally some
packaging knowledge
_Skill level:_ intermediate (programming), high (understanding/analysing
code, GNU/Linux)
_Contacts:_ link:https://fedoraproject.org/wiki/User:Till[Till Maas], link:https://fedoraproject.org/wiki/User:Ausil[Dennis Gilmore],
__Mentor(s):__link:https://fedoraproject.org/wiki/User:Till[Till Maas], link:https://fedoraproject.org/wiki/User:Ausil[Dennis Gilmore]
_Notes:_ Rough roadmap:
* Make select https://fedorahosted.org/rel-eng/[releng scripts] PEP8
compliant/python3 ready
* Make other python tools PEP8 compliant, python3 ready:
** https://fedorahosted.org/fedpkg/[fedpkg]
** https://git.fedorahosted.org/cgit/mash/[mash]
** https://fedorahosted.org/rpkg/[rpkg]
* Become familiar with the Fedora packaging workflow, maybe by packaging
some software
* Learn how to interface koji and write a script to get a mapping of git
commit ID to package build (name, version, release)
* Write a koji plugin to enforce that pkgs can be only built from the
right GIT branch for each build target (might need improvements to
koji's plugin interface as well):
https://fedorahosted.org/rel-eng/ticket/5843
* Write a fedmsg service/cronjob to regularly tag sucessful builds in
GIT: https://fedorahosted.org/rel-eng/ticket/5856
* Help with koji2
[[improve-sigul-signing-server]]
=== Improve Sigul Signing Server
_Status:_ Proposed - draft
_Summary of idea:_ The https://fedorahosted.org/sigul/[Sigul] signing
server is used by release engineering to
link:https://fedoraproject.org/wiki/Release_package_signing[sign Fedora RPMs] when
link:https://fedoraproject.org/wiki/pushing_fedora_updates[pushing fedora updates]. There are two major
problems that make it hard to release updated packages in a timely
manner: It crashes and it cannot be used simultaneously.
_Knowledge prerequisite:_ Python programming skills, ideally some
background knowledge about GPG, security and networking
_Skill level:_ intermediate (programming), high (understanding/analysing
code, GNU/Linux)
_Contacts:_ link:https://fedoraproject.org/wiki/User:Till[Till Maas], link:https://fedoraproject.org/wiki/User:Ausil[Dennis Gilmore],
link:https://fedoraproject.org/wiki/User:ralph[Ralph Bean],
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Till[Till Maas], link:https://fedoraproject.org/wiki/User:Ausil[Dennis Gilmore],
link:https://fedoraproject.org/wiki/User:ralph[Ralph Bean]
_Notes:_ Rough roadmap:
* To test whether everything works, a test instance needs to be setup.
This is rather complex because it requires interaction with koji. Maybe
it is possible to add a test instance to Infrastructure that can use the
koji staging system, but the latter is not fully functional right now.
* Debug why sigul hangs sometimes when using the
https://git.fedorahosted.org/cgit/sigul.git/tree/src/client.py#n1090[sign-rpms]
command (called by `--batch-size` greater than one with
`sigulsign_unsigned.py`
* Enable sigul to process multiple tasks at once, e.g. sign for multiple
releases or architectures at once.
* Fix other bugs/issues, examples:
** Currently http://linux.die.net/man/8/logrotate[logrotate] does not
make sigul properly re-open its logfiles, which is why sigul does not
log to the new logfile after rotation. This needs to be fixed in sigul
** The GPG defaults in sigul might not be up-to-date, they should be
reviewed and improved if necessary
** Add support for e.g. signing and revoking GPG keys, to build a local
web of trust between https://getfedora.org/keys/[Fedora release keys]
Ressources:
* https://git.fedorahosted.org/cgit/releng/tree/scripts/sigulsign_unsigned.py[Script
used by rel-eng to run sigul]
* https://git.fedorahosted.org/cgit/sigul.git/tree/doc/protocol-design.txt[Protocol
description]
[[askfedora-uxui-functionality-overhaul]]
=== AskFedora UX/UI & Functionality Overhaul
_Status:_ Proposed - draft
_Summary of idea:_
https://ask.fedoraproject.org/[AskFedora] is a community knowledge base
and support forum and designed to be the primary place for community
support in Fedora. It is powered by Askbot, Django based web
application. The UI and the UX for AskFedora needs overhaul to give it
some uniformity with the current Fedora websites. There may also be
changes to be done in Askbot itself and have possibility of being
integrated upstream. We aim to achieve results similar to what
http://askubuntu.com/[Ask Ubuntu] has achieved, however Ask Ubuntu is
not based on Askbot and similar theming techniques can't be applied.
Discussions are open for this.
'' But why?: ''Over the years of its existence, AskFedora's popularity
has increased and there are 11,000+ questions that have been asked on
the website and has 12,500+ contributors as of today (out of which quite
a few are active). We think, it really needs to 'look good' and 'provide
a better user experience' now.
''Status right now: '' Mockups during the last Design Fedora Activity
Day (FAD) 2015 were done. Checkout
https://suchakra.wordpress.com/2015/01/20/ask-fedora-ux-redesign-updates-1/[this]
and
https://suchakra.wordpress.com/2015/01/21/ask-fedora-ux-redesign-updates-2/[this]
blogpost for latest updates on mockups. An
http://askbotstg-suchakra.rhcloud.com/questions/[openshift instance] has
also been created and source for testing
https://github.com/fedoradesign/askbot-test[repository] is available for
setting up your own staging instance.
_Knowledge prerequisites:_ Front-end (HTML/CSS/JS) development, UI/UX
design experience, some knowledge of Django/Python
_Skill level:_ Beginner/Intermediate
_Contacts:_ kushal at fedoraproject dot org, suchakra at fedoraproject
dot org
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Kushal[ Kushal Das], link:https://fedoraproject.org/wiki/User:Suchakra[ Suchakra]
_co-Mentor(s):_ link:https://fedoraproject.org/wiki/User:Sarupbanskota[ Sarup Banskota]
TL;DR The infra and some ideas for testing is all ready, we need someone
to improve AskFedora's UI/UX.
[[glitter-gallery-improvements]]
=== Glitter Gallery Improvements
_Status:_ Proposed - draft
_Summary of idea:_
link:https://fedoraproject.org/wiki/Design/GlitterGallery[ GlitterGallery] is GitHub for designers -
being developed by and for the Fedora design team, but hoping to be
useful to all designers. It's a web app that allows designers and
artists to create, share, and collaborate, backed by Git for version
control, and intended to be part of a FLOSS design suite that includes
* http://sparkleshare.org[Sparkleshare] - a git-backed, Dropbox like
system that will automatically check in and push files in project
directly to a shared git repo
* https://github.com/garrett/magicmockup[Magic Mockup] - a javascript
library you can insert into an SVG of mockups to enable interactive,
click-through mockups
(http://blog.linuxgrrl.com/2011/08/12/interactive-svg-mockups-with-inkscape-javascript/[see
a demo here]
* http://inkscape.org[Inkscape] is our preferred design tool of choice
Last year, two GSoC students worked on a number of critical improvements
to GlitterGallery, but there is still plenty of work to be done.
* Public gallery of works; currently the app requires a user to login
and to follow other users before they can see work other than their own.
They can also view direct links to works. A public gallery can be used
to browse and explore works without having to be logged in.
* Better design suite integration, which could mean better support for
local editing with SparkleShare; Inkscape integration through an
extension; and/or support for creating and sharing interactive SVGs with
Magic Mockup
* Better commenting - the current commenting system is basic, and
there's lots of ways it could be improved, including thread support,
pingback support, the ability to reference a specific region of a design
in a comment
* External issue tracking - Glitter Gallery has an integrated issue
tracker, but it would be useful to also be able to integrate with
external bug/issue trackers such as GitHub and Bugzilla.
* Enhanced history view - (see
https://github.com/glittergallery/GlitterGallery/issues/187)
* Your own ideas
_Knowledge prerequisites:_ git, Ruby on Rails, front-end (HTML/CSS/JS)
development, design experience would be great but optional
_Skill level:_ Intermediate
_Contacts:_ emichan at fedoraproject dot org, sarupbanskota at
fedoraproject dot org
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Emichan[ Emily Dirsh], link:https://fedoraproject.org/wiki/User:Sarupbanskota[ Sarup
Banskota], link:https://fedoraproject.org/wiki/User:_Rohitpaulk[ Rohit Paul Kuruvilla]
_Notes:_ The
https://github.com/glittergallery/GlitterGallery[GlitterGallery
repository] is hosted on GitHub.
[[multimonitor-wallpaper-submission-and-download-for-nuancier]]
=== Multimonitor wallpaper submission and download for Nuancier
_Status:_ Proposed
_Summary of idea:_ Purpose for this project is to extend
https://apps.fedoraproject.org/nuancier/[Nuancier], Fedoras supplemental
wallpaper submission application with an system that allow to submit and
downlad wallpapers for multi-monitor setup.
Knowledge prerequisite: some Python knowledge
_Skill level:_ starter
_Contacts:_ Sirko Kemter gnokii@fedoraproject.org
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Pingou[ Pierre-Yves Chibon], link:https://fedoraproject.org/wiki/User:Gnokii[ Sirko
Kemter]
[[cockpit-ui-for-rolekit]]
=== Cockpit UI for Rolekit
_Status:_ Proposed _Summary of idea:_ The
https://fedorahosted.org/rolekit[Rolekit Project] provides a platform
API for deploying Server Roles onto a system. Currently, it supports
creating a Domain Controller (based on http://freeipa.org[FreeIPA]) or a
Database Server (based on http://www.postgresql.org/[PostgreSQL]). A
major component of the Fedora Server is the
http://cockpit-project.org[Cockpit Project], a web-based management
console for servers. The goal of this effort would be to enhance the
Cockpit UI so that an administrator could deploy these Roles using
rolekit via the Cockpit web interface.
_Knowledge prerequisites:_ JavaScript (ideally jQuery). Preferred
familiarity with D-BUS.
_Skill Level:_ Beginner to intermediate
_Contacts:_ link:https://fedoraproject.org/wiki/User:Sgallagh[Stephen Gallagher]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Sgallagh[Stephen Gallagher]
_Success Conditions:_ A user of the Cockpit UI must be able to deploy a
Domain Controller while providing the minimum set of necessary
information to the UI. The UI must optionally allow more advanced
settings to be selected. The UI must also provide a link post-deployment
that allows the user to browse to the Domain Controller administration
UI. Providing the same functionality for the Database Server role would
be bonus functionality for this project, provided that the Domain
Controller is completed early.
[[cockpit-support-for-systemd-timers]]
=== Cockpit support for systemd timers
_Status_: Proposed Summary of idea: systemd provides timers for calendar
time events and monotonic time events
(http://www.freedesktop.org/software/systemd/man/systemd.timer.html,
https://wiki.archlinux.org/index.php/Systemd/Timers). A major component
of the Fedora Server is the Cockpit Project, a web-based management
console for servers. The goal of this effort would be to enhance the
Cockpit UI so that an administrator could deploy these Roles using
rolekit via the Cockpit web interface. Some preliminary designs for
timers in Cockpit exist at
https://trello.com/c/1B2lZViZ/74-timers-and-cron, although these are
just intended as guidelines to get started.
_Knowledge prerequisites_: JavaScript (ideally jQuery). Preferred
familiarity with D-BUS.
_Skill Level_: Beginner to intermediate
_Contacts_: link:https://fedoraproject.org/wiki/User:Sgallagh[Stephen Gallagher]
_Mentor(s)_: Dominik Perpeet, link:https://fedoraproject.org/wiki/User:Sgallagh[Stephen Gallagher]
_Success Conditions_: A user of the Cockpit UI must be able to view
existing timers, edit existing ones or create new timers while providing
the minimum set of necessary information to the UI. The UI must
optionally allow more advanced settings to be selected.
[[docker-volume-support-in-cockpit]]
=== Docker Volume Support in Cockpit
_Status_: Proposed Summary of idea: Docker (https://www.docker.com/)
allows building, running, and sharing of software in containers. A major
component of the Fedora Server is the Cockpit Project, a web-based
management console for servers. Docker is already supported in Cockpit,
including features such as downloading images, running/stopping/deleting
containers, exposing additional ports, inspecting console output as well
as linking containers. The goal of this effort would be to enhance the
Cockpit UI so that an administrator can use Docker 'Data volumes'
(http://docs.docker.com/userguide/dockervolumes/) via the Cockpit web
interface. Some preliminary designs for Docker Volume Support in Cockpit
exist at https://trello.com/c/4juwxCaE/94-docker-volume-support,
although these are just intended as guidelines to get started.
_Knowledge prerequisites_: JavaScript (ideally jQuery). Preferred
familiarity with D-BUS.
_Skill Level_: Beginner to intermediate
_Contacts_: link:https://fedoraproject.org/wiki/User:Sgallagh[Stephen Gallagher]
_Mentor(s)_: Dominik Perpeet, link:https://fedoraproject.org/wiki/User:Sgallagh[Stephen Gallagher]
_Success Conditions_: A user of the Cockpit UI must be able to create,
view and (to a sensible extent) edit Docker 'Data Volume Containers'
while providing the minimum set of necessary information to the UI. It
should also be possible to select host directories or host files as Data
Volumes. The UI must optionally allow more advanced settings to be
selected. Optionally this can be extended by further functionality, such
as backup, restoration or migration of data volumes.
[[shumgreppersummershum]]
=== Shumgrepper/summershum
_Status:_ Proposed
_Summary of idea:_ Finish and deploy the shumgrepper project
_Knowledge prerequisite:_ python, flask, sqlalchemy and some system
administration
_Skill level:_ Intermediate
_Contacts:_ link:https://fedoraproject.org/wiki/User:pingou[Pierre-Yves Chibon]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:pingou[Pierre-Yves Chibon] link:https://fedoraproject.org/wiki/User:ralph[Ralph Bean]
_Notes:_ shumgrepper was started last year and offers an API to query
the data stored by summershum. This data corresponds to the md5, sha1,
sh256 and sha512 of every files in every packages in Fedora, allowing to
easily find out files duplicated in multiple packages.
Dev instance: http://209.132.184.120/
[[fresque]]
=== fresque
_Status:_ Proposed
_Summary of idea:_ Fedora Review Server: take package reviews off
bugzilla
_Knowledge prerequisite:_ python, flask, sqlalchemy and some ideas about
packaging
_Skill level:_ Intermediate
_Contacts:_ link:https://fedoraproject.org/wiki/User:abompard[Aurรฉlien Bompard]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:abompard[Aurรฉlien Bompard]
_Notes:_ fresque aims at providing a dedicated application for package
(RPM) reviews. This would be integrate with a git backend and integrates
the fedora-review tool for automatic testing of new reviews and changes.
[[patch-tracker]]
=== Patch Tracker
_Status:_ Proposed
_Summary of idea:_ One of Fedoras goals as a distribution is
link:https://fedoraproject.org/wiki/staying_close_to_upstream_projects[staying close to upstream
projects]. However, sometimes it is necessary for Fedora packages to
deviate from upstream, for example if upstream is dead or if a fix is
backported to an older release. Also other distributions sometimes carry
patches that are not submitted upstream but fix bugs also present in
Fedora packages. Therefore it is interesting for Fedora packagers or
packagers of other distributions to get easy access to information about
patches. Fedora already contains a web app, that shows information about
patches in Fedora, for example the
https://apps.fedoraproject.org/packages/ipython/sources/[patches for the
ipython package]. However, this is not a designated app to make the
patch information as useful as possible and does not contain support for
other distros. Debian used to provide a
https://anonscm.debian.org/cgit/users/seanius/patch-tracker.git/tree/[patch
tracker] that is currently offline due to a missing maintainer. For
other distributions, there only
http://oss-security.openwall.org/wiki/distro-patches[manual methods] to
find out about patches. Therefore the idea is to create a web
application with the purpose to make it easier for others to find
patches in Fedora and to make it easier for Fedora maintainers to find
patches in other distributions. FedoraCreate/adjust a webapp to track
patches that are used in Fedora and other distributions
_Knowledge prerequisite:_ Python programming, web application
development
_Skill level:_ Intermediate
_Contacts:_ link:https://fedoraproject.org/wiki/User:till[Till Maas]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:till[Till Maas]
_Notes:_ Potential features:
* Show a clear overview for patches in Fedora for a certain package
** Link to bugs that were mentioned, extract key information from the
bug
* Allow to get notifications for new patches, e.g. via fedmsg
* Allow to get information about patches for the package in other
distros
* Try to figure out if patches are already upstream
* ...
Rough potential roadmap:
* Get the debian patch tracker running on a test system, maybe with some
example debian packages
* Port it for one example Fedora package
* Port it to a modern web framework such as Flask or Pyramid
* Make sure it is PEP8 compliant
* Make it generic to work for Fedora and Debian
* Add feature to patches that are present only in Fedora or Debian
* Add more distros, e.g. OpenSUSE, Arch, Ubuntu, Gentoo
* Add more features
Basic requirements:
* Target platform is RHEL/CentOS7 with EPEL
* All dependencies should be available on the target platform as RPM
packages or possible to be packaged (e.g. requiring newer versions of
packages already included in the target platform might not be easily
possible)
* It needs to be possible to package the final project for Fedora/EPEL,
i.e. there may not be bundled libraries included
* The code needs to be PEP8 compliant and contain proper docstrings
* Proper automtatic tests should be included to allow meaningful
continuous integration
Recommended basic knowledge:
* Know about PEP8, pylint, continuous integration,
* Understand the different diff formats
[[better-oval-development-tools-in-openscap]]
=== Better OVAL development tools in OpenSCAP
_Status:_ Proposed
_Summary of idea:_ The https://www.open-scap.org[OpenSCAP] project
implements the Security Content Automation Protocol standards. It
provides users with a way to automatically audit their infrastructure.
One of the standards is OVAL - Open Vulnerability and Assessment
Language - it is the language in which the automated checks are written.
Unfortunately the check authors have it tough right now. They have to
edit XML files manually, there is no debugger, no static analysis of any
sort (like pylint or cppcheck). To make matters worse the OVAL checks
are hard to write and the learning curve is steep.
_Knowledge prerequisites:_ Intermediate C, familiarity with the OpenSCAP
project
_Skill Level:_ Intermediate
_Contacts:_ link:https://fedoraproject.org/wiki/User:Mpreisle[Martin Preisler]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Mpreisle[Martin Preisler]
_Success Conditions:_ SCAP content developers are able to interactively
debug their checks, they can browse the execution, looking at inputs and
outputs of each step. They are able to analyze their OVAL content for
common mistakes using the lint-like tool. Such common mistakes include
ID mismatches, wrong usage of regexes, ...
[[fix-bugs-in-packages-that-break-compiling-as-position-independent-executable]]
=== Fix bugs in packages that break compiling as position independent
executable
_Status:_ proposed
_Summary of idea:_ Starting with Fedora 23, Fedora will try to ship all
binaries as
http://en.wikipedia.org/wiki/Position-independent_code[position
independent executable] to benefit from the
http://en.wikipedia.org/wiki/Address_space_layout_randomization[address
space layout randomization (ASLR)] of the Linux kernel to increase the
security of Fedoras packages. However, not all code/packages are ready
for this, therefore the
link:https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code[current
change proposal] plans to handle these cases by just disabling this
improvement for affected packages. Ideally all packages would be fixed
to not require it to be disabled, this is where you can help.
_Knowledge prerequisite:_ low-level programming skills, compiler
development, build systems configuration, maybe python programming
skills
_Skill level:_ intermediate to high, depending on the actual problem
_Contacts:_ link:https://fedoraproject.org/wiki/User:Orion[Orion Poplawski], link:https://fedoraproject.org/wiki/User:till[Till Maas],
link:https://fedoraproject.org/wiki/User:halfie[Dhiru Kholia],
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Orion[Orion Poplawski], link:https://fedoraproject.org/wiki/User:till[Till Maas],
link:https://fedoraproject.org/wiki/User:halfie[Dhiru Kholia]
_Notes:_ Currently not all Fedora packages were rebuilt with the new
hardening flags, therefore it is not yet clear how many packages need to
be fixed. However, it might be that there are also some languages that
need to be adjusted in general to produce position-independent code (for
example go), so adding support to (some) of these languages would be in
the scope of this project as well, after all build failures were
handled. Additionally Fedora tools like
https://fedorahosted.org/FedoraReview/[Fedora Review] and Taskotron
should be adapted to properly report packages that are not built with
the hardening flags for example by running checkseck on all created
executables.
Example problems that block some packages to be built with the right
flags:
* https://bugzilla.redhat.com/show_bug.cgi?id=1199775
Helpful documentation:
* link:https://fedoraproject.org/wiki/Using_Mock_to_test_package_builds[Using Mock to test package
builds]
[[enhance-postgresql-gssapi-support]]
=== Enhance PostgreSQL GSSAPI Support
_Status:_ proposed
_Summary of idea:_ The Fedora Server Edition includes a Database Server
Role powered by a PostgreSQL database. In order to integrate it better
with Fedora Server's Domain Controller, we want to enhance the GSSAPI
authentication and communication in the server.
_Knowledge prerequisite:_ C Programming, Kerberos/GSSAPI
_Skill level:_ intermediate to high (probably grad-student level)
_Contacts:_ link:https://fedoraproject.org/wiki/User:Sgallagh[Stephen Gallagher], link:https://fedoraproject.org/wiki/User:Simo[Simo Sorce]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Simo[Simo Sorce]
_Notes:_ This will require modifications to the authentication subsystem
as well as the TCP/IP layer of PostgreSQL. It will likely be a very
involved project.
[[tweak-specific-packages-to-play-well-with-mips-architecture]]
=== Tweak specific packages to play well with MIPS architecture
_Status:_ proposed
_Summary of idea:_ We are planning to bootstrap Fedora for MIPS
architecture. Even though the majority of packages should build with
little to no modifications, there are some challenging packages that
will need extra attention.
_Knowledge prerequisite:_ C or Python Programming, packaging basics,
some idea about non-x86 architectures
_Skill level:_ intermediate to high
_Contacts:_ link:https://fedoraproject.org/wiki/User:Mtoman[Michal Toman], link:https://fedoraproject.org/wiki/User:Anibal[Anibal Monsalve
Salazar], link:https://fedoraproject.org/wiki/User:wzssyqa[YunQiang Su]
_Mentor(s):_ link:https://fedoraproject.org/wiki/User:Mtoman[Michal Toman]
_Notes:_ Possible work areas:
* kernel
* anaconda
* openjdk
* ghc
* ocaml
* erlang
* fpc
* ...
[[open-ideas-from-gsoc-2016]]
== Open Ideas From GSoC 2016
Despite the list of ideas, you may want to check out the ideas of the
previous years and contact the admins to see if they are still
interested in mentoring someone this year.
////
Previous years:
* link:Summer_coding_ideas_for_2015[2015]
* link:Summer_coding_ideas_for_2014[2014]
* link:Summer_coding_ideas_for_2013[2013]
* link:Summer_coding_ideas_for_2012[2012]
* link:Summer_coding_ideas_for_2011[2011]
* link:Summer_coding_ideas_for_2010[2010]
* link:Summer_coding_ideas_for_2009[2009]
* link:Summer_coding_ideas_for_2008[2008]
Please: Do not submit a proposal for an idea from a previous year
without previously contacting the admin to ensure their will to mentor
someone this year. Without mentor, proposals will be rejected.
Category:Summer_coding_2016[Category:Summer coding 2016]
////

View file

@ -0,0 +1,290 @@
= Google Summer of Code 2015
image:Gsoc-2015-logo.jpg[]
The Fedora project represented the Google Summer of Code program for 9
years and participating on year 2016 program as well. This wiki page
serves as the GSoC portal. Please feel free to contact us via list for link:https://lists.fedoraproject.org/admin/lists/summer-coding@lists.fedoraproject.org/[summer-coding]
clarifications/ more info, or the IRC channel: link:https://webchat.freenode.net/?channels=#fedora-summer-coding[#fedora-summer-coding] .
[[students]]
== Students
Students who are looking for challenges and would like to contribute to
the worlds' leading and innovative Linux Distro, this could be the
chance. Please feel free to contact and refer to the material and start
contacting mentors.
1. xref:ideas.adoc[Main Idea Page]
[[why-spend-your-summer-working-on-foss]]
=== Why spend your summer working on FOSS?
When you work in the open on free software, you create a body of work
that follows you for the rest of your life. Rather than a coding
assignment done by thousands of other students and relegated to the
bottom of the bit drawer at semester's end, working in FOSS is a chance
to contribute to a living project.
Working in FOSS gives you a chance to:
* Work with real world large codebases.
* Collaborate with real engineers and other professional experts.
* Contribute to something meaningful while learning and earning student
value.
* Learn tools and processes that are just like what you are going to use
if you work in technology after graduation.
* Make friends and contacts around the globe.
* Possibly attract attention that gets you an internship or job after
graduation.
* Create life time connections.
[[why-work-with-fedora]]
=== Why work with Fedora?
Our project is large and diverse. We are very experienced at working
with new contributors and helping them be successful.
Many long-time contributors continue to be around, lending expertise and
mentoring. People who stay around the community and do good work are
noticed. They get hired for jobs from it, including being hired by Red
Hat. Past Google Summer of Code students were hired by Red Hat, as well
as interns in various positions. This is just an example, as experience
and reputation in the Fedora Project communities is influential on your
career in many ways.
As long-standing communities with many facets, it is possible for you to
find many rewarding sub-projects to work on.
You should know that contributing to FOSS doesn't require you to have
super programming skills, or super-anything else. You just need be
interested and curious enough, and be willing to become comfortable
being productively lost. This is the state of learning through finding
your way around and figuring things out.
[[step-by-step-guide-for-students]]
=== Step-by-step guide for students
Please check the link:https://fedoraproject.org/wiki/GSOC_Guide_students[Step by Step guide for
students].
[[students-application]]
=== Student's application
Please refer to the following to follow the students' application
process,
xref:student_application_process.adoc[Student Application Process]
[[administration]]
== Administration
In order to clarify matters/ obtain more info related with the GSoC 2016
with Fedora please contact the administrators directly (please consider
CCing the summer-coding list where ever possible).
1. link:https://fedoraproject.org/wiki/User:Sgallagh[Stephen Gallagher]
2. link:https://fedoraproject.org/wiki/User:kushal[Kushal Das]
3. link:https://fedoraproject.org/wiki/User:hguemar[Haรฏkel Guรฉmar]
[[mentors]]
== Mentors
The contributors of the Fedora Project can propose ideas and mentor
them. Please feel free to check following links and please add your
ideas to the main idea page, further if you are not interested in
proposing an idea but still want to support the program please check the
students' idea page and pick one as per your interest.
1. http://en.flossmanuals.net/GSoCMentoring/[Manual on Mentoring]
2. xref:ideas.adoc[Main Idea Page]
[[how-to-work-with-students]]
=== How to work with students
* One way is to provide an idea for students to work on. This idea might
be very well planned out, in which case you may need a high-level of
contact with the student to get it implemented correctly.
* It is harder to find success where you are completely certain of how
an idea needs to be implemented; finding a student with the skills and
interest to implement a specific solution is a lot harder than finding a
student with enough skills to respond to a use case need.
* Where you can have looser ideas, you may be able to find a student who
works as a sort-of intern who can implement a solution to a use case you
have. In past experiences, students going after a use case are more
likely to get somewhere with self-direction.
* You may also want to work with a student who brings an idea to your
sub-project. This requires a different level of communication throughout
the project, but can be the most rewarding.
[[mentor-responsibilities]]
=== Mentor responsibilities
You are an essential part of the student's success, the project's
success, and the success for your overall organization (Fedora,
JBoss.org, or another).
Your responsibilities include:
* Being an interface for an identified sub-project or SIG in Fedora.
* Helping students communicate with the overall project and any
upstream.
* Be the final, accountable person for deciding if the student is
successful or not, which affects payment.
[[list-of-mentors]]
=== List of Mentors
[[list-of-registered-members]]
==== List of registered members
List of mentors who are registered with Google and added to the project
as a mentor are listed here;
link:https://fedoraproject.org/wiki/GSOC_2016/Registered_Mentors_List[Registered Mentor List]
[[communication]]
== Communication
*Mailing List (GSOC related) :* link:https://lists.fedoraproject.org/admin/lists/summer-coding@lists.fedoraproject.org/[summer-coding] +
*Mailing List (Technical) :* link:https://lists.fedoraproject.org/admin/lists/devel@lists.fedoraproject.org/[devel] +
*IRC :* Channel - link:https://webchat.freenode.net/?channels=#fedora-summer-coding[#fedora-summer-coding] or link:https://webchat.freenode.net/?channels=#fedora-devel[#fedora-devel] on Freenode
[[time-line-student-version]]
== Time Line (Student version)
Reference :
http://www.google-melange.com/gsoc/events/google/gsoc2016[Full timeline]
* 6 October, 2014: Program announced.
* 9 February, 2015: 19:00 UTC Mentoring organizations can begin
submitting applications to Google.
* 20 February: 19:00 UTC Mentoring organization application deadline.
* 23 - 27 February: Google program administrators review organization
applications.
* 2 March: 19:00 UTC List of accepted mentoring organizations published
on the Google Summer of Code 2015 site.
* Interim Period: Would-be students discuss project ideas with potential
mentoring organizations.
* 6 March 16:00 UTC: IRC feedback meeting for rejected organizations for
Google Summer of Code 2015. #gsoc on freenode.net. Rejected
organizations may also choose to email the administrators directly for
feedback.
* 14 March: 19:00 UTC Student application period opens.
* 27 March: 19:00 UTC Student application deadline.
* Interim Period: Mentoring organizations review and rank student
proposals; where necessary, mentoring organizations may request further
proposal detail from the student applicant.
* 13 April: Mentoring organizations should have requested slots via
their profile in Melange by this point.
* 15 April: Slot allocations published to mentoring organizations.
* Interim Period: Slot allocation trades happen amongst organizations.
Mentoring organizations review and rank student proposals; where
necessary, mentoring organizations may request further proposal detail
from the student applicant.
* 21 April: First round of de-duplication checks happens; organizations
work together to try to resolve as many duplicates as possible.
* 24 April: All mentors must be signed up and all student proposals
matched with a mentor -07:00 UTC. Student acceptance choice deadline.IRC
meeting to resolve any outstanding duplicate accepted students - 19:00
UTC #gsoc (organizations must send a delegate to represent them in this
meeting regardless of if they are in a duplicate situation before the
meeting.)
* 27 April: 19:00 UTC Accepted student proposals announced on the Google
Summer of Code 2015 site.
Community Bonding Period: Students get to know mentors, read
documentation, get up to speed to begin working on their projects.
* 25 May: Students begin coding for their Google Summer of Code
projects;
Google begins issuing initial student payments provided tax forms are on
file and students are in good standing with their communities. Work
Period: Mentors give students a helping hand and guidance on their
projects.
* 26 June: 19:00 UTCMentors and students can begin submitting mid-term
evaluations.
* 3 July: 19:00 UTC Mid-term evaluations deadline;
Google begins issuing mid-term student payments provided passing student
survey is on file. Work Period: Mentors give students a helping hand and
guidance on their projects.
* 17 August: Suggested 'pencils down' date. Take a week to scrub code,
write tests, improve documentation, etc.
* 21 August: 19:00 UTC Firm 'pencils down' date. Mentors, students and
organization administrators can begin submitting final evaluations to
Google.
* 28 August: 19:00 UTC Final evaluation deadline
Google begins issuing student and mentoring organization payments
provided forms and evaluations are on file.
* 28 August: 19:30 UTC Students can begin submitting required code
samples to Google
* 31 August: Final results of Google Summer of Code 2015 announced
* 25 September: 19:00 UTC "Soft" deadline for student code sample
submission. Students who want their t-shirts and certificates in the
first wave of shipments must submit their code sample by this date.
* 6 - 8 November: Mentor Summit at Google: Delegates from each
successfully participating organization are invited to Google to greet,
collaborate and code. Our mission for the weekend: make the program even
better, have fun and make new friends.
[[ideas-page]]
== Ideas Page
*Status :* Open for Ideas +
*Link :* xref:ideas.adoc[Summer coding ideas for 2015]
We encourage students to provide creative yet useful ideas towards the
Fedora project as well. Please use
link:https://fedoraproject.org/wiki/Summer_coding_ideas_for_2016/Students_Idea[Student Idea] page to
note your idea. The idea will be moved to the original idea page once
the idea is picked by a mentor.
[[policy-on-proposal-submissions-on-non-related-project-ideas]]
== Policy on proposal submissions on non-related project ideas
Over the past period we have observed that few students tend to submit
proposals for their own ideas directly to Google-melange. There will be
no communication after then even we ask more info on Google-melange.
Such nature of submissions need extra effort when it comes to manage
proposals on Google-Melange. Therefore as a policy, proposals for
students ideas (with no supporting mentor indicated) that are being
submitted directly to Google-melange will be marked *Ignore* after a 24
hours of warning unless the students does not voluntary withdraw the
proposal or explain basis of their idea. +
This will not restrict submitting proposals on students ideas, we always
welcome novel and innovative ideas from students if they follow the
right path. As the first step send us your idea and will start discuss
how to manage it. If you have a supporting mentor for your own idea
please feel free to submit it directly to Google-melange and clearly
note the mentors' contact details.
[[links]]
== Links
1. link:https://fedoraproject.org/wiki/Foundation[The Foundation]
2. http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2016/help_page[GSoC
FAQ]
3. http://docs.fedoraproject.org/en-US/index.html[Fedora Documentation]
4. link:https://fedoraproject.org/wiki/Communicate/IRCHowTo[IRC]
5. link:https://fedoraproject.org/wiki/Development[Development]

View file

@ -0,0 +1,63 @@
....
14 March: 19:00 UTC Student application period opens...
Deadline March 25, 1900 UTC !!!
....
The timeline is decided and published by Google, track it at
https://developers.google.com/open-source/gsoc/timeline[the official
page].
'''''
Following are specific guidelines for the students to follow, who are
interested in submitting an application for the GSoC program through the
Fedora Project. Please go through carefully and follow them. Incomplete
applications will not be entertained after the deadline.
'''''
__'__Process
Following criterion should be fulfilled on or before the application
deadline unless otherwise specifically noted.
* Create a FAS account link:https://admin.fedoraproject.org/accounts[FAS
Account Signup / Login Page]
* Join with fedora-summer-coding mailing list
link:https://lists.fedoraproject.org/admin/lists/summer-coding[Fedora Summer
Coding Mailing List]
* Join with devel mailing list
link:https://admin.fedoraproject.org/mailman/devel[Devel Mailing List]
* Chose a project for proposal from
xref:ideas.adoc[Summer_coding_ideas_for_2016]
* Submit application/proposal on Google-Melange
link:https://summerofcode.withgoogle.com/get-started/[Google Melange
Submission Page]
''_'What to write about in your proposal / application._
* Details on your previous FOSS contributions (if any).
* A detailed plan with your planned activities in May to September (eg:
Exams in university, internships, vacations..etc)
* Bare mind - Remember to contact your mentor before you submit the application.
_Mentors are more likely to accommodate summer travel if they know in
advance_
We *_DO NOT_* accept any document after Google student application
deadline, all entries make after the deadline is ignored unless you have
not informed to Org Admins! However if you have any difficulty to meet
this requirement please let us know in advance (before the deadline).
__'__FAQ
What is the need of a detailed plan of my activities? It is important to
get an idea about your free time and arrange things at the early stage.
Therefore this is really important and try to make it accurate as much
as possible.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,240 @@
= Google Summer of Code 2016
image::GSoC_2016.png[GSoC_logo]
The Fedora Project has represented the Google Summer of Code program for
ten years and we are participating in the 2016 program as well. This
wiki page serves as the GSoC portal. Please feel free to contact us via link:https://lists.fedoraproject.org/admin/lists/summer-coding@lists.fedoraproject.org/[sumer-coding]
list for clarifications and more information. You can also use the IRC
channel,link:https://webchat.freenode.net/?channels=#fedora-summer-coding[#fedora-summer-coding].
[[students]]
== Students
Students who are looking for challenges and would like to contribute to
the world's most leading and innovative Linux distribution, this could
be the chance. Please feel free to contact and refer to the material and
start contacting mentors.
1. xref:ideas.adoc[Main Idea Page]
[[why-spend-your-summer-working-on-foss]]
=== Why spend your summer working on FOSS?
When you work in the open on free software, you create a body of work
that follows you for the rest of your life. Rather than a coding
assignment done by thousands of other students and relegated to the
bottom of the bit drawer at semester's end, working in FOSS is a chance
to contribute to a living project.
Working in FOSS gives you a chance to:
* Work with real-world, large codebases.
* Collaborate with real engineers and other professional experts.
* Contribute to something meaningful while learning and earning student
value.
* Learn tools and processes that are just like what you are going to use
if you work in technology after graduation.
* Make friends and contacts around the globe.
* Possibly attract attention that gets you an internship or job after
graduation.
* Create lifetime connections.
[[why-work-with-fedora]]
=== Why work with Fedora?
Our project is large and diverse. We are very experienced at working
with new contributors and helping them be successful.
Many long-time contributors continue to be around, lending expertise and
mentoring. People who stay around the community and do good work are
noticed. They get hired for jobs from it, including being hired by Red
Hat. Past Google Summer of Code students were hired by Red Hat, as well
as interns in various positions. This is just an example, as experience
and reputation in the Fedora Project communities is influential on your
career in many ways.
As long-standing communities with many facets, it is possible for you to
find many rewarding sub-projects to work on.
You should know that contributing to FOSS doesn't require you to have
super programming skills, or super-anything else. You just need be
interested and curious enough, and be willing to become comfortable
being productively lost. This is the state of learning through finding
your way around and figuring things out.
[[step-by-step-guide-for-students]]
=== Step-by-step guide for students
Please check the link:https://fedoraproject.org/wiki/GSOC_Guide_students[step-by-step guide for
students].
[[students-application]]
=== Student's application
Please refer to the following to follow the students' application
process,
1. xref:student_application_process.adoc[Student Application
Process]
[[administration]]
== Administration
In order to clarify matters and/or obtain more information related with
this year's GSoC with Fedora, please contact the administrators directly
(please consider CCing the summer-coding list where ever possible).
1. link:https://fedoraproject.org/wiki/User:Decause[Remy DeCausemaker]
2. link:https://fedoraproject.org/wiki/User:Kushal[Kushal Das]
3. link:https://fedoraproject.org/wiki/User:Hguemar[Haรฏkel Guรฉmar]
[[mentors]]
== Mentors
The contributors of the Fedora Project can propose ideas and mentor
them. Please feel free to check following links and please add your
ideas to the main idea page. Furthermore, if you are not interested in
proposing an idea but still want to support the program, please check
the students' idea page and pick one as per your interest.
1. link:http://en.flossmanuals.net/GSoCMentoring/[Manual on Mentoring]
2. xref:ideas.adoc[Main Idea Page]
[[how-to-work-with-students]]
=== How to work with students
* One way is to provide an idea for students to work on. This idea might
be very well planned out, in which case you may need a high-level of
contact with the student to get it implemented correctly.
* It is harder to find success where you are completely certain of how
an idea needs to be implemented; finding a student with the skills and
interest to implement a specific solution is a lot harder than finding a
student with enough skills to respond to a use case need.
* Where you can have looser ideas, you may be able to find a student who
works as a sort-of intern who can implement a solution to a use case you
have. In past experiences, students going after a use case are more
likely to get somewhere with self-direction.
* You may also want to work with a student who brings an idea to your
sub-project. This requires a different level of communication throughout
the project, but can be the most rewarding.
[[mentor-responsibilities]]
=== Mentor responsibilities
You are an essential part of the student's success, the project's
success, and the success for your overall organization (Fedora,
JBoss.org, or another).
Your responsibilities include:
* Being an interface for an identified sub-project or SIG in Fedora.
* Helping students communicate with the overall project and any
upstream.
* Be the final, accountable person for deciding if the student is
successful or not, which affects payment.
[[list-of-mentors]]
=== List of Mentors
[[list-of-registered-members]]
==== List of registered members
List of mentors who are registered with Google and added to the project
as a mentor are listed here:
link:https://fedoraproject.org/wiki/GSOC_2016/Registered_Mentors_List[Registered Mentor List]
[[communication]]
== Communication
*Mailing List (GSOC related) :* link:https://lists.fedoraproject.org/admin/lists/summer-coding@lists.fedoraproject.org/[summer-coding] +
*Mailing List (Technical) :* link:https://lists.fedoraproject.org/admin/lists/devel@lists.fedoraproject.org/[devel] +
*IRC :* Channel - link:https://webchat.freenode.net/?channels=#fedora-summer-coding[#fedora-summer-coding] or link:https://webchat.freenode.net/?channels=#fedora-devel[#fedora-devel] on Freenode
[[timeline-student-version]]
== Timeline (Student version)
* link:http://www.google.com/calendar/ical/gsummerofcode%40gmail.com/public/basic.ics?ctz=America/Los_Angeles[Official
Google Calendar]
* Reference:
link:https://developers.google.com/open-source/gsoc/timeline[Full Timeline]
* *13 October, 2015*: Program announced.
* *8 February, 2016: 19:00 UTC* Mentoring organizations can begin
submitting applications to Google.
* *19 February: 19:00 UTC* Mentoring organization application deadline.
* *20 - 29 February*: Google program administrators review organization
applications.
* *29 February 19:00 UTC* List of accepted mentoring organizations
published on the Google Summer of Code 2016 site.
Interim Period: Would-be students discuss project ideas with potential
mentoring organizations.
* *14 March: 19:00 UTC* Student application period opens.
* *25 March: 19:00 UTC* Student application deadline.
Interim Period: Mentoring organizations review and rank student
proposals; where necessary, mentoring organizations may request further
proposal detail from the student applicant.
Interim Period: Slot allocation trades happen among organizations.
Mentoring organizations review and rank student proposals; where
necessary, mentoring organizations may request further proposal detail
from the student applicant.
* *22 April*: Accepted student proposals announced on the Google Summer
of Code 2016 site.
Community Bonding Period: Students get to know mentors, read
documentation, get up to speed to begin working on their projects.
* *23 May*: Students begin coding for their Google Summer of Code
projects; Google begins issuing initial student payments provided tax
forms are on file and students are in good standing with their
communities.
Work Period: Mentors give students a helping hand and guidance on their
projects.
* *20 June: 19:00 UTC* Mentors and students can begin submitting
mid-term evaluations.
* '''27 June: 19:00 UTC '''Mid-term evaluations deadline; Google begins
issuing mid-term student payments provided passing student survey is on
file.
Work Period: Mentors give students a helping hand and guidance on their
projects.
* *15 August*: Suggested 'pencils down' date. Take a week to scrub code,
write tests, improve documentation, etc.
* *21 to 23 August*: Final week: Students tidy code, write tests,
improve documentation and submit their code sample. Students also submit
their final mentor evaluation.
* *23 August*: Mentors can start submitting final student evaluations.
* *29 August*: 19:00 UTC Final evaluation deadline
* *30 August*: Final results of Google Summer of Code 2016 announced
* *Late October*: Mentor Summit at Google. Mentors and Organization
Administrators from each participating organization are invited to
Google for an unconference to collaborate on ideas to make the program
better and to make new friends too!
[[ideas-page]]
== Ideas Page
* *Status :* Open for Ideas +
* *Link :* xref:ideas.adoc[Summer coding ideas for
2016]
[[links]]
== Links
1. link:https://docs.fedoraproject.org/fedora-project/project/fedora-overview.html[The Four Foundations of Fedora]
2. link:https://developers.google.com/open-source/gsoc/resources/[Official
GSoC Resources]
3. link:http://docs.fedoraproject.org/en-US/index.html[Fedora Documentation]
4. link:https://fedoraproject.org/wiki/How_to_use_IRC?rd=Communicate/IRCHowTo[IRC]
5. link:https://fedoraproject.org/wiki/Development[Development]

View file

@ -0,0 +1,64 @@
....
14 March: 19:00 UTC Student application period opens...
Deadline March 25, 1900 UTC !!!
....
The timeline is decided and published by Google, track it at
https://developers.google.com/open-source/gsoc/timeline[the official
page].
'''''
Following are specific guidelines for the students to follow, who are
interested in submitting an application for the GSoC program through the
Fedora Project. Please go through carefully and follow them. Incomplete
applications will not be entertained after the deadline.
'''''
__'__Process
Following criterion should be fulfilled on or before the application
deadline unless otherwise specifically noted.
* Create a FAS account link:https://admin.fedoraproject.org/accounts[FAS
Account Signup / Login Page]
* Join with fedora-summer-coding mailing list
link:https://lists.fedoraproject.org/admin/lists/summer-coding[Fedora Summer
Coding Mailing List]
* Join with devel mailing list
link:https://admin.fedoraproject.org/mailman/devel[Devel Mailing List]
* Chose a project for proposal from
xref:ideas.adoc[Summer_coding_ideas_for_2016]
* Submit application/proposal on Google-Melange
link:https://summerofcode.withgoogle.com/get-started/[Google Melange
Submission Page]
''_'What to write about in your proposal / application._
* Details on your previous FOSS contributions (if any).
* A detailed plan with your planned activities in May to September (eg:
Exams in university, internships, vacations..etc)
* Bare mind - Remember to contact your mentor before you submit the
application.
_Mentors are more likely to accommodate summer travel if they know in
advance_
We *_DO NOT_* accept any document after Google student application
deadline, all entries make after the deadline is ignored unless you have
not informed to Org Admins! However if you have any difficulty to meet
this requirement please let us know in advance (before the deadline).
__'__FAQ
What is the need of a detailed plan of my activities? It is important to
get an idea about your free time and arrange things at the early stage.
Therefore this is really important and try to make it accurate as much
as possible.

View file

@ -0,0 +1,195 @@
....
March 20: 16:00 UTC Student application period opens
April 03: 16:00 UTC Student application Deadline
**Note** There is a new requirement that you submit all materials in PDF form. See below.
....
This timeline is decided and published by Google, see the full timeline
on link:https://developers.google.com/open-source/gsoc/timeline[the official
page].
'''''
The following are specific guidelines for students to use to submit an
application for the GSoC program through the Fedora Project. Please go
through these carefully and follow them. Applications must be complete
by the deadline listed above. Late applications cannot be accepted.
'''''
[[student-application-process]]
== Student Application Process
[[learn]]
=== Learn
Before you do anything, learn about the program and Fedora. These links
may be helpful:
* link:https://summerofcode.withgoogle.com/[GSoC official site]
* link:https://developers.google.com/open-source/gsoc/faq[GSoC 2016 FAQs]
* link:https://docs.fedoraproject.org/fedora-project/project/fedora-overview.html[The Four Foundations of Fedora]
* link:https://fedoraproject.org/wiki/GSOC_2017[General GSoC Guidance]
* link:https://fedoraproject.org/wiki/Mailing_list_guidelines[Mailing List Guidelines]
[[communicate]]
=== Communicate
Begin link:https://fedoraproject.org/wiki/Communicating_and_getting_help[communicating] with the
community. Our community members can help you understand the existing
project proposals. If you're going to try and propose your own project,
this is a great way to understand the needs of the project and find a
mentor.
* link:https://lists.fedoraproject.org/admin/lists/summer-coding.lists.fedoraproject.org[the
summer-coding list]
* link:https://lists.fedoraproject.org/admin/lists/devel.lists.fedoraproject.org[the
development list].
Don't forget to contact mentors on projects that interest you to learn
more. If you're going to propose a project you must have a mentor at the
time of proposal.
[[apply]]
=== Apply
The application for students is split into three main parts. All parts
need to be completed by the due date.
\1. Google Summer of Code Application
\2. Supplemental Application Materials on the Fedora Project Wiki
\3. Additional Fedora Requirements
[[google-summer-of-code-application]]
==== Google Summer of Code Application
Submit the application/proposal at the
link:https://summerofcode.withgoogle.com/get-started/[Google Summer of Code
Site]
*Note:* You must submit a PDF version of all of the information you
prepare with your application using the Google site. The PDF should
consist of the information from the supplemental application
requirements section below. It should also contain any custom project
you are proposing, if any.
We are not allowed to consider students who do not submit this PDF.
Students will not be judged on the visual layout of their PDF, however
all information must be readable. It is acceptable for you to submit PDF
printouts from the wiki.
[[supplemental-application-materials-on-the-fedora-project-wiki]]
==== Supplemental Application Materials on the Fedora Project Wiki
Chose a project for proposal from
xref:ideas.adoc[Summer_coding_ideas_for_2017].
While it is possible to propose your own project, it is often more
successful for you to select one that is already proposed by a mentor.
Create a new wiki page to hold your application. The url should look
like
////
TODO - check the result
////
link:https://fedoraproject.org/wiki/GSOC_2017/Student_Application_Yourusername[`https://fedoraproject.org/wiki/GSOC_2017/Student_Application_Yourusername`],
replacing `Yourusername` with your actual
link:https://fedoraproject.org/wiki/Account_System[Fedora Account System]
username.
You should include the information that is relevant to the project your
are selecting or proposing as well as information about you, your
background, etc. The following format provides some guidance:
* Contact Information
** List your Name, Email Address, Blog URL, and any additional contact
information you think we need. We tend to email so be sure you're
reading your email.
* About You - Consider these questions
** Do you have any past involvement with the Fedora Project or another
open-source project as a contributor? What kind of contributions have
you made (code and non-code)? Please share any public contributions you
have made (urls, etc.)
** What are you studying? Why?
** What motivates you to do your best? How do you stay focused? Briefly
describe how you organize your work.
* Why Us? - Consider these questions
** Why do you want to work with the Fedora Project?
** Do you plan to continue contributing to the Fedora Project after
GSoC? If yes, what sub-project(s) are you interested with?
* Why This Project? - Consider these questions
** Which specific project interests you? If you are proposing your own
project, do it here. If you are proposing the project, explain why it
benefits the community.
** Have you contacted the mentor(s) listed for the project?
** What relevant experience do you have for this project?
** What do you want to gain from this project?
** Describe this project in your own words. What does it mean to you?
What do you think the final deliverable is?
* Why should we choose you over other applicants?
* Propose a rough schedule for this project. Ideally you will have
regular deliverables throughout the entire period.
* What are you specific plans from May to September (eg: Exams in
university, internships, vacations..etc). We need to know if there are
periods of time where you are likely to be unavailable. We are better at
accommodating these periods if we know of them in advance.
[[additional-fedora-requirements]]
==== Additional Fedora Requirements
Students need to do the following as part of the application process:
* Create a FAS account link:https://admin.fedoraproject.org/accounts[FAS
Account Signup / Login Page]
* If you can't edit the wiki (see next step), email link:https://fedoraproject.org/wiki/User:Bex[Brian (bex)
Exelbierd], the primary administrator with your FAS ID and request
access.
* On the project wiki link:https://fedoraproject.org/wiki, create a user
page. Do this by opening a new web browser tab and going to
link:https://fedoraproject.org/wiki/User:Yourusername[`https://fedoraproject.org/wiki/User:Yourusername`],
replacing `Yourusername` with your actual Fedora Account System
username.
** This link:https://fedoraproject.org/wiki/Template:Userpage[user page template] provides a basic layout
that you can copy. You can also look at the markup for other users'
pages. Here's a selection of some nice user pages:
*** link:https://fedoraproject.org/wiki/User:Jsimon[Joerg Simon]
*** link:https://fedoraproject.org/wiki/User:Ilianaw?rd=User:Ianweller[Iliana Weller]
*** link:https://fedoraproject.org/wiki/User:Pfrields[Paul W. Frields]
*** link:https://fedoraproject.org/wiki/Kaio2012?rd=User:Kaio[Caius C. Chance]
** Do not forget to add the Summer coding category to your page, for
example for 2017: `[[category:Summer_coding_2017]]`
** When you save the page, remember to click 'watch this page' at the
top.
* Join the fedora-summer-coding mailing list
link:https://lists.fedoraproject.org/admin/lists/summer-coding.lists.fedoraproject.org[Fedora
Summer Coding Mailing List] - This list is fairly low volume.
* Join the devel mailing list
link:https://lists.fedoraproject.org/admin/lists/devel.lists.fedoraproject.org[Devel
Mailing List] - this list can be higher volume you may wish to use mail
filters appropriately.
* Sign the FPCA by following the directions
link:https://fedoraproject.org/wiki/Account_System/CompleteFPCA[here]
[[let-others-know]]
=== Let others know
Let others know about your submission by forwarding your application URL
with a brief description about your proposal to the link:https://lists.fedoraproject.org/admin/lists/summer-coding@lists.fedoraproject.org/[summer-coding] mailing list.
[[keep-communicating]]
=== Keep communicating
We cannot overstress the importance of communication. Keep talking, and
listening, to the discussion group, to the sub-projects relevant to your
proposal and to potential mentors. Be patient, as mentors and other
contributors are often very busy people.
[[need-help]]
=== Need Help?
If you need help, use the methods described at link:index.html[GSOC_2017]
You also find this example application helpful:
link:https://fedoraproject.org/wiki/GSOC_2012/Student_Application_Bckurera[GSOC_2012/Student_Application_Bckurera]

View file

@ -0,0 +1,494 @@
Find an idea you like? Want to propose your own? See the
xref:application_process.adoc[student application process].
[[students-welcome]]
== Students Welcome
If you are a student looking forward to participating in
link:index.html[GSOC 2017] with Fedora, please feel free to browse this
idea list which is still growing.
////
I don't know if this does work: (it's pink)
////
*Now please go read the link:https://fedoraproject.org/wiki/GSOC_2017#What_can_I_do_today.3F[What Can
I do Today] section of the main page.*
Do not hesitate to contact the mentors or contributors listed on this
page for any questions or clarification. You can find helpful people on
the IRC channel, or use the mailing list. can be used for getting help
with programming problems.
If you are new to the Fedora Project, the following material will help
you to get started. You should also follow the
xref:application_process.adoc[student application process]
* link:https://docs.fedoraproject.org/fedora-project/project/fedora-overview.html[The Four Foundations of Fedora]
* link:https://developers.google.com/open-source/gsoc/resources/[Official
GSoC Resources]
* link:http://docs.fedoraproject.org/en-US/index.html[Fedora Documentation]
* link:https://fedoraproject.org/wiki/How_to_use_IRC?rd=Communicate/IRCHowTo[IRC]
* link:https://fedoraproject.org/wiki/Development[Development]
[[supporting-mentors]]
=== 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.
* link:https://fedoraproject.org/wiki/User:Bex[Brian (bex) Exelbierd] (Fedora Community Action and Impact
Coordinator, FCAIC, ๐ŸŽ‚, containers, general development, general Linux)
* link:https://fedoraproject.org/wiki/User:Jflory7[Justin W. Flory] (General development, general Linux,
Fedora community, GSoC alumnus, questions about program, misc. advice)
* link:https://fedoraproject.org/wiki/User:Rhea[Radka (rhea) Janek] (C#, webserver or dotnet related stuff
on Linux, general support and help with the program)
* link:https://fedoraproject.org/wiki/User:Linuxmodder[Corey Sheldon] (Python, 2Factor/Multi-Factor Auth, QA
Testing, general mentoring, security, 2nd year mentor)
* link:https://fedoraproject.org/wiki/User:Skamath[Sachin S. Kamath] (General Linux, Fedora community,
Metrics, GSoC alumnus, Help with program)
* link:https://fedoraproject.org/wiki/User:Bee2502[Bhagyashree(Bee)] ( Fedora community, Metrics, Python,
past GSoC mentor, Support related to GSoC)
* link:https://fedoraproject.org/wiki/User:Lsd[Lali Devamanthri] (General development,
Middleware/Integration, general Linux, Fedora community, GSoC alumnus,
past GSoC mentor)
* link:https://fedoraproject.org/wiki/User:Devyani7[Devyani Kota] (Fedora community, GSoC Alumnus, General
Linux, Python, questions related to GSoC)
[[draft-of-an-idea]]
=== 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]]
==== Project Name
[cols="3,10",options="header",]
|=======================================================================
|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)_
link:https://fedoraproject.org/wiki/SIGs/DotNet[DotNet SIG] - link:https://fedoraproject.org/wiki/User:Rhea[Radka (rhea) Janek], ...
|*Contacts (IRC & email)* |_link:https://webchat.freenode.net/?channels=#example-irc-channel[#example-irc-channel] & link:https://lists.fedoraproject.org/admin/lists/example-list@lists.fedoraproject.org/[exaple-list@lists.fedoraproject.org] - Mentors email or mailing list of your
SIG._
|*Idea description* |_Something something._
|*Notes & references* |_Something or nothing._
|=======================================================================
[[idea-list-for-gsoc-2017]]
== Idea list for GSoC 2017
[[directory-server-developing-administrative-tools]]
=== 389 Directory Server: developing administrative tools
[cols="3,10",options="header",]
|=======================================================================
|*Status* |Proposed - draft
|*Skill level* |Intermediate
|*Skills required* |Python: Must understand Classes, Inheritance, and
Modules
|*Mentor(s)* |link:https://fedoraproject.org/wiki/User:Firstyear[William Brown] (firstyear UTC+10, please
be patient!)
|*Contacts (IRC & email)* |link:https://webchat.freenode.net/?channels=#389[#839] & link:https://lists.fedoraproject.org/admin/lists/389-devel@lists.fedoraproject.org/[389-devel@lists.fedoraproject.org]
|*Idea description* a|
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* |link:http://www.port389.org/[port389.org]
|=======================================================================
[[asp.net-core-web-application-for-rfedora-subreddit]]
=== ASP.NET Core web application for /r/Fedora subreddit
[cols="3,10",options="header",]
|=======================================================================
|Status |Proposed - draft
|*Skill level* |Novice
|*Skills required* |Basic C#
|*Mentor(s)* |link:https://fedoraproject.org/wiki/SIGs/DotNet[DotNet SIG] - link:https://fedoraproject.org/wiki/User:Rhea[Radka (rhea)
Janek]
|*Contacts (IRC & email)* a|link:https://webchat.freenode.net/?channels=#fedora-dotnet[#fedora-dotnet]
& link:https://lists.fedoraproject.org/admin/lists/dotnet-sig@lists.fedoraproject.org/[dotnet-sig@lists.fedoraproject.org], radka.janek@redhat.com
|*Idea description* a|
Goals:
* ASP.NET Core web application for our link:https://www.reddit.com/r/Fedora[/r/Fedora subreddit] to let the user choose a flair, based on their FAS Group memberships, written in C# and deployed on a Fedora production server as systemd service.
You will learn:
* What is it .NET Core and how to use it in Linux
* How to write C# code on Linux and what IDEs are available to you.
* You will create and deploy an ASP.NET Core application on our Fedora production server as systemd service, with secure Apache in front of it.
|*Notes & references* |link:https://fedoraproject.org/wiki/DotNet[.NET on Fedora],
link:https://fedorahosted.org/ipsilon[ipsilon] ; _Due to high interest we
recommend that you apply for different project._
|=======================================================================
[[net-core-wrapper-library-for-systemd]]
=== .NET Core wrapper library for systemd
[cols="3,10",options="header",]
|=======================================================================
|Status |Proposed - draft
|*Skill level* |Intermediate
|*Skills required* |C# and basic Linux
|*Mentor(s)* |link:https://fedoraproject.org/wiki/SIGs/DotNet[DotNet SIG] - https://fedoraproject.org/wiki/User:Rhea[Radka (rhea)
Janek]
|*Contacts (IRC & email)* a|link:https://webchat.freenode.net/?channels=#fedora-dotnet[#fedora-dotnet]
& link:https://lists.fedoraproject.org/admin/lists/dotnet-sig@lists.fedoraproject.org/[dotnet-sig@lists.fedoraproject.org], radka.janek@redhat.com
|*Idea description* a|
Goals:
* .NET Standard library wrapping systemd, written in C# and published on NuGet.
* By utilizing systemd, we can control various aspects of the system underneath directly from C# (eg. stopping or starting services, scheduling reboots)
You will learn:
* What is it .NET Core and how to use it in Linux
* How to write C# code on Linux and what IDEs are available to you.
* How to create and maintain NuGet packages.
* How to utilize systemd and dbus to control your Linux system.
|*Notes & references* |link:https://fedoraproject.org/wiki/DotNet[.NET on Fedora] ; _Due to high
interest we recommend that you apply for different project._
|=======================================================================
[[continuous-static-analysis-db]]
=== Continuous static analysis db
[cols="3,10",options="header",]
|=======================================================================
|Status |Proposed - draft
|*Skill level* |Intermediate
|*Skills required* a|
* Python
* Distributed systems
|*Mentor(s)* |link:https://fedoraproject.org/wiki/User:Athoscr[ Athos Ribiero] (athoscr)
|*Contacts (IRC & email)* |IRC: athos Email: athoscribeiro@gmail.com
|*Idea description* |This project proposes the design and implementation
of a system to continuously run multiple security oriented static
analyzers on source code and display the alarms related to a specific
version of the analyzed software. The alarms to be presented will be
ranked based on their importance, where critical flaws shall be ranked
first and potential false positives are ranked last. We will develop a
tool to perform continuous static analysis with different static
analyzers and propose a warning classification method using their
outputs. We will also propose a visualization approach for the
information generated with our tool.
|*Notes & references* |link:https://fedoraproject.org/wiki/StaticAnalysis[Static Analysis SIG]
|=======================================================================
[[migrate-plinth-to-fedora-server]]
=== Migrate Plinth to Fedora Server
[cols="3,10",options="header",]
|=======================================================================
|Status |Proposed - draft
|*Skill level* |Novice
|*Skills required* a|
* Python and Django
* Git
* dnf knowledge