Changes

Jump to navigation Jump to search
Line 58: Line 58:  
For Sugar:
 
For Sugar:
 
# As the PyGI is introduced PyGTK is no longer maintained and hence it is outdated now, so shifting toward PyGI means shifting towards new technology.
 
# As the PyGI is introduced PyGTK is no longer maintained and hence it is outdated now, so shifting toward PyGI means shifting towards new technology.
# PyGI is better than PYGTK and less maintenance is needed as compared to
+
# PyGI is better than PYGTK and less maintenance is needed as compared to PyGTK.
PyGTK.
   
# Major activities are divided between the recent distributions of GTK, After Migration of all the files of these activities to GTK3/PyGI, every activity will be running on its latest version with fully updated features.
 
# Major activities are divided between the recent distributions of GTK, After Migration of all the files of these activities to GTK3/PyGI, every activity will be running on its latest version with fully updated features.
 
# Move toward GTK3 will guarantee faster processing and lower memory usage.
 
# Move toward GTK3 will guarantee faster processing and lower memory usage.
Line 73: Line 72:  
activities from Gtk2 to Gtk3. Although there are many more changes which will be
 
activities from Gtk2 to Gtk3. Although there are many more changes which will be
 
implemented but these are the major ones.
 
implemented but these are the major ones.
* HippoCanvas removal​ - As HippoCanvas library is no longer maintained, the
+
* HippoCanvas removal​ - As HippoCanvas library is no longer maintained, the first thing to be done before porting to GTK3 is to remove from all the activities the use of HippoCanvas library. It would be very difficult to port to GTK3 with HippoCanvas. And HippoCanvas users can easily switch to custom GTK container widgets. There are many activities like chat that uses HippoCanvas so it must be removed from these activities.
first thing to be done before porting to GTK3 is to remove from all the
+
* Adopting the API changes in sugar-toolkit-gtk3 ​- The old API is removed in sugar-toolkit-gtk3. So the activities will be adjusted accordingly, for example the keep button and the old style toolbar has been removed completely, so the activities should not use these.
activities the use of HippoCanvas library. It would be very difficult to port to
+
* Porting the activity from GTK2 to GTK3 ​- Starting from changing the import statement, every call using GTK2 will be changed. All the calls for accessing services and widgets in the sugar-toolkit-gtk3 will be changed. For example: “from sugar.activity import activity” will be changed to “From sugar3.activity import activity”. Setup.py will also point to the new sugar-toolkit-gtk3.
GTK3 with HippoCanvas. And HippoCanvas users can easily switch to custom
+
* Constructor considerations ​- Now it is possible with PyGI to use python-like constructors. And now names must be given to the constructors if they takes parameters. Eg : button = Gtk.button(label=”foo”).
GTK container widgets. There are many activities like chat that uses
+
* Using GtkBox directly than using Vbox and Hbox ​- Hbox and Vbox have been deprecated in GTK3 instead of this, GtkBox should be used directly, as Hbox and Vbox may get removed in GTK4.
HippoCanvas so it must be removed from these activities.
+
* GTK Alignment considerations ​- although the alignment constructor in GTK3 takes optional parameters only, x,y; align,scale, but the default values of the parameters are changed in GTK3, so according to the changed values of the parameters the codes of different activities will be changed.
* Adopting the API changes in sugar-toolkit-gtk3 ​- The old API is removed
+
* Using cairo for drawing ​- In GTK3 Gtk drawable objects are not supported, the GDK drawing API has been removed so all the drawing are done with the help of cairo. So the idea is to run the activity under cairo. It also includes changes when pango is used with cairo, changes when drawing a bitmap and when reading pixel from xlib.
in sugar-toolkit-gtk3. So the activities will be adjusted accordingly, for
  −
example the keep button and the old style toolbar has been removed
  −
completely, so the activities should not use these.
  −
* Porting the activity from GTK2 to GTK3 ​- Starting from changing the
  −
import statement, every call using GTK2 will be changed. All the calls for
  −
accessing services and widgets in the sugar-toolkit-gtk3 will be changed. For example: “from sugar.activity import activity” will be changed to
  −
“From sugar3.activity import activity”. Setup.py will also point to the new sugar-toolkit-gtk3.
  −
* Constructor considerations ​- Now it is possible with PyGI to use
  −
python-like constructors. And now names must be given to the constructors if
  −
they takes parameters. Eg : button = Gtk.button(label=”foo”).
  −
* Using GtkBox directly than using Vbox and Hbox ​- Hbox and Vbox have
  −
been deprecated in GTK3 instead of this, GtkBox should be used directly, as
  −
Hbox and Vbox may get removed in GTK4.
  −
* GTK Alignment considerations ​- although the alignment constructor in
  −
GTK3 takes optional parameters only, x,y; align,scale, but the default values
  −
of the parameters are changed in GTK3, so according to the changed values
  −
