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;
| + | === Setting up a Sugarizer environment === |
− | * 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/ our server]).
| + | 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]. | | See also [https://developer.sugarlabs.org/dev-environment.md.html Setup a development environment]. |
Line 24: |
Line 66: |
| ** the [https://python-gtk-3-tutorial.readthedocs.org/en/latest/ Python bindings] for [https://www.gtk.org/ GTK+ 3]; and | | ** 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]. | | ** 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 the basics of Sugar development, see the book [http://www.flossmanuals.net/make-your-own-sugar-activities/ Make Your Own Sugar Activities!] | + | * 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!] |
| | | |
| Python programmers, 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. |
Line 41: |
Line 83: |
| | | |
| 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. | | 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. |