Developers manual: Difference between revisions
m (Reverted edits by 212.67.29.0 (Talk); changed back to last version by MitchellNCharity) |
m (Reverted edits by Tonyguards (Talk) to last revision by Patrol) |
||
(69 intermediate revisions by 40 users not shown) | |||
Line 1: | Line 1: | ||
⚫ | |||
{{Developers}} |
{{Developers}} |
||
⚫ | |||
{{ Latest Releases |
|||
| stable = inline |
|||
| devel = inline |
|||
| livecd = inline |
|||
| firmware = inline |
|||
| server = inline |
|||
| extra_text |
|||
}} |
|||
== Developing user software == |
|||
<div style="margin: 20; padding-left: 30; padding: 10; border: black thin solid; background-color: #e0ffe0">This is a quick intro to working on activities for the XO, and other code for OLPC. Feel free to add to and update the manual; it is a work in progress.</div> |
|||
OLPC ships user-level software primarily produced by external communities. We do also contribute to their development, but our contributions go "upstream" through their community rather than our own. |
|||
This manual tries to provide you with the answers you need to get started either by contributing to existing projects or starting your own. Although it focuses on the software development side of the process, we are also very interested in encouraging [[Participate|other contribtions]]. |
|||
If you're looking to get involved in development of anything that the user sees, you should consult the developer documentation for the upstream project in question. For example, if you want to develop [[Sugar]] or a Sugar activity, see the [http://wiki.sugarlabs.org/go/Sugar_Labs/Getting_Involved#Developer Sugar developer resources]. For the GNOME platform or applications, refer to the [http://developer.gnome.org/ GNOME developer community]. |
|||
== Developing at the system level == |
|||
If you're interested in developing OLPC software at the system-level, the important backend stuff that the user doesn't really see, you can find documentation here. |
|||
OLPC builds upon Fedora as much as possible - meaning that many system-level developments would be more appropriately done within the [https://fedoraproject.org/wiki/Development Fedora developer community], which will then be automatically included in OLPC's software at a later date. |
|||
== Quickstart == |
|||
* See the [[Contributors_program|Contributors program]] page. |
|||
* Get familiar with the Python language. Much OLPC development happens in Python. |
|||
** If you're familiar with other aspects of the [[Developers/Stack]], then you can focus on those aspects |
|||
* Sign up for the [http://lists.laptop.org/listinfo/devel devel] [[mailing lists|mailing list]], become a lurker |
|||
* If you do [[IRC]], join #olpc on irc.freenode.net, and #olpc-devel on irc.oftc.net |
|||
* See [[Developers/Getting Started]] for some suggestions on how to find a project |
|||
== Overview == |
== Overview == |
||
* [[Developers/Getting Started]] |
|||
** First steps: developer keys, getting connected with the community, finding a project, reporting bugs. |
|||
* [[Developers/Setup]] |
* [[Developers/Setup]] |
||
** Indicates how you should configure your workstation for system-level OLPC development. |
|||
** Describes how to set up a [[Sugar]] development environment, with a discussion of which approach is likely to be the most appropriate for you |
|||
* [[Test Config Notes]] |
|||
** If you have an XO, this page has many useful configuration tips for testing your application. |
|||
* [[Developers/Stack]] |
* [[Developers/Stack]] |
||
** Describes the " |
** Describes the choices of programming languages and "software stacks" for developing code on the OLPC. It details the base stack of hardware, firmware, operating system and the [[Sugar]] environment. It then gives options for programming in Python, Squeak, C/C++ and other languages or activities. |
||
* [[Developers/Issues]] |
* [[Developers/Issues]] |
||
** Describes the special considerations required for working on the OLPC project, particularly those driven by our target hardware and deployment environments |
** Describes the special considerations required for working on the OLPC project, particularly those driven by our target hardware and deployment environments |
||
Line 21: | Line 49: | ||
* [[Developers/FAQ]] |
* [[Developers/FAQ]] |
||
** Collects and attempts to answer common questions that developers have when working on the Sugar platform |
** Collects and attempts to answer common questions that developers have when working on the Sugar platform |
||
* [[Developers/Fedora]] |
|||
** Discusses how to join the Fedora development community on top of which OLPC is based. |
|||
== Release Schedule == |
== Release Schedule == |
||
See [[Release Process Home]] for discussion of how OLPC presently makes releases. |
|||
We expect to be doing updates monthly through the first quarter of 2008. After that, we will likely adopt a three-month update cycle. Eventually we will adopt a six-month update cycle. It should also be noted that we will be—when time permits—moving to a build environment that enables individual activity developers to maintain their own build cycles. |
|||
== Related docs and manuals == |
== Related docs and manuals == |
||
* [[ |
* [[Tutorials]] |
||
* [[Activation_and_Developer_Keys|Instructions for getting a Developer Key]] |
|||
* [https://www6.software.ibm.com/developerworks/education/l-sugarpy/l-sugarpy-pdf.pdf Application Development for the OLPC Laptop] (Tim Jones of IBM) |
|||
[[Category:Developers]] |
[[Category:Developers]] |
Latest revision as of 15:01, 25 October 2012
Developing user software
OLPC ships user-level software primarily produced by external communities. We do also contribute to their development, but our contributions go "upstream" through their community rather than our own.
If you're looking to get involved in development of anything that the user sees, you should consult the developer documentation for the upstream project in question. For example, if you want to develop Sugar or a Sugar activity, see the Sugar developer resources. For the GNOME platform or applications, refer to the GNOME developer community.
Developing at the system level
If you're interested in developing OLPC software at the system-level, the important backend stuff that the user doesn't really see, you can find documentation here.
OLPC builds upon Fedora as much as possible - meaning that many system-level developments would be more appropriately done within the Fedora developer community, which will then be automatically included in OLPC's software at a later date.
Quickstart
- See the Contributors program page.
- Get familiar with the Python language. Much OLPC development happens in Python.
- If you're familiar with other aspects of the Developers/Stack, then you can focus on those aspects
- Sign up for the devel mailing list, become a lurker
- If you do IRC, join #olpc on irc.freenode.net, and #olpc-devel on irc.oftc.net
- See Developers/Getting Started for some suggestions on how to find a project
Overview
- Developers/Getting Started
- First steps: developer keys, getting connected with the community, finding a project, reporting bugs.
- Developers/Setup
- Indicates how you should configure your workstation for system-level OLPC development.
- Test Config Notes
- If you have an XO, this page has many useful configuration tips for testing your application.
- Developers/Stack
- Describes the choices of programming languages and "software stacks" for developing code on the OLPC. It details the base stack of hardware, firmware, operating system and the Sugar environment. It then gives options for programming in Python, Squeak, C/C++ and other languages or activities.
- Developers/Issues
- Describes the special considerations required for working on the OLPC project, particularly those driven by our target hardware and deployment environments
- Developers/Projects
- Suggests ways to choose a particular project, whether one that already exists, or one of your own, and how to start working on the project once you have chosen it
- Developers/Communication
- Describes the various support and communications channels used by the project, including how to get help with problems, and how to set up your own per-project communications channels
- Developers/Documentation
- Collects pointers to the various sources of documentation available for the project. Helping us better document our code is always a welcome contribution.
- Developers/FAQ
- Collects and attempts to answer common questions that developers have when working on the Sugar platform
- Developers/Fedora
- Discusses how to join the Fedora development community on top of which OLPC is based.
Release Schedule
See Release Process Home for discussion of how OLPC presently makes releases.