Line 1: |
Line 1: |
− | === Setting up the Sugar environment === | + | === Basics: Attribution and Licensing === |
| | | |
− | There are several options for setting up the Sugar environment for development.
| + | Read [[Attribution and Licensing]], as both are important for all submissions. |
− | * Install Sugar on [[Ubuntu]], [[Fedora]], or [[Debian]], using apt or dnf;
| |
− | * From Windows. macOS or iOS, run Sugar in a virtual machine;
| |
− | * Live boot from [[SoaS|Sugar on a Stick]];
| |
− | * or ''better yet'', use Sugar Live Build containing Sugar 0.112, which can be booted from hard drive, flash drive, and optical media, automatically starting Sugar without persistence; or can be installed as a virtual machine, with persistence and password protection, and contains all build dependencies, configured source trees (git clones in /usr/src), and binaries (make install) for Sugar 0.112 (Download from http://people.sugarlabs.org/~quozl/sugar-live-build-20171009/).
| |
| | | |
− | See also https://developer.sugarlabs.org/dev-environment.md.html | + | === Setting up a Sugarizer environment === |
| + | |
| + | Use your computer. See also [[#Getting started with Sugarizer]]. |
| + | |
| + | === Setting up a Sugar desktop environment === |
| + | |
| + | There are several options for setting up the Sugar desktop environment for development, depending on what equipment you have; |
| + | |
| + | {| class="wikitable" |
| + | |- |
| + | ! Your Equipment !! Your Operating System !! Our Recommendation |
| + | |- |
| + | | rowspan="2" | You have only one computer and don't want to erase it |
| + | | Linux, Windows, macOS, or iOS |
| + | | Install virtualisation software, make a new virtual machine and install [[Live Build|Sugar Live Build]], [[SoaS|Sugar on a Stick]], [[Ubuntu]], [[Fedora]], or [[Debian]]. |
| + | |- |
| + | | Linux |
| + | | Install Sugar packages from your distribution, see [[Ubuntu]], [[Fedora]] or [[Debian]]. For other distributions, contact your distribution community. |
| + | |- |
| + | | You have another computer that can be erased |
| + | | Doesn't matter |
| + | | Install [[Live Build|Sugar Live Build]], [[SoaS|Sugar on a Stick]], [[Ubuntu]], [[Fedora]], or [[Debian]]. |
| + | |} |
| + | |
| + | What's the difference between Live Build, Sugar on a Stick and the various Linux options? |
| + | |
| + | {| class="wikitable" |
| + | |- |
| + | ! !! Live Build (based on Debian) !! Sugar on a Stick (based on Fedora) !! Ubuntu, Debian or Fedora |
| + | |- |
| + | ! Sugar desktop user experience on startup |
| + | | yes, 0.112 || yes, 0.110 || no, must install packages |
| + | |- |
| + | ! Good for Sugar activity development |
| + | | yes || no, must install packages || no, must install packages |
| + | |- |
| + | ! Good for Sugar desktop module development |
| + | | yes, source code included || no, must install git and use rpmbuild || no, must install packages |
| + | |- |
| + | ! Works on a spare computer |
| + | | yes || yes || yes |
| + | |- |
| + | ! Works as a Virtual Machine |
| + | | yes || yes || yes |
| + | |} |
| + | |
| + | See also [https://developer.sugarlabs.org/dev-environment.md.html Setup a development environment]. |
| | | |
| === Getting started with coding in Sugar === | | === Getting started with coding in Sugar === |
| | | |
− | Most Sugar development is in either Python or JavaScript.
| + | Sugar development is in either Python or JavaScript languages. |
| | | |
− | * You will need knowledge of Python and GTK (See http://python-gtk-3-tutorial.readthedocs.org/en/latest/); | + | * For the JavaScript language, you will need knowledge of; |
− | * or JavaScript/HTML5; | + | ** JavaScript; |
− | * and then the basic of Sugar development (See http://www.flossmanuals.net/make-your-own-sugar-activities/); | + | ** HTML5; |
| + | ** web browsers; |
| + | ** web design; and, |
| + | ** web deployment. |
| + | * For the Python language, you will need knowledge of; |
| + | ** [https://www.python.org/ Python]; |
| + | ** the [https://pygobject.readthedocs.io/en/latest/ PyGObject] package; |
| + | ** the [https://python-gtk-3-tutorial.readthedocs.org/en/latest/ Python bindings] for [https://www.gtk.org/ GTK+ 3]; and |
| + | ** the [https://lazka.github.io/pgi-docs/#Gtk-3.0 Gtk-3.0 section of the PyGObject API Reference]. |
| + | * For both, you will need knowledge of Sugar activity development, see the book [http://www.flossmanuals.net/make-your-own-sugar-activities/ Make Your Own Sugar Activities!] |
| | | |
− | Please note that you must run [http://legacy.python.org/dev/peps/pep-0008/#introduction pep8] and pyflakes on your code ''before'' submitting your patches.
| + | Python programmers, you must run [http://legacy.python.org/dev/peps/pep-0008/#introduction pep8] and pyflakes on your code ''before'' submitting your patches. |
| | | |
| === Getting started with GIT === | | === Getting started with GIT === |
| | | |
− | Some knowledge of git is important as your work will be submitted to our git repository (https://github.com/sugarlabs). The basic mechanism is a pull request (PR), which is detailed in [http://developer.sugarlabs.org/contributing.md.html]. ''It is required that you follow the steps outlined on the Contributing Page when doing coding and documentation tasks in GCI.'' | + | Some knowledge of git is important as your work will be submitted to our [https://github.com/sugarlabs git repositories]. The basic mechanism is a pull-request (PR), which is explained in [https://developer.sugarlabs.org/contributing.md.html Contributing]. |
| + | |
| + | ''It is required that you follow the steps outlined on the [https://developer.sugarlabs.org/contributing.md.html Contributing] page when doing coding and documentation tasks in GCI.'' |
| | | |
− | GitHub provides a tutorial (See https://try.github.io/levels/1/challenges/1), although there are many others as well. | + | GitHub provides a [https://try.github.io/levels/1/challenges/1 tutorial]. There are many other guides to GIT as well. |
| | | |
− | Note that our bug tracker is http:bugs.sugarlabs.org.
| + | Our old bug tracker is https://bugs.sugarlabs.org, but these days, we mostly report bugs using the ''issues'' feature of GitHub. (See https://guides.github.com/features/issues/ for details on GitHub Issues.) |
| | | |
| === Getting started with Sugarizer === | | === Getting started with Sugarizer === |
| | | |
− | Sugar Web Framework is the JavaScript Framework for Sugar [https://github.com/sugarlabs/sugar-docs/blob/master/web-architecture.md]. Sugarizer [http://sugarizer.org] is a subset of Sugar that allow runing activities developed with Sugar Web Framework on any web browser. Sugarizer is also available as Android, iOS, Firefox OS and Chrome Web App. | + | Sugar Web Framework is the [https://github.com/sugarlabs/sugar-docs/blob/master/web-architecture.md JavaScript Framework for Sugar]. [http://sugarizer.org Sugarizer] is a subset of Sugar that allow running activities developed with Sugar Web Framework on any web browser. Sugarizer is also available as Android, iOS, Firefox OS and Chrome Web App. |
| + | |
| + | === Getting a wiki account === |
| + | |
| + | Some tasks require that you make edits to this wiki for which you'll need an account. Please email walter @ sugarlabs . org to request an account. |
| + | |
| + | === Getting help === |
| + | |
| + | Got a problem? Ask your mentors, ask other students, or ask the Sugar Labs community. |
| + | |
| + | The Sugar Labs community is large, and there are people who are not mentors in the contest. Mentors are [[Google_Code_In_2017#Mentors|listed]]. Everyone else you talk with may be a non-mentor. |
| + | |
| + | As part of Sugar Labs community, non-mentors are to treat students in accord with the [[Sugar_Labs/Legal/Code_of_Conduct|Code of Conduct]], and as if they are new to Sugar Labs. |
| + | |
| + | Students should keep in mind that some people are non-mentors, and cannot see the contest tasks, contest progress, dates, or information about students. When communicating widely, be sure to; |
| + | |
| + | * introduce yourself, the first time; |
| + | * tell us what your task is, without relying on a link to the task (because we probably can't see it); |
| + | * talk about the task as if you want to do it yourself, not because of the contest; and, |
| + | * defend your technical decisions without using the contest as a defence. |
| + | |
| + | Non-mentors may give good guidance on technical decisions, but bad guidance on how they think a task is judged. Always consult with your mentors as well. |