[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.

10 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.

3 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!

1 Like

Hi @ice0 ,
Thanks for the feedback

  1. I have added usage instructions and system requirements as well.
  2. To implement system calls to git tool, I have used subprocess module.
    But to use only system calls, the repository has to be local.
    Is the goal to track local repos or remote repos directly from github?

Github link - omkar-334/Synfig-Changelog-Generator (github.com)

Next Steps

  1. I will use my current functions to create 2 modes based on user input.
    Simple - PR Title (Git subject)
    Full - Detailed Changelog

  2. Use Conventional Commits to start grouping commits on the basis of type.

  3. Output formatting - can be saved to txt or md files

Regarding the project size, I have chosen the 350-hour version.
I have basic knowledge of AppImage, Flatpak and Debian images, and I will work to improve my understanding of the requirements accordingly.
Thank you!

1 Like

Hey @ice0 ,
I’ve created a simple changelog generator.
It extracts the date, author and commit title and includes the icons given by you (depending on the commit type)
Link - Synfig-Changelog-Generator/SHORT_CHANGELOG.md at main · omkar-334/Synfig-Changelog-Generator · GitHub

I am unable to post links as my posts have been flagged by the community. Can you please look into this?

Any feedback for this?
I’ll be trying out a detailed changelog and maybe use the GitHub API as well.
Also, could you give additional information about the debian and flatpak images?

Thank you,
Omkar

1 Like

Hi @omkar334 , the comment was flagged by the system due to something like “repeated links to a specific domain”. It should be restored now : ).

1 Like

Ok got it! Thank you for restoring them . I had just posted the link to my github repo. Is it safe to post the link now ?

1 Like

You’re welcome, no worries. It’s just usually when a new user signs up and posts links immediately the system marks it as some sort of potential “spam”. Because usually there are spam posts and comments that follow the same pattern.

1 Like

Hello Mentors,
I am Akshat, I’ve been contributing to the Synfig repo under the name Afterdie since July, 2023. I’ve got multiple PRs merged and many more up for review, I look forward to adding much more value to the community.

I had some doubts

  • I have been looking at some old issues and some of them are easy fixes however I believe Synfig would benefit greatly if these issues were worked on for a longer duration and could get a full revamp. So is it possible to submit an idea that adds to a given issue ?

  • Can the forum be used as a channel for communication for discussing the PRs and giving updates?

Thanks.

1 Like

Hello mentors,
I hope you are all doing well,

I have finished the exercise script that I mentioned in the message I am replying to,
You can test the script and see all its details in the following GitHub repo.

I’ve invested considerable effort into documenting the script and ensuring the code is well-documented and as clean as possible, so I believe you’ll easily find all the info you need in the repo’s readme, I am looking forward to hearing your feedback!

Having finished the exercise script, I am curious about a few details:

  • You mentioned outputting the release notes in HTML format, will the HTML look exactly like the Markdown, or will it have the same look as your website with specific CSS, or how do you expect this to be done?
  • You also mentioned adding this script to CI pipeline, any additional clarification on this point would be appreciated

Also, I would greatly appreciate any additional clarification on what next steps I should currently take, until your reply, I will be browsing the Synfig repo to get a better understanding of the whole software,
Thanks again and I am looking forward to hearing from you!

1 Like

Hi Mentors,

I am Yash, a final year UG CSE student from India. I’m excited to share that I have completed the task for the Automated release notes generator and packaging script fixes for Google Summer of Code 2024. My work is available on GitHub at GitHub - Onyx2406/Synfig_LogChange. I would be glad if Mentors could review the submission and suggest any improvements or feedback on how to proceed further. I would start working on the proposal and other tasks upon your approval.

I was also a mentee in GSoC 2023 with the Mifos Initiative, I’ve contributed to enhancing security and functionality across several open source projects. My journey through open-source contributions spans various technologies, including JavaScript, ReactJS, and C++.

As I move forward, I have a few questions to ensure clarity and alignment with the project goals:

  • Can you provide more details on how the Conventional Commits are currently being used in the workflow?
  • Are there any dependencies or configurations that need to be considered for the automated Debian and Flatpak packages?
    @rodolforg
    I look forward to hearing from you.

Thank you

1 Like

Hi guys!

Sorry for a late answer.

This is not an issue. We want you to learn something new for yourself in this summer. The planned time should be sufficient to become familiar with the technology and successfully complete the task.

There is a good guide for packaging AppImage: (Introduction to Packaging — AppImage documentation)

You can contact me or @rodolforg or @mohamed.Adhamc in PM here on forums.
But it’s preferable to just post here so more people from the community can respond to your answer.

Thank you too!

1 Like