Changes

m
Line 8: Line 8:  
<div class="visualClear"></div>
 
<div class="visualClear"></div>
   −
There has been a discussion on the OLPC-sur list about the need for a square root function in Turtle Art. Below, I have documented the process I used for adding this functionality with the hope that others may feel comfortable in emulating me in regard to making changes and enhancements to Sugar and Sugar Activities and sharing those enhancements with the community.
+
There has been a discussion on the OLPC-sur list about the need for a square root function in Turtle Art. Below, I have documented the process I used for adding this functionality with the hope that others may feel comfortable in emulating me in regard to making changes and enhancements to Sugar and Sugar Activities and sharing those enhancements with the community. Beginners may find [[Activity_Team/Modifing_an_Activity]] useful.
   −
You can download the unofficial [http://wiki.laptop.org/images/9/9e/Turtleart-11.xo Turtleart-11.xo here]. Please give me feedback.
+
You can download the unofficial [http://wiki.laptop.org/images/9/9e/Turtleart-11.xo Turtleart-11.xo here].  
 +
 
 +
'''Windows users notes'''
 +
The .xo archive can be opened by relabeling it(for example) to a .zip file.
 +
Within the archive you find the files to be edited, Python source files talogo.py and tasetup.py and the images directory images/en/numbers . Python source files can be edited with [http://www.python.org/ Python].
 +
 +
To run TurtleArtActivity.py you will also need [http://www.pygtk.org/ PyGTK] This requires GTK+ 2.10 developer (and?) runtime from [http://sourceforge.net/project/showfiles.php?group_id=98754 Sourceforge] [http://ftp.gnome.org/pub/GNOME/binaries/win32/pycairo/1.4/ PyCairo] [http://ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/2.14/ PyGObject] and PyGTK . You still cannot run TurtleArt outside of sugar but it would be possible to inspect code and test code fragments under an OS like Windows. To run Sugar on Windows, try [http://sugarlabs.org/go/Supported_systems QEMU]or other OS see [http://sugarlabs.org/go/Supported_systems here].
 +
 
 +
Please give me feedback.
    
==The steps==
 
==The steps==
Line 16: Line 24:  
  from math import sqrt
 
  from math import sqrt
 
and
 
and
    defprim(lc,'sqrt', 1, lambda lc,x: int(sqrt(x)))
+
defprim(lc,'sqrt', 1, lambda lc,x: int(sqrt(x)))
 
* And I had to define a new brick for square root in tasetup.py and describe the bricks attributes: its size; how it connects to other bricks; and default values.  
 
* And I had to define a new brick for square root in tasetup.py and describe the bricks attributes: its size; how it connects to other bricks; and default values.  
    ('sqrt','sqrt','sqrt',100),
+
('sqrt','sqrt','sqrt',100),
 
and
 
and
  'sqrt':    (('num',True,0,20),('num',False,42,20)),
+
'sqrt':    (('num',True,0,20),('num',False,42,20)),
* Finally, I had to create a graphic for the brick (images/en/numbers/sqrt.gif) and modify the panel for numbers (images/en/numbers/numbersgroup,gif and numbersmask.gif). I made similar changes to the Spanish version (images/es).
+
* Finally, I had to create a graphic for the brick (images/en/numbers/sqrt.gif) and modify the panel for numbers (images/en/numbers/numbersgroup,gif and numbersmask.gif). I made similar changes to the Spanish version (images/es) and French version (images/fr).
 
[[Image:Sqrt.gif|thumb|left|sqrt.gif]]
 
[[Image:Sqrt.gif|thumb|left|sqrt.gif]]
 
[[Image:Numbersgroup.gif|thumb|left|The numbers palette]]
 
[[Image:Numbersgroup.gif|thumb|left|The numbers palette]]
 
[[Image:Numbersmask.gif|thumb|left|The mask used for selecting bricks]]
 
[[Image:Numbersmask.gif|thumb|left|The mask used for selecting bricks]]
 
[[Image:Numbersgroup-es.gif|thumb|left|The Spanish version]]
 
[[Image:Numbersgroup-es.gif|thumb|left|The Spanish version]]
 +
[[Image:Numbersgroup-fr.gif|thumb|left|The French version]]
    
<div class="visualClear"></div>
 
<div class="visualClear"></div>
Line 44: Line 53:  
:I also created images/en/numbers/sqrt.gif
 
:I also created images/en/numbers/sqrt.gif
 
:and modified images/en/numbers/numbersgroup.gif and numbersmask.gif
 
:and modified images/en/numbers/numbersgroup.gif and numbersmask.gif
:(I also made corresponding changes in the images/es tree)
+
:(I also made corresponding changes in the images/es and images/fr trees)
 +
* I made an .xo bundle so I could let other people easily install and test my changes (the following command will create TurtleArt-NN.xo in turtleart-activity/dist):
 +
python setup.py dist_xo
 
* and generate a patch
 
* and generate a patch
 
  git diff -U > patch
 
  git diff -U > patch
* and send the patch to the maintainer for review
+
* and sent the patch to the project maintainer (Brian Silverman) for review
  mailto:bss...
+
mailto:bss...
* I am waiting for his feedback...
+
* The maintainer made one suggestion:
 +
:all looks good to me.
 +
:One question. Are you sure you want the "int" of the answer? In the Java version everything is a float, and even in the python version xcor, ycor, and friends are floats. None of the calculations assume ints I don't think.
 +
* I made the change and did some more testing.
 +
defprim(lc,'sqrt', 1, lambda lc,x: sqrt(x))
 +
==More steps==
 +
* Brian asked me to take over as the maintainer of the Python version of Turtle Art, so I needed to "add" my new files, then "commit" and "push" my patch:
 +
git-add images/*/numbers/sqrt.gif
 +
 
 +
git-commit -a
 +
Created commit fa7a12f: new file:  images/en/numbers/sqrt.gif
 +
  3 files changed, 0 insertions(+), 0 deletions(-)
 +
  11 files changed, 453 insertions(+), 459 deletions(-)
 +
  mode change 100755 => 100644 NEWS
 +
  rewrite images/en/numbers/numbersgroup.gif (81%)
 +
  rewrite images/en/numbers/numbersmask.gif (80%)
 +
  rewrite images/es/numbers/numbersgroup.gif (82%)
 +
  rewrite images/es/numbers/numbersmask.gif (80%)
 +
  rewrite images/fr/numbers/numbersgroup.gif (79%)
 +
  rewrite images/fr/numbers/numbersmask.gif (80%)
 +
  create mode 100644 images/en/numbers/sqrt.gif
 +
  create mode 100644 images/es/numbers/sqrt.gif
 +
  create mode 100644 images/fr/numbers/sqrt.gif
 +
 
 +
git-push -v
 +
Counting objects: 45, done.
 +
Compressing objects: 100% (29/29), done.
 +
Writing objects: 100% (29/29), 78.75 KiB, done.
 +
Total 29 (delta 20), reused 0 (delta 0)
 +
refs/heads/master: 18f37394242044f5104de7f40249caed440cdfa2 -> 1536a4ce43096395e5572ee61dbc87c88daa72ad
 +
To ssh://dev.laptop.org/git/projects/turtleart-activity/
 +
    18f3739..1536a4c  master -> master
 +
 
 +
* and I need to generate a "tar ball" of the new source code bundle and put it on dev.laptop.org
 +
 
 +
python setup.py dist_source
 +
scp dist/TurtleArt-11.tar.bz2 walter@dev.laptop.org:/var/www/sugar/sources/turtleart-activity/
 +
 
 +
Further instructions on the Sugar release process are found here: [[Development Team/Release#New_modules_proposal]]. The instructions on the [[Development Team/Code Review]] page are also helpful.
    
==The patch==
 
==The patch==