[GSoC 2024] Google Summer of Code 2024

Hello guys!

We decided to apply for Google Summer of Code program this year again.

The organization application period is open now and it will close Feb 6 at 1800UTC. - Google Summer of Code 2024 Mentor Organization Applications Now Open | Google Open Source Blog

Now it is time to prepare all necessary docs for application.

Questions we should answer first:

  • Who is willing to participate as mentor? It would be nice if you provide a project ideas that you are willing to mentor. If you have potential student who can carry the project - please mention that too.
  • Who can help with preparing application docs? We have docs for previous year here - Google Summer of Code 2023 — Synfig developers docs documentation. Most information can be copied.
  • Help to discuss ideas for student’s projects. See list from previous year - Ideas List — Synfig developers docs documentation.
    Remember that we can accept idea only if there are someone who is willing to mentor it. In any case, post your crazy ideas in this thread and get fellow devs interested.
  • Prepare list of simple issues to test skills of aspiring students. We need to examine list of existing issues in our tracker and mark some of them with “good-first-issue”, “help-wanted” and “Easy” labels. Adding simple issues is also appreciated.

Good luck to everyone.

8 Likes

Hey my name is shehab khaled. I am a computer engineering student at my third year at cairo university. I am really intrested in contributing to synfig how could i get started?

2 Likes

Hello Shehab, you can check the issues on Github. Some have labels like “easy”, and “good first issue”. Go through them, find one that seems suitable, and work on it : ).

Also you can check the dev docs. It has various sections for contribution guidelines, and building synfig that could be quite helpful.

Good luck : )

Hi Iam Nassar khaled ,I am looking forward to participating in GSoC specifically the plugin dialog box project, I do have previous experience in 3d graphics with Blender and 2d After Effect which gave me adequate experience ,so I got used to blender ADD-ONs dialogue box which has the same concept of this project. I have dedicated my time to know more and understand the code. That’s why I want to be part of the team ,and that’s why I think this is the place where I want to be

2 Likes

Hi, @mohamed.Adhamc, I have contributed to a good-first-issue on the repository earlier and have one other PR for enhancement raised. And discussing other active issues. I kindly request your assistance with the following:

  1. Actually, I’m currently working remotely as a part-time software developer, and will definitely be able to dedicate 6+ hours daily. Am I eligible for application?

  2. If so, should I keep contributing to the existing issues on the repository as much as possible, and will we be using the forum for the communication channel, in case required?

Thanks and regards.
Gratified Synfig User

Hi guys (Shehab, Kartik, Nassar)!

@kartikwatts @nassar @shehab299

Yes it’s ok.
Also you need to check contributor agreement for full list of rules.

You need to choose an idea from the list (or suggest your own).
https://synfig-docs-dev.readthedocs.io/en/latest/gsoc/2024/ideas.html

After that you can check Where to begin section (if there is one) and try to do something related to this idea.

2 Likes

[GSOC 24] - Automated release notes generator and packaging script fixes

Hello Mentors,
I am Omkar, an undergraduate studying Computer Science in India.
I am interested in contributing to the above project as part of GSOC 24. I have finished the Getting Started tasks and any feedback would be appreciated.
Github link - GitHub - omkar-334/Synfig-Changelog-Generator
Issue link - [GSOC 24] - Automated release notes generator and packaging script fixes · Issue #3337 · synfig/synfig (github.com)

Thank you, Omkar

1 Like

Hi, Omkar!

Looks good!

  1. Please add usage instructions so that new user can know how to use these scripts.
  2. Try to use minimum dependencies as possible (the main idea here is to learn git tools better). The best option is to implement both approaches: first - using external dependencies, second - using only system calls to git tool.
  3. Add system requirements: required Python version, OS.

Hello mentors!
I hope you are all doing great,

I am Ahmed Khaled, a second-year Computer Science Student from Egypt,
I am thrilled about the opportunity to contribute to Synfig through the GSoC “Automated release notes generator” Project, the idea of working on something related to git is very exciting for me since my latest project using C++ was a game that helps people learn git :sweat_smile:

I will begin working on the commit message extraction task listed in the project description, Any additional clarification on how the expected output looks would be appreciated, Should I list each merge commit’s message and PR description under each other and do that for all commits?
Thanks in advance, I am looking forward to contributing!

1 Like

Hi, Ahmed!

@Ahmed-Khaled @omkar334

It was planned to make 2 modes for extracting commit information: short and full.

Simple will be used to generate short summary for weekly notes.
Only git subject (PR title) is required.
(Here you may still need integration with Github API, because we can make some changes to the PR description after it was already merged).

Full will be used to generate detailed changelog which is used to make Release notes (with images and detailed descriptions).

Here are some visual ideas of what a simple changelog should look like:

[Caffeine - IntelliScape Solutions]

Ts.Ed changelog example (https://tsed.io)

Some fancy icons for descriptions:
:sparkles: (feat), :bug: (fix), :books: (docs), :gem: (style), :recycle: (refactor),
:rocket: (perf), :white_check_mark: (test), :package: (build), :construction_worker_man: (ci), :wrench: (chore).

P.S. Please also let us know what size project you have chosen (175 or 350 hours)

1 Like

Sounds great!
Thanks a lot for the additional information,
Based on the info in the project description and the extra info you provided, I will plan to do the following currently as an exercise (Let me know if you think this is suitable),

I will create a simple well-documented C++ script that

  1. Extracts a number of “regular commits” or “merge commits” based on user input
  2. Groups these commits based on the message type (fix, feat, docs, etc.)
  3. If the user-chosen option was “merge commits”, I use the suitable extraction mode based on user input, Short (extract only PR title) or Full (Extract PR title and description)
  4. I output the extracted data inside a markdown file (While I’ll keep it simple for now, I’m excited to discuss ideas for enhancing the presentation of release notes later on)

As for the project size, I have sufficient time available to undertake the 350-hour version. While I possess expertise in git, markdown, and HTML, I lack familiarity with AppImage. Therefore, I currently lean towards the 175-hour version. Nevertheless, I am open to obtaining the necessary skills to tackle the 350-hour version. Therefore, I am open to learning about AppImage, Debian, and Flatpak packages. I would greatly appreciate any guidance on how to prepare myself to work with them.

Also, last note, when I finish the above script and later on for feedback on my proposal, Is there a private way to contact the mentors?, or how should I approach getting feedback on things like these?

Thank you once again for your guidance and support!