SoC2006
openSUSE participates in Google's Summer of Code. This gives students the chance to work on an open source project in the summer and get paid for this by Google. More details can be found in the Student FAQ.
There are several areas in openSUSE which offer the opportunity to do a Summer of Code project. Read on for the details. The list is not exhaustive. If you have other great ideas, please feel free to propose them. Please also notice this thread on the openSUSE mailing list, it has some nice proposals & discussion.
The proposal submission deadline is past; the granted projects can be found at Google's SoC page.
İçindekiler
- 1 openSUSE Build Service
- 1.1 General Projects
- 1.2 Build Service Features
- 1.2.1 Direct source code import
- 1.2.2 Software index site integration
- 1.2.3 Translation Service
- 1.2.4 Abstract package build description
- 1.2.5 Build Service News Feeds
- 1.2.6 Building distributions
- 1.2.7 Klik packages
- 1.2.8 Building Windows packages
- 1.2.9 Test backend
- 1.2.10 Online help system for web client
- 1.3 Build Service Clients
- 2 YaST
- 3 deltarpm
- 4 SWAMP
openSUSE Build Service
The Build Service provides servers, infrastructure and interfaces to allow developers and packagers to build packages of their software for SUSE and other distributions. It's currently in a preview phase with limited access to selected users. It will be opened to the public later this year. The build service runs at build.opensuse.org. The source code and other project related information can be found at Novell Forge.
There are lots of possible projects around the Build Service. Below you find a list of ideas. If you have questions or comments please post them to the Build Service mailing list.
General Projects
Functional testing of REST based models
Add support for REST backends to the Ruby on Rails test suite. This should be similar to the existing support for database backends. We need this for proper testing of the Build Service web client and the frontend, but it would also be a feature useful outside of the build service as there are lots of other REST based web services out there.
Required Knowledge: Ruby, Rails, XML, HTTP
REST test suite
Improve the REST test suite. Possible areas for improvement are test coverage analysis, complete support for all HTTP methods, helper functions for simplifying the test suite code, more automatic creation of test cases, etc. This is a generic tool which is useful to document and test all kinds of web services which are based on plain HTTP by using the REST model.
Required Knowledge: Ruby, XML, HTTP
REST API documentation generation
Improve generation of the API documentation of the REST based web service the build service frontend provides. This should be done in a generic way which can also be used to create the API documentation of other web services.
Required Knowledge: HTTP, XML Schema, HTML, Ruby
Build Service Features
Direct source code import
Support for directly checking out source code from version control systems like CVS or SVN into the build service. Building packages would then only be a matter of providing links to the source code repository and some version information. This could be used to build development snapshots or to automatically make released software available as packages for all kinds of distributions built by the build service.
Required Knowledge: Ruby, XML, SVN, CVS
Software index site integration
Add support for scanning of software index sites to import source code announced there into the build service. Most software is announced on sites like Sourceforge, Freshmeat, or KDE-Apps. The information which is published there could be used to build packages of the corresponding software with the Build Service in a semi-automated way. This potentially could completely release the burden of creating packages from the software authors.
Required Knowledge: XML
Translation Service
Create a translation system for translating texts used in packages. This first should cover the meta information provided by the packager, but could also be extended to optionally cover texts in the sources. This would need interfacing with upstream translation infrastructure.
Required Knowledge: Ruby, Rails, i18n
Abstract package build description
Create a tool to generate required control files to build RPMs for various distributions and Debian packages from a common description. A good start would be to do this for relatively simple and standardized packages like KDE application, Perl modules, etc. and then expand this to more generic use.
Required Knowledge: Package Building, RPM, Debian Packages, XML
Build Service News Feeds
Implement news feed generation providing information about packages and their status.
Required Knowledge: RSS, Atom, Ruby
Building distributions
Add support for building distributions from the project information. This could be done in the form of ISOs for installation, as live system, as XEN image, etc. This could also split up in separate projects.
Required Knowledge: Live CDs, XEN, XML
Klik packages
Implement support for generating klik packages.
Required Knowledge: Klik
Building Windows packages
Support for building Windows packages of cross-platform projects.
Required Knowledge: Cross-platform development, Windows
Test backend
Improve test backend to be useful for testing the complete functionality of the frontends.
Required Knowledge: Ruby, Rails
Online help system for web client
Create an online help system for the build service web client.
Required Knowledge: Ruby, Rails, HTML
Build Service Clients
Rich GUI client for build service
Develop a native rich GUI client for the build service. This could be done as a KDE application which talks to the build service API. It should provide functionality to conveniently manage projects and packages, control the build process and show build results, status and logs.
Required Knowledge: C++, Qt, KDE, XML, HTTP
Perl command line client for build service
Improve the Perl command line client. This includes developing a generic Perl library to access the build service.
Required Knowledge: Perl, XML, HTTP
Python command line client for build service
Improve the Python command line client. This includes developing a generic Python library to access the build service.
Required Knowledge: Python, XML, HTTP
IDE Integration
IDE integration. Write plugins for Eclipse or KDevelop to directly build packages from the IDE via the build service.
Required Knowledge: Eclipse, Java or KDevelop, C++
YaST
YaST (Yet another Setup Tool) is the most powerful installation and system management tool in the Linux environment, developed by SUSE as open source project and a crucial part of the SUSE Linux distribution.
YaST GTK+ frontend
Create a GTK+ frontend for YaST and its modules. (YaST already features a QT and ncurses frontend, which are available from reference.) There is also seed code for this project here that gets much of the bootstrapping & base structure / autoconf lifting out of the way. We already support some of the simple test widgets. See [1] for documentation regarding YaST.
Reference: [2]
YaST2-GTK Wiki notes
Required Knowledge: GTK+, C, C++
New YaST modules
Create a new YaST module to perform a certain task, like setting up SUSE Linux as a Terminal Server (a la LTSP), configuring the SUSE Firewall or managing software installation with the SMART package manager.
Required Knowledge: C++, YCP
deltarpm
The deltarpm package contains tools to create and apply deltarpms. A deltarpm contains the difference between an old and a new version of an RPM, which makes it possible to recreate the new RPM from the deltarpm and the old one. You do not need to have a copy of the old RPM, because deltarpms can also work with installed RPMs.
performance optimization
deltarpm was developed without respect for CPU utilization and memory consumption. The goal is to optimize deltarpm generation, application and the overall memory & CPU utilization.
Required Knowledge: C
SWAMP
SWAMP is a server-based workflow management tool used and developed by SUSE as open source project.
GUI workflow editor
Create a GUI editor for XML workflow definitions.
Required Knowledge: C++. Qt, KDE, XML
GUI Client
Create a GUI client that communicates with the server by its SOAP interface.
Required Knowledge: C++, Qt, KDE, SOAP