of the parameters the codes of different activities will be changed.
  −
* Using cairo for drawing ​- In GTK3 Gtk drawable objects are not supported,
  −
the GDK drawing API has been removed so all the drawing are done with the
  −
help of cairo. So the idea is to run the activity under cairo. It also includes
  −
changes when pango is used with cairo, changes when drawing a bitmap and
  −
when reading pixel from xlib.
   
* Gtk Widget::draw signal ​- A new draw signal has replaced GtkWidget
 
* Gtk Widget::draw signal ​- A new draw signal has replaced GtkWidget
 
expose-event signal, and now the Widget will draw itself using its allocated
 
expose-event signal, and now the Widget will draw itself using its allocated
 
size. And all the GtkStyle drawing functions are now changed which will take
 
size. And all the GtkStyle drawing functions are now changed which will take
 
a cairo_t instead of a window, and many more. So these changes will all be implemented in the activities proposed.
 
a cairo_t instead of a window, and many more. So these changes will all be implemented in the activities proposed.
* Gtk ProgressBar orientation​ - in Gtk3 both the cell renderer and the
+
* Gtk ProgressBar orientation​ - in Gtk3 both the cell renderer and the widget will implement the GtkOrientable with additional features. There will be a minute change in the set orientation call. Instead of one call there will be two calls now.
widget will implement the GtkOrientable with additional features. There will
  −
be a minute change in the set orientation call. Instead of one call there will be
  −
two calls now.
   
* No GtkObject​ - GtkObject will not be used in GTK3, as it is removed. The
 
* No GtkObject​ - GtkObject will not be used in GTK3, as it is removed. The
 
remaining functionality ”destroy signal” will be now a part of GtkWidgetClass. So changes will be there wherever the Gtk object class is used.
 
remaining functionality ”destroy signal” will be now a part of GtkWidgetClass. So changes will be there wherever the Gtk object class is used.
* Other changes ​- It includes changing the syntax for drag and drop and
+
* Other changes ​- It includes changing the syntax for drag and drop and clipboard. GdkColormap will be replaced by GdkVisual. For using GtkPlug and GtkSocket widgets, different headers will be used i.e. (<gtk/gtk3.h>). Scrolling changes will be there. Replacement of size_request By get_preffered_width/height. Constants will be having a different format, allocation property will be Changed, import method for Pixbuff will also change.
clipboard. GdkColormap will be replaced by GdkVisual. For using GtkPlug and GtkSocket widgets, different headers will be used i.e. (<gtk/gtk3.h>). Scrolling changes will be there. Replacement of size_request By get_preffered_width/height.
+
 
Constants will be having a different format, allocation property will be
  −
Changed, import method for Pixbuff will also change.
   
Many changes will be implemented for porting to Gst1.0​ like changes in; Imports,
 
Many changes will be implemented for porting to Gst1.0​ like changes in; Imports,
 
Gst.init(), element _factory_make(), element_link_many(), Pipeline.add(),
 
Gst.init(), element _factory_make(), element_link_many(), Pipeline.add(),
Line 132: Line 104:  
=== Days TASK ===
 
=== Days TASK ===
 
10 May to 19 May
 
10 May to 19 May
* Go through the Gnome.developer
+
* Go through the Gnome.developer webpage and figure out the differences between GTK2 and GTK3 commands, imports and calling methods.
webpage and figure out the
  −
differences between GTK2 and GTK3
  −
commands, imports and calling
  −
methods.
   
* Get my hand over the differences
 
* Get my hand over the differences
 
between GST0.10 and GST1.0
 
between GST0.10 and GST1.0
* Get my concepts clear over migration
+
* Get my concepts clear over migration from GTK2 to GTK3.
from GTK2 to GTK3.
      
20 May to 27 May
 
20 May to 27 May
* Go through the codebase of major
+
* Go through the codebase of major sugar activities like turtle, chat, calculate ​and record.
sugar activities like turtle, chat,
  −
calculate ​and record.
      
28 May to 3 June
 
28 May to 3 June
* Start changing the codes of a major
+
* Start changing the codes of a major activity, turtleart ​where GTK2 is used, according to the way described in the project features.
activity, turtleart ​where GTK2 is
  −
used, according to the way described
  −
in the project features.
      
4 June to 5 June
 
4 June to 5 June
* Test the activity and send the patches
+
* Test the activity and send the patches to the community for review and make necessary changes.
to the community for review and make
  −
necessary changes.
      
6 June to 12 June
 
6 June to 12 June
* Start changing the codes of record
+
* Start changing the codes of record activity according to the basic migration steps and features proposed.
activity according to the basic
  −
migration steps and features
  −
proposed.
      
13 June to 14 June
 
13 June to 14 June
* Test the activity and send the patches
+
* Test the activity and send the patches to the community for review and make necessary changes.
to the community for review and make
  −
