Skip to content

Commit f8bf928

Browse files
authored
docs: added GSoC 2025 (#116)
1 parent fc6ab89 commit f8bf928

5 files changed

Lines changed: 378 additions & 1 deletion

File tree

docs/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
# -- Project information -----------------------------------------------------
2121

2222
project = 'Synfig developers docs'
23-
copyright = '2024, Synfig Developers'
23+
copyright = '2025, Synfig Developers'
2424
author = 'Synfig developers'
2525

2626
# The short X.Y version

docs/gsoc/2025.rst

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
.. _gsoc:
2+
3+
Google Summer of Code 2025
4+
==========================
5+
6+
.. toctree::
7+
:maxdepth: 2
8+
:glob:
9+
10+
2025/*
11+

docs/gsoc/2025/application.rst

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
Application
2+
===========
3+
4+
Synfig GSoC application 2025
5+
------------------------------------
6+
7+
| **How did you first find out about Google Summer of Code?**
8+
| Found that on the web in announcement from Blender Foundation
9+
10+
| **Website URL for Organization:**
11+
| https://synfig.org
12+
13+
| **Tagline:**
14+
| Open-source 2D animation software
15+
16+
| **Primary Open Source License:**
17+
| GPLv3
18+
19+
| **What year was your project started?**
20+
| 2006
21+
22+
| **Link to your source code location:**
23+
| https://github.com/synfig/synfig
24+
25+
| **Organization Categories**
26+
| Media (graphics, video, audio, VR, streaming, gaming, content management, etc)
27+
28+
| **Organization Technologies:**
29+
| C++, Python, GTK, GTKmm
30+
31+
| **Organization Topics:**
32+
| Vector graphics, Animation, 2d/3d graphics
33+
34+
| **What would your organization consider to be a successful GSoC program?**
35+
| This summer we plan to help newcomers to the open source world and attract new contributors.
36+
37+
| **How will you keep mentors engaged with their GSoC contributors?**
38+
| Every contributor opens GitHub’s issue, which is corresponding to his project and there provides weekly public reports about his progress. Every mentor should follow reports and provide on-time feedback and consultation to contributor via public discussion in relevant GitHub’s issue or privately via email/IM. Also, every mentor is required to contact contributor at least twice a week to check for the progress.
39+
40+
Administrator of the project also watches reports and ensures that feedback provided by mentors on time.
41+
42+
43+
| **How will you keep your GSoC contributors on schedule to complete their projects?**
44+
| Every contributor is required to write a short report about his progress every week, answering those questions:
45+
46+
- How was the last week? What did you accomplish?
47+
- What is the #1 thing slowing you down?
48+
- What do you want to have done by the end of next week?
49+
50+
These weekly blog posts will allow the contributor’s mentors and org admins to notice if a contributor is falling behind right away.
51+
52+
| **How will you get your GSoC contributors involved in your community during GSoC?**
53+
| Considering that there are no mechanics to 100% guarantee contributor involvement after the program, we aim to maintain a community with a special attitude, where a contributor can have a home-like feeling, where he know his work is valued and appreciated by community other members and creative people from all around the world. This is the main motivation to contribute for all current project members.
54+
55+
Given that we put initial contributor motivation in the first place, we understand that there are situations where a massive and long-term contribution effort it not possible without monetary reward. So, thanks to a regular income of donations we can afford to pay a small grants for implementing some features, for contributors who have proven their abilities and skill to carry and complete projects. The money for such grants are collected via continuous crowdfunding and other means (see https://www.synfig.org/donate/ for details).
56+
57+
58+
| **Why does your org want to participate in Google Summer of Code?**
59+
| GSoC gives us an opportunity to grow our community of contributors. With GSoC contributors can work on Synfig full time for 175 hours and that's a great advancement to our project. But that's not all - the fact of participation in GSoC attracts attention to our project: before GSoC coding period starts, we get many contributions from aspiring contributors, who wish to proof their skills to be selected for participation. That's also a great boost for our project.
60+
61+
| **How many potential mentors have agreed to participate?**
62+
| 1-3
63+
64+
| **Has your org been accepted as a mentoring org in Google Summer of Code before?**
65+
| Yes.
66+
67+
**Which years did your org participate in GSoC? [Checkboxes]**
68+
69+
- 2019
70+
- 2020
71+
- 2021
72+
- 2022
73+
- 2023
74+
- 2024
75+
76+
77+
**Proposal Process / Application Instructions**
78+
79+
::
80+
81+
Before applying, please make sure to read [getting started page](https://synfig-docs-dev.readthedocs.io/en/latest/gsoc/2021/getting-started.html).
82+
83+
Application Template
84+
====================
85+
86+
**Name**
87+
88+
Please provide your full name
89+
90+
**Email / Social / Web**
91+
92+
Where can we contact you? If you have a web page you'd like us to know about, please include it. Make sure to mention your Facebook, Twitter or other identities.
93+
94+
**Synopsis**
95+
96+
A short description of your planned GSoC project.
97+
98+
**Benefits**
99+
100+
Describe how your project will benefit Synfig. Will it benefit artists using Synfig? Will it be an aid for future Synfig development?
101+
102+
**Deliverables**
103+
104+
Provide a user-level summary of the final output or results of your project. How does it integrate in Synfig, and how does it cooperate with the rest of Synfig's features? Note that end-user documentation should be one of the deliverables as well.
105+
106+
**Project Details**
107+
108+
A more detailed description.
109+
110+
**Project Schedule**
111+
112+
How long will the project take? When can you begin work?
113+
Include an estimated timeline of the project with mini-milestones.
114+
Do you have any possible school or work conflicts with your schedule?
115+
116+
** Short Bio**
117+
118+
Please let us know who are you, what are you studying (and where), and what activities do you enjoy? What is your experience using Synfig or animation or other computer graphics programs? What code development projects you've participated in? What makes you the best person to work on this project? If you have any history submitting bug fixes or patches to our issue tracker at GitHub, please indicate what you have done.
119+
120+
**Proposal Tags**
121+
122+
improvement, bugfix, infrastructure
123+
124+
**Contacts Methods:**
125+
126+
Mailing List: https://forums.synfig.org/c/development
127+
128+
General Email: contact -AT- synfig -DOT- org
129+
130+
**Links**
131+
132+
Twitter: https://twitter.com/synfig
133+
134+
Blog: https://www.synfig.org/news/

docs/gsoc/2025/getting-started.rst

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
.. _getting-started:
2+
3+
Getting Started
4+
=====================
5+
6+
When applying for a Google Summer of Code grant to work with the Synfig, your application must follow our application template below (much of which we have borrowed from the Blender Foundation, with gratitude).
7+
8+
Before applying, please check with our `ideas page <https://synfig-docs-dev.readthedocs.io/en/latest/gsoc/2025/ideas.html#projects-ideas>`_ for our requirements for acceptance.
9+
10+
Also, please make sure to read the following tips:
11+
12+
Application FAQs
13+
~~~~~~~~~~~~~~~~
14+
15+
**Q: What will most help my odds of acceptance?**
16+
17+
A: There are a number of things you can do to help your odds
18+
19+
1. A quality proposal - a well thought out proposal that shows you understand what you want to do and have reasonable expectations about what can be accomplished in the time you will have available.
20+
2. Show evidence of past experience or achievements related to the proposal.
21+
3. We require you to have 1-2 useful contributions to Synfig before the program starts - this show that you can successfully read, edit, and compile our code.
22+
4. Discuss your application with us and get some feedback. The best way to do so is to open an issue on GitHub with description of your proposal (make sure to specify in title that is is GSoC-related).
23+
24+
**Q: Is there some place that tells me the process of compiling Synfig?**
25+
26+
A: See `this documentation <https://synfig-docs-dev.readthedocs.io/en/latest/common/building.html>`_.
27+
28+
**Q: Where can I learn basics of Synfig's functionality?**
29+
30+
A: We recommend to become familiar with existing Synfig functionality before you start any coding. You can start with `beginner's tutorials <https://wiki.synfig.org/Category:Tutorials>`_. Also, you can request a free access to `our video training course <https://www.udemy.com/synfig-studio-cutout-animation-en/>`_, which allow you to grab all basicsin the shortest time. Just mail us via `contact page <https://www.synfig.org/contact/>`_ letting us know that you are aspiring GSoC contributor - and we will send you a link for free access.
31+
32+
After watching the course we recommend to get familiar with Synfig's code by reading `this page <https://synfig-docs-dev.readthedocs.io/en/latest/common/structure.html>`_.
33+
34+
Application Template
35+
~~~~~~~~~~~~~~~~~~~~
36+
37+
**Name**
38+
39+
Please provide your full name
40+
41+
**Email / Social / Web**
42+
43+
Where can we contact you? If you have a web page you'd like us to know about, please include it. Make sure to mention your Facebook, Twitter or other identities.
44+
45+
**Synopsis**
46+
47+
A short description of your planned GSoC project.
48+
49+
**Benefits**
50+
51+
Describe how your project will benefit Synfig. Will it benefit artists using Synfig? Will it be an aid for future Synfig development?
52+
53+
**Deliverables**
54+
55+
Provide a user-level summary of the final output or results of your project. How does it integrate in Synfig, and how does it cooperate with the rest of Synfig's features? Note that end-user documentation should be one of the deliverables as well.
56+
57+
**Project Details**
58+
59+
A more detailed description.
60+
61+
**Project Schedule**
62+
63+
How long will the project take? When can you begin work?
64+
Include an estimated timeline of the project with mini-milestones.
65+
Do you have any possible school or work conflicts with your schedule?
66+
67+
**Short Bio**
68+
69+
Please let us know who are you, what are you studying (and where), and what activities do you enjoy? What is your experience using Synfig or animation or other computer graphics programs? What code development projects you've participated in? What makes you the best person to work on this project? If you have any history submitting bug fixes or patches to our issue tracker at GitHub, please indicate what you have done.

docs/gsoc/2025/ideas.rst

Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
.. _ideas:
2+
3+
Ideas List
4+
=====================
5+
6+
7+
This year we plan to apply to Google Summer of Code. Currently we are looking for project ideas. If you are a contributor, you are welcome to explore existing project ideas towards the GSoC application phase. There are ways to reach out to mentors, and many projects have lists of newcomer friendly issues you can start from. Contributors are also welcome to propose their own project ideas.
8+
9+
Projects Ideas
10+
--------------
11+
12+
Automated release notes generator and packaging script fixes (175 or 350 hrs)
13+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14+
15+
**Description:**
16+
We use Conventional commits (https://www.conventionalcommits.org/en/v1.0.0/) for git commits, so we can automatically split messages into groups (bug fixes, features, etc.)
17+
18+
- Add script which extract git messages starting from `start_commit_id` to `commit_id` (this can be achieved by using formatted `git log` output)
19+
- Group these messages by type and output them in HTML/markdown format
20+
- Add this script to CI pipeline (so it will show to user how it changes final changelog) (optional)
21+
22+
**AppImage bundler:** We are currently using AppImage to prepare bundle for Linux, but we are using AppImage 1.0 which is outdated and needs to be updated.
23+
24+
- Write a script for packaging AppImage (there are ready-made scripts for packaging AppImage, but you need to check if they work correctly)
25+
26+
**Debian package and Flatpak package**
27+
28+
- Write a script for automated Debian and Flatpak packages (Optional)
29+
30+
**Where to begin:**
31+
32+
Try extracting a list of messages from the git log output using the following requirements:
33+
34+
- 1) Extract only merge commits or direct commits
35+
- 2) Extract Pull Request id from this commits
36+
- 3) Extract Pull Request description using Github API (this is necessary because PR may contain images and extended information)
37+
38+
**Expected outcome:**
39+
40+
**175 hours**
41+
42+
- Changelog file can be generated automatically
43+
44+
**350 hours**
45+
46+
- AppImage bundle can be generated automatically
47+
- Debian and Flatpak packages can be generated automatically (optional)
48+
49+
**Difficulty:** Easy/Medium
50+
51+
**Skills required/preferred:** Python/C++
52+
53+
**Possible mentor(s):** Ayush Chamoli, `Rodolfo Ribeiro Gomes <https://github.com/rodolforg>`_
54+
55+
**Expected size of project:** 175 or 350 hours
56+
57+
58+
macOS app bundle (175 or 350 hrs)
59+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
60+
61+
**Description:**
62+
63+
We are currently using a script to create a macOS app bundle, but it has some issues.
64+
Generation takes a long time (could be greatly improved), it uses incorrect paths in some places and does not sign files.
65+
66+
**Requirements:** macOS or access to macOS command-line (so you can test your script)
67+
68+
- add script/program to collect executable/library dependencies (python/c++ preferred) to SynfigStudio.app folder
69+
- add support for signing binary files (this should be done in reverse order, files without dependencies should be signed first, SynfigStudio.app should be signed last)
70+
- remove the macOS launcher script, add the code to set up the required macOS environment from the synfig/synfigstudio apps
71+
- add cpack support to build installer on macOS
72+
- add python and lxml packaging to .app (with signing))
73+
- interface/menu improvements for more native macOS support
74+
75+
**Where to begin:**
76+
77+
- create prototype script/program to collect executable/library dependencies
78+
79+
**Expected outcome:**
80+
81+
**175 hours**
82+
83+
- CMake/CPack builds SynfigStudio.app ready for distribution
84+
85+
**350 hours**
86+
87+
- Synfig Studio is better adopted to macOS guidelines
88+
89+
**Difficulty:** Medium
90+
91+
**Skills required/preferred:** Python/C++
92+
93+
**Possible mentor(s):** `Dhairya Bahl <https://github.com/DhairyaBahl>`_, `Rodolfo Ribeiro Gomes <https://github.com/rodolforg>`_
94+
95+
**Expected size of project:** 175 or 350 hours
96+
97+
98+
Plugin manager dialog (175 or 350 hrs)
99+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
100+
101+
**Description:**
102+
A dialog for management of Synfig Studio plugins and Synfig modules.
103+
The dialog would show the currently supported plugin/module metadata and allow user to:
104+
105+
- uninstall it
106+
- open its folder in the default OS file manager
107+
- install a plugin from a zip package already stored in local machine
108+
- maybe browse/download from a (future) online plugin repository (maybe a dedicated service or a special session from Synfig forums or even a git server)
109+
110+
**Expected outcome:**
111+
112+
**175 hours**
113+
114+
- Users could easily list, install and uninstall plugins and modules they downloaded from Internet.
115+
116+
**350 hours**
117+
118+
- Plugin repository
119+
120+
**Difficulty:** Easy/Medium
121+
122+
**Skills required/preferred:** C++, gtkmm
123+
124+
**Possible mentor(s):** `Rodolfo Ribeiro Gomes <https://github.com/rodolforg>`_, `Mohamed Adhamc <https://github.com/mohamedAdhamc>`_
125+
126+
**Expected size of project:** 175 or 350 hours
127+
128+
Propose a Project
129+
------------------
130+
If you have a project idea, edit the "Project Ideas" section below by filling the required details and sending a pull request (this page is editable at https://github.com/synfig/synfig-docs-dev/blob/master/docs/gsoc/2025/ideas.rst), even if you could not mentor (we will find a mentor).
131+
132+
**Required information for project proposal**
133+
134+
::
135+
136+
A descriptive title (175 or 350 hrs)
137+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
138+
**Description**
139+
140+
A brief description about the project
141+
142+
**Expected outcome**
143+
144+
What benefit this deliver?
145+
146+
**Difficulty** Easy | Medium | High
147+
148+
**Skills required/preferred:** Knowledge Prerequisite
149+
150+
**Possible mentor(s):** Put your name if you are willing to mentor + other mentors.
151+
152+
**Expected size of project:** 90, 175 or 350 hours
153+
154+
*Please mention the following as comment on your proposal pr*
155+
156+
:Your name: :)
157+
:Your profile: github | linkedin | etc
158+
:Your role: I am a making this proposal as a <student | mentor | community member | contributor | etc>
159+
160+
Contacts
161+
--------
162+
163+
https://www.synfig.org/contact/

0 commit comments

Comments
 (0)