[GSoC 2021] Google Summer of Code 2021

Hello , I am Aradhana Kund from IIIT Bhubaneswar , ETC branch (2nd Year). I am willing to contribute to synfig for the Project - Move ETL library code to synfig-core. @ankit and @ice0 are the mentors of this project . Given below are my skills :
->Expertise knowledge in c++(Data Structure and Algorithms and DAA )
->Proficiency in STL(Also gathered knowledge on ETL)
->Competitive Programming(1200 AIR in Google Hash Code)
I wish to contribute to this project and willing to interact with the mentors for better ideation of the project . It would be great if I am guided on my idea for the project.Looking forward for positive response.


Yes please count me in!!


Welcome onboard @dhairya_bahl @aradhana_kund @vaibhavds @riya1606 (and other students! sorry I am too lazy to tag everyone) :stuck_out_tongue:

@vaibhavds You don’t need to be super experienced before contributing as long as you are willing to learn and consistent you are good to go :smile:. Just start with reading the docs, then build synfig on your machine and watch the video course to understand what synfig actually is !

Welcome onboard @aradhana_kund. Glad to see you interested! My response is same for you as well. Just start with reading the docs, then build synfig on your machine and watch the video course to understand what synfig actually is! After that, you can start working on good first issues.

As I can see I am late for the party and @ice0 have already answered most of the things, still
I highly recommend that you guys read student’s guideline

It’s not exhaustive however I will keep adding points as I recall them. Feel free to reach me here on the forum.


Thank you so much @ankit , glad to here out from you . Following up your instructions !

1 Like

@ankit Thank You for sharing all the guidelines related to GSoC . Looking forward to contribute more to synfig :slightly_smiling_face: .

Regards :pray:


Thank you @ankit! Will follow your instruction! Thank you for the guidance!

1 Like

@ice0, I am not getting much of an idea by turning off and on the layers, visually at least, about which of the layers are causing performance degradation.

Hii everyone! I’d love to help here this summer \(^_^)/

To everyone new and want to get started with the project, I’d recommend you to clone the synfig repository. Git will be your best friend along the way here :smiley_cat:. Anyways, once you’re done with that, make sure you’re able to build it on your system. The documentation will really help you on this since the build process for Linux, Windows and OSX are mentioned there (oh, and I can help if anyone faces an issue with CMake builds). Once that’s done, you’re ready to play with the code. I hope someone finds this helpful :innocent:

Moving on, I found the project about moving the ETL code interesting and I had something I wanted to pitch in. The thing is, I’ve gone through a couple of books by Scott Meyers, Effective Modern C++ and Effective STL, and I thought it could be a good idea to adopt some of the modern C++ standards from there since we are moving the code written in the 2000s to C++11.


@ayesdie Thank you so much mam for the suggestion for ETL code. I will definitely give it a go and I usually do development on Windows ! So that shouldn’t be a problem !

Regards :slightly_smiling_face::pray:

I think this is because each layer adds its own small delay, which eventually becomes significant.
Ok, in this case you can use the perf tool and see exactly where it spends most of its time.


Hello @ice0,

I was working on an issue of getting rid of intltool and switching to gettext few months ago and we got stuck there due to some problem. Should we include that as well in the idea list of the GSoC ?

I don’t know if that issue is too small according to the GSoC timeline or too big for the GSoC timeline ! I just want you guys to look into that as well, as it was a milestone issue for v1.6.0

I am just giving a suggestion !

Thanks and regards :slightly_smiling_face:

In my opinion, keeping that issue separate would be a better idea since it isn’t directly related to any of the existing project on the list. Not that there is a problem with doing that along with the project, but you need to remember that this year’s project is limited to ~175 hours, in which, finishing the main project should be prioritized.

And from what I saw in the issue, it would require a fix in the autotools and CMake script.

1 Like

@ayesdie Understood ! Thanks for looking at my suggestion. :slightly_smiling_face:


Of course, in case the motivated volunteers would not be selected for GSoC, they are still welcome to contribute to the project :wink:


As I wrote here:

The last place where intltool is used - is merging translation for the plugin.xml files. Gnome suggest to use ITSTool instead of intltool to translate this files. So I see only CONS here:

  1. We are breaking our current translation pipeline;
  2. We don not remove extra dependency - just switch it to another;
  3. We need extra files (with rules) to do the same work;
  4. We are losing support for old-old-stable distributions.

So I think this is not the good idea for GSoC.

1 Like

@ice0 Understood ! Thanks for looking at my suggestion ^ _ ^ .

Hello Everyone,
I am Aman Gupta. I am interested to be a part of the Synfig family in the upcoming GSoC 2021. someone, please guide how can I start contributing to this project.


Greetings @Aman-Gupta ,

I would suggest you to build synfig in your local system ( you can take help from synfig-docs ) , then you can try reading the docs to get a better idea of the project.

Welcome to the synfig family already :slight_smile: , Do checkout some good-first-issues to solve after successfully building synfig in your local machine.

All the best :slight_smile:

1 Like

@rodolforg @ankit Can you guys please explain this Replacement of deprecated Gtk classes idea in bit more detail. I am unable to understand what exactly one have to do in this project.

I am asking because I am planning to make my proposal for this project idea .

Thanks and Regards [^__^]

1 Like

Synfig uses GTK or rather call it gtkmm you can read about it here since the version we are using contains components which are deprecated and we want to use the latest GTK 4.0 equivalent for them.

Some examples as mentioned in idea list.

get rid of deprecated Gtk::StockId (since before 2013)
convert deprecated Gtk::Action to Gio::Action (since 2016)
convert/get rid of deprecated Gtk::UIManager to Gtk::Builder (since 2013)
(possibly) convert deprecated Gtk::Main 2 to Gtk::Application (since 2012)

If you are not able to understand what these components are that’s alright you are not expected to understand them beforehand. GTK and gtkmm documentation will be your friend :smile:

I suggest you start looking into the gui folder of synfig-studio to understand the coding practices that we use.

Additionally, if you are on ubuntu

Synfig compiles with the -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED flags on Ubuntu 16.04 and Ubuntu 20.04

The main idea is to replace deprecated methods with the recommended ones.
To understand which methods are deprecated, you just need to build the project with
-DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED flags and you will see deprecation warnings.


1 Like