necessary changes.
      
15 June to 21 June
 
15 June to 21 June
* Start changing the codes of chat
+
* Start changing the codes of chat activity according to the basic migration steps and features proposed.
activity according to the basic
  −
migration steps and features
  −
proposed.
      
22 June to 23 June
 
22 June to 23 June
* Test the activity and send the patches
+
* Test the activity and send the patches to the community for review and make necessary changes.
to the community for review and make
  −
necessary changes.
      
24 June to 25 June
 
24 June to 25 June
* Discuss about the changes, problems
+
* Discuss about the changes, problems and working of these 3 major activities with the mentors and make necessary changes .
and working of these 3 major
  −
activities with the mentors and make
  −
necessary changes .
      
26 June
 
26 June
* Prepare for the mid-term evaluation
+
* Prepare for the mid-term evaluation and re evaluate the submitted patches.
and re evaluate the submitted
  −
patches.
      
27 June to 29 June
 
27 June to 29 June
Line 195: Line 140:     
30 June to 5 July
 
30 June to 5 July
* Start changing the codes of calculate
+
* Start changing the codes of calculate activity according to the basic migration steps and features proposed.
activity according to the basic
  −
migration steps and features
  −
proposed.
      
6 July to 7 July
 
6 July to 7 July
* Test the activity and send the patches
+
* Test the activity and send the patches to the community for review and make necessary changes.
to the community for review and make
  −
necessary changes.
      
8 July to 17 July
 
8 July to 17 July
* Taking two minor activities, Colors
+
* Taking two minor activities, Colors and Stopwatch ​ and changing their codes according to the basic migration steps and features proposed.
and Stopwatch ​ and changing their
  −
codes according to the basic
  −
migration steps and features
  −
proposed.
      
18 July to 26 July
 
18 July to 26 July
* Changing the codes of two minor
+
* Changing the codes of two minor activities, Dots and Boxes​ and Slider-puzzle-branch​ according to the basic migration steps and features proposed.
activities, Dots and Boxes​ and
  −
Slider-puzzle-branch​ according to
  −
the basic migration steps and features
  −
proposed.
      
27 July to 28 July
 
27 July to 28 July
* Test the 4 activities and send the
+
* Test the 4 activities and send the patches to the community for review and make necessary changes.
patches to the community for review
  −
and make necessary changes.
      
29 July to 7 August
 
29 July to 7 August
* Changing the codes of two minor
+
* Changing the codes of two minor activities, Classroom broadcast ​and Convert ​according to the basic migration steps and features proposed.
activities, Classroom broadcast ​and
  −
Convert ​according to the basic
  −
migration steps and features
  −
proposed.
      
8 August to 16 August
 
8 August to 16 August
* Changing the codes of two minor
+
* Changing the codes of two minor activities, Arithmetic​ and Pukllanapac ​and according to the basic migration steps and features proposed.
activities, Arithmetic​ and
  −
Pukllanapac ​and according to the
  −
basic migration steps and features
  −
proposed.
      
17 August to 18 August
 
17 August to 18 August
* Test the 4 activities and send the
+
* Test the 4 activities and send the patches to the community for review and make necessary changes.
patches to the community for review
  −
and make necessary changes.
      
19 August to 23 August
 
19 August to 23 August
 
* Improve the code efficiency
 
* Improve the code efficiency
* A last test of all the activities
+
* A last test of all the activities refactored and make sure that each activity is running perfectly and faster.
refactored and make sure that each
  −
activity is running perfectly and faster.
      
24 August to 27 August
 
24 August to 27 August
 
* Bug fixes
 
* Bug fixes
* Documentation of features that are
+
* Documentation of features that are implemented, on wiki pages.
implemented, on wiki pages.
      
28 August to 30 August
 
28 August to 30 August
Line 320: Line 237:  
We want to make sure that you can set up a ​development environment​ before the summer
 
We want to make sure that you can set up a ​development environment​ before the summer
 
starts. Please do ​one​ of the following:
 
starts. Please do ​one​ of the following:
* Send us a link to a screenshot of your Sugar development environment with the
+
* Send us a link to a screenshot of your Sugar development environment with the following modification: when you hover over the XO-person icon in the middle of Home view, the drop-down text should have your email in place of "logout".
following modification: when you hover over the XO-person icon in the middle of
+
* Send us a link to a pull request or merge request you have made on a Sugar or Sugar activity bug.
Home view, the drop-down text should have your email in place of "logout".
  −
* Send us a link to a pull request or merge request you have made on a Sugar or
  −
Sugar activity bug.
   
  https://github.com/sugarlabs/reflect/pull/10
 
  https://github.com/sugarlabs/reflect/pull/10
 
  [reflect] added a collapse button to close the overlay area.
 
  [reflect] added a collapse button to close the overlay area.

Navigation menu