Skip to content

Commit

Permalink
docs: gsoc 2024 (#105)
Browse files Browse the repository at this point in the history
doc: gsoc 2024
  • Loading branch information
ice0 committed Feb 6, 2024
2 parents 5db35b6 + 96c024e commit ca4a516
Show file tree
Hide file tree
Showing 6 changed files with 351 additions and 0 deletions.
35 changes: 35 additions & 0 deletions .readthedocs.yaml
@@ -0,0 +1,35 @@
# Read the Docs configuration file for Sphinx projects
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Set the OS, Python version and other tools you might need
build:
os: ubuntu-22.04
tools:
python: "3.12"
# You can also specify other tool versions:
# nodejs: "20"
# rust: "1.70"
# golang: "1.20"

# Build documentation in the "docs/" directory with Sphinx
sphinx:
configuration: docs/conf.py
# You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs
# builder: "dirhtml"
# Fail on all warnings to avoid broken references
# fail_on_warning: true

# Optionally build your docs in additional formats such as PDF and ePub
# formats:
# - pdf
# - epub

# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: docs/requirements.txt
11 changes: 11 additions & 0 deletions docs/gsoc/2024.rst
@@ -0,0 +1,11 @@
.. _gsoc:

Google Summer of Code 2024
==========================

.. toctree::
:maxdepth: 2
:glob:

2024/*

133 changes: 133 additions & 0 deletions docs/gsoc/2024/application.rst
@@ -0,0 +1,133 @@
Application
===========

Synfig GSoC application 2024
------------------------------------

| **How did you first find out about Google Summer of Code?**
| Found that on the web in announcement from Blender Foundation
| **Website URL for Organization:**
| https://synfig.org
| **Tagline:**
| Open-source 2D animation software
| **Primary Open Source License:**
| GPLv3
| **What year was your project started?**
| 2006
| **Link to your source code location:**
| https://github.com/synfig/synfig
| **Organization Categories**
| Media (graphics, video, audio, VR, streaming, gaming, content management, etc)
| **Organization Technologies:**
| C++, Python, GTK, GTKmm
| **Organization Topics:**
| Vector graphics, Animation, 2d/3d graphics
| **What would your organization consider to be a successful GSoC program?**
| This summer we plan to help newcomers to the open source world and attract new contributors.
| **How will you keep mentors engaged with their GSoC contributors?**
| 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.
Administrator of the project also watches reports and ensures that feedback provided by mentors on time.


| **How will you keep your GSoC contributors on schedule to complete their projects?**
| Every contributor is required to write a short report about his progress every week, answering those questions:
- How was the last week? What did you accomplish?
- What is the #1 thing slowing you down?
- What do you want to have done by the end of next week?

These weekly blog posts will allow the contributor’s mentors and org admins to notice if a contributor is falling behind right away.

| **How will you get your GSoC contributors involved in your community during GSoC?**
| 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.
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).


| **Why does your org want to participate in Google Summer of Code?**
| 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.
| **How many potential mentors have agreed to participate?**
| 1-3
| **Has your org been accepted as a mentoring org in Google Summer of Code before?**
| Yes.
**Which years did your org participate in GSoC? [Checkboxes]**

- 2019
- 2020
- 2021
- 2022
- 2023


**Proposal Process / Application Instructions**

::

Before applying, please make sure to read [getting started page](https://synfig-docs-dev.readthedocs.io/en/latest/gsoc/2021/getting-started.html).

Application Template
====================

**Name**

Please provide your full name

**Email / Social / Web**

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.

**Synopsis**

A short description of your planned GSoC project.

**Benefits**

Describe how your project will benefit Synfig. Will it benefit artists using Synfig? Will it be an aid for future Synfig development?

**Deliverables**

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.

**Project Details**

A more detailed description.

**Project Schedule**

How long will the project take? When can you begin work?
Include an estimated timeline of the project with mini-milestones.
Do you have any possible school or work conflicts with your schedule?

** Short Bio**

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.

**Proposal Tags**

improvement, bugfix, infrastructure

**Contacts Methods:**

Mailing List: https://forums.synfig.org/c/development

General Email: contact -AT- synfig -DOT- org

**Links**

Twitter: https://twitter.com/synfig

Blog: https://www.synfig.org/news/
69 changes: 69 additions & 0 deletions docs/gsoc/2024/getting-started.rst
@@ -0,0 +1,69 @@
.. _getting-started:

Getting Started
=====================

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

Before applying, please check with our `ideas page <https://synfig-docs-dev.readthedocs.io/en/latest/gsoc/2022/ideas.html#projects-ideas>`_ for our requirements for acceptance.

Also, please make sure to read the following tips:

Application FAQs
~~~~~~~~~~~~~~~~

**Q: What will most help my odds of acceptance?**

A: There are a number of things you can do to help your odds

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.
2. Show evidence of past experience or achievements related to the proposal.
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.
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).

**Q: Is there some place that tells me the process of compiling Synfig?**

A: See `this documentation <https://synfig-docs-dev.readthedocs.io/en/latest/common/building.html>`_.

**Q: Where can I learn basics of Synfig's functionality?**

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.

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>`_.

Application Template
~~~~~~~~~~~~~~~~~~~~

**Name**

Please provide your full name

**Email / Social / Web**

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.

**Synopsis**

A short description of your planned GSoC project.

**Benefits**

Describe how your project will benefit Synfig. Will it benefit artists using Synfig? Will it be an aid for future Synfig development?

**Deliverables**

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.

**Project Details**

A more detailed description.

**Project Schedule**

How long will the project take? When can you begin work?
Include an estimated timeline of the project with mini-milestones.
Do you have any possible school or work conflicts with your schedule?

**Short Bio**

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.
101 changes: 101 additions & 0 deletions docs/gsoc/2024/ideas.rst
@@ -0,0 +1,101 @@
.. _ideas:

Ideas List
=====================


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.

Projects Ideas
--------------

Automated release notes generator and packaging script fixes (175 or 350 hrs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

**Description:**
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.)

- Add script which extract git messages starting from `start_commit_id` to `commit_id` (this can be achieved by using formatted `git log` output)
- Group these messages by type and output them in HTML/markdown format
- Add this script to CI pipeline (so it will show to user how it changes final changelog) (optional)

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

- Write a script for packaging AppImage (there are ready-made scripts for packaging AppImage, but you need to check if they work correctly)

**Where to begin:**

Try extracting a list of messages from the git log output.

**Expected results:**

- Changelog file can be generated automatically
- AppImage bundle can be generated automatically

**Difficulty:** Easy/Medium

**Skills required:** Python/C++

**Planned mentor(s):** Ayush Chamoli, `Rodolfo Ribeiro Gomes <https://github.com/rodolforg>`_


macOS app bundle (175 or 350 hrs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

**Requirements:** macOS

- add script/program to collect executable/library dependencies (python/c++ preferred) to SynfigStudio.app folder
- 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)
- remove the macOS launcher script, add the code to set up the required macOS environment from the synfig/synfigstudio apps
- add cpack support to build installer on macOS
- add python and lxml packaging to .app (with signing))
- interface/menu improvements for more native macOS support

**Where to begin:**

- create prototype script/program to collect executable/library dependencies

**Expected results:**

- CMake/CPack builds SynfigStudio.app ready for distribution (175 hours)
- Synfig Studio is better adopted to macOS guidelines (350 hrs)

**Difficulty:** Medium

**Planned mentor(s):** `Dhairya Bahl <https://github.com/DhairyaBahl>`_, `Rodolfo Ribeiro Gomes <https://github.com/rodolforg>`_


Propose a Project
------------------
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/2022/ideas.rst), even if you could not mentor (we will find a mentor).

**Required information for project proposal**

::

A descriptive title (175 or 350 hrs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**- Description**

A brief description about the project

**- Expected Results**

What benefit this deliver?

**- Difficulty** Easy | Medium | High

**- Skills required** Knowledge Prerequisite

**- Mentor(s)** Put your name if you are willing to mentor + other mentors.

*Please mention the following as comment on your proposal pr*

:Your name: :)
:Your profile: github | linkedin | etc
:Your role: I am a making this proposal as a <student | mentor | community member | contributor | etc>

Contacts
--------

https://www.synfig.org/contact/
2 changes: 2 additions & 0 deletions docs/requirements.txt
@@ -0,0 +1,2 @@
recommonmark
sphinx-rtd-theme

0 comments on commit ca4a516

Please sign in to comment.