Difference between revisions of "Developer's corner"

From GCompris
Jump to: navigation, search
(chapter reog)
(Design)
(46 intermediate revisions by 8 users not shown)
Line 1: Line 1:
 
{{TOCright}}
 
{{TOCright}}
 
= Contact =
 
= Contact =
 +
 +
This page is about the '''Qt version'''. Follow there for the [[Developer's corner Gtk|Gtk+ legacy version]].
  
 
== How to report a bug ==
 
== How to report a bug ==
  
To fill a bug report for GCompris, you must use the [http://bugzilla.gnome.org/query.cgi gnome bugzilla] and select GCompris in the product list.
+
To fill a bug report for GCompris:
 +
 
 +
* Legacy Gtk+ Version: [http://bugzilla.gnome.org/query.cgi gnome bugzilla] and select GCompris in the product list.
 +
* New Qt Quick version: [https://bugs.kde.org KDE bug tracker] and select GCompris in the product list or for [https://phabricator.kde.org/maniphest/query/0Xc51jhWJnw0/#R internal development we use Phabricator]
  
 
== Mailing list ==
 
== Mailing list ==
  
You can join and browse the [https://lists.sourceforge.net/lists/listinfo/gcompris-devel GCompris mailing list].
+
You can join and browse the [https://mail.kde.org/mailman/listinfo/gcompris-devel GCompris mailing list].
  
 
This mailing list is used by the developers and users willing to stay aware of what’s going on. You will get new release announcements. Users can join the list and report bugs, discuss feature they would like to have, ...
 
This mailing list is used by the developers and users willing to stay aware of what’s going on. You will get new release announcements. Users can join the list and report bugs, discuss feature they would like to have, ...
  
The language is English. There is also a user mailing list in [https://lists.sourceforge.net/lists/listinfo/gcompris-france French] and in [https://lists.sourceforge.net/lists/listinfo/gcompris-portugues Portuguese]. If you want to create a user list in your language, please contact me (bruno.coudoin@gcompris.net).
+
The language is English. There is also a user mailing list in [https://mail.kde.org/mailman/listinfo/gcompris-france French] and in [https://lists.sourceforge.net/lists/listinfo/gcompris-portugues Portuguese]. If you want to create a user list in your language, please contact me (bruno.coudoin@gcompris.net).
  
 
== Chat ==
 
== Chat ==
Line 18: Line 23:
 
You can enter in contact with the users and developers of [http://en.wikipedia.org/wiki/IRC GCompris on IRC]. The server is irc.freenode.net on the channel #gcompris.
 
You can enter in contact with the users and developers of [http://en.wikipedia.org/wiki/IRC GCompris on IRC]. The server is irc.freenode.net on the channel #gcompris.
  
To join an IRC server, you can use the [http://www.xchat.org/ excellent xchat software] or [http://webchat.freenode.net/ directly in your browser].
+
To join an IRC server, you can use the [https://hexchat.github.io excellent hexchat software] or [http://webchat.freenode.net/ directly in your browser].
 
 
== Packagers ==
 
 
 
GCompris is a large software which has numerous dependencies. We ask packagers to be very careful and follow this minimal and [[manual test]] process.
 
 
= Translations =
 
 
 
* GCompris translations are managed by the [http://l10n.gnome.org/teams/ Gnome translation teams].
 
* [http://l10n.gnome.org/module/gcompris/#master Translation status] for the Software itself.
 
* [[Translation addons]]. There is more than the .po file to translation GCompris.
 
* [[Voices translation]].
 
* [[Web site translation]] is managed by volunteers.
 
* [[Color translation]]
 
  
 
= Development =
 
= Development =
Line 37: Line 29:
 
== Documentation of the Qt Quick Version (Under development) ==
 
== Documentation of the Qt Quick Version (Under development) ==
  
This is a new version of GCompris based on the [http://qt.digia.com/qtquick/ Qt Quick] technology. Our users expect us to deliver a version that runs on Desktop and on Tablets. Sadly with the Gtk+ version these was no easy way to achieve this. The decision has been taken to rewrite completely GCompris on a new framework. This is a departure from the Gtk+ development framework that was based on the C and the Python language. Now the development will be done with a mix of QML, Javascipt and C++.
+
This is a new version of GCompris based on the [http://doc.qt.io/qt-5/qtquick-index.html Qt Quick] technology. Our users expect us to deliver a version that runs on Desktop and on Tablets. Sadly with the Gtk+ version these was no easy way to achieve this. The decision has been taken to rewrite completely GCompris on a new framework. This is a departure from the Gtk+ development framework that was based on the C and the Python language. Now the development will be done with a mix of QML, JavaScript and C++.
  
 
The rewrite will not happen overnight and we need your help. If you are interesting in discovering the Qt Quick technology while doing something useful, you can do the port of a GCompris activity.
 
The rewrite will not happen overnight and we need your help. If you are interesting in discovering the Qt Quick technology while doing something useful, you can do the port of a GCompris activity.
  
* Qt Quick [https://github.com/bdoin/GCompris-qt source repository]
+
* Qt Quick [https://cgit.kde.org/gcompris.git/ official repository] or [https://github.com/gcompris/GCompris-qt GitHub mirror]
 
* [[Qt Quick development process]]
 
* [[Qt Quick development process]]
 
* [[Qt Quick Migration status]]
 
* [[Qt Quick Migration status]]
 +
* [[Contribution process]]
 +
* [[New contributor]]
  
== Documentation of the Gtk+ Version (Legacy) ==
+
=== Design ===
  
This is the desktop application that contains 140 activities. It is under maintenance but no new development are added to it.
+
* [[Administration design]]
 +
* [[Dataset handling]]
 +
* [[Artwork guidelines]]
  
=== Compilation ===
+
=== Translation ===
  
==== Source code ====
+
Translations are managed by the [http://l10n.kde.org/ KDE translation teams]. If you would like to participate in the translation of GCompris you must contact the KDE translation team you want to participate in.
  
We use [http://git-scm.com/ git] for our development. The [http://git.gnome.org/browse/gcompris/ git repository] is hosted by Gnome but we also have a [https://github.com/bdoin/GCompris GitHub mirror].
+
* [http://l10n.kde.org/stats/gui/stable-kf5/po/gcompris_qt.po/ Translation status for the stable version]
 
+
* [http://l10n.kde.org/stats/gui/trunk-kf5/po/gcompris_qt.po/ Translation status for the development version]
To get the GCompris master branch (warning this takes more than 500MB) :
+
* [http://websvn.kde.org/trunk/l10n-kf5/ To get the po file to translate], navigate in the subversion from the previous link, select your locale then go to the subdirectory messages/extragear-edu/.
<code><pre>
+
* [http://gcompris.net/voicestats Voice recording status] for each locale.
git clone git://git.gnome.org/gcompris
+
* [[Word Lists Qt|Additional localized list of words]]
cd gcompris
+
* [[Advanced color translation]]
sh autogen.sh && make
+
* [[Voice translation Qt|Voice translation]]
</pre></code>
+
* [[Web site translation]] is managed by volunteers.
 
 
Alternatively, if you are only interested in the recent history, and would want to send in fixes as patches, you can use the option: <code>git clone --depth=1 git://git.gnome.org/gcompris</code>. It will save you more than 100MB.
 
 
 
==== Dependencies ====
 
 
 
GCompris has a lot of dependencies. On a Debian based distribution that already packages GCompris, you can install all the required dependencies with the command 'apt-get build-dep gcompris'.
 
 
 
==== Compilation ====
 
 
 
Download the archive gcompris-X.X.tar.gz or get it from git then:
 
* tar -xvf gcompris-X.X.tar.gz
 
* cd gcompris-X.X
 
* sh configure
 
 
 
Analyse, the errors, install the missing dependancies. Often you will have to install the -devel packages on your distribution. On Ubuntu or Debian, you can get all the build dependancies with the command ’apt-get build-dep gcompris’.
 
 
 
Then run:
 
* make
 
* make install
 
 
 
==== Installation ====
 
 
 
We do our best to let GCompris run on as many software and hardware platform as we can. In this section, we list the supported platform and [[Installation|specific installation instructions]].
 
 
 
=== Development ===
 
 
 
* [[GCompris internals]] gives an overview of the design of GCompris. It is a good starting point for anybody willing to contribute code.
 
* [[Adding an activity]]
 
* [[Adding a puzzle activity]]
 
* [[Adding an explore activity]]
 
* [[Adding a music activity and using gcomprismusic.py module]]
 
 
 
== New contributor ==
 
 
 
If you want to develop a new activity for GCompris a good start is to follow the instructions on this page : [[An exercise for new contributors]].
 
  
 
== The Drawing board ==
 
== The Drawing board ==
Line 103: Line 64:
 
* [[Ideas for activities]]
 
* [[Ideas for activities]]
 
* [[Star system review]]
 
* [[Star system review]]
* [[Todo for OLPC]]/sugar future ? Review of sugar/OLPC activities and way to integrate.
 
* [[Notes on OSX port]]
 
 
* [[Language Learning]]
 
* [[Language Learning]]
* [[Writing tutor]]
 
* [[Wiktionary to XML]]
 
  
 
[[Category:Developer]]
 
[[Category:Developer]]
 +
[[Category:English]]

Revision as of 17:03, 21 August 2017

Contact

This page is about the Qt version. Follow there for the Gtk+ legacy version.

How to report a bug

To fill a bug report for GCompris:

Mailing list

You can join and browse the GCompris mailing list.

This mailing list is used by the developers and users willing to stay aware of what’s going on. You will get new release announcements. Users can join the list and report bugs, discuss feature they would like to have, ...

The language is English. There is also a user mailing list in French and in Portuguese. If you want to create a user list in your language, please contact me (bruno.coudoin@gcompris.net).

Chat

You can enter in contact with the users and developers of GCompris on IRC. The server is irc.freenode.net on the channel #gcompris.

To join an IRC server, you can use the excellent hexchat software or directly in your browser.

Development

Documentation of the Qt Quick Version (Under development)

This is a new version of GCompris based on the Qt Quick technology. Our users expect us to deliver a version that runs on Desktop and on Tablets. Sadly with the Gtk+ version these was no easy way to achieve this. The decision has been taken to rewrite completely GCompris on a new framework. This is a departure from the Gtk+ development framework that was based on the C and the Python language. Now the development will be done with a mix of QML, JavaScript and C++.

The rewrite will not happen overnight and we need your help. If you are interesting in discovering the Qt Quick technology while doing something useful, you can do the port of a GCompris activity.

Design

Translation

Translations are managed by the KDE translation teams. If you would like to participate in the translation of GCompris you must contact the KDE translation team you want to participate in.

The Drawing board

These are pages to hold the different discussion for things we are working on: