Difference between revisions of "Dev:Contribute to Code"

From Synfig Studio :: Documentation
Jump to: navigation, search
(Things you want to know about the code: reply questions)
m (Cleaning)
 
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Code]]
+
<!-- Page info -->
 +
{{Title|Contribute to Code}}
 +
{{Category|Code}}
 +
<!-- Page info end -->
 
== Introduction ==
 
== Introduction ==
  
You should know by the [[History|history]], that this program was initially written by an animation company, [[History|Voria Studios]]. Since the code of Synfig was released under [[License|GPL licence]] and turned into an open source project, there have been made some modifications to the code, which allows you to remove bugs and to add some new functionality.  
+
You should know from the {{l|History|history}}, that this program was initially written by an animation company, {{l|History|Voria Studios}}. Since the code of Synfig was released under {{l|License|GPL licence}} and turned into an open source project, there were made some modifications to the code, which allows you to remove bugs and to add new functionalities.  
  
The only documentation you can get, is the source-code itself and the automatically generated [http://synfig.org/api/ API docs] by [http://www.doxygen.org doxygen].
+
The only documentation you can get, is the source-code itself and the automatically generated [http://download.tuxfamily.org/synfig/api/index.html API docs] by [http://www.doxygen.org doxygen].
 
This page tries to collect all the knowledge acquired by the current developers and to create typical guides for common tasks which would allow you to add new features and make the program grow.  
 
This page tries to collect all the knowledge acquired by the current developers and to create typical guides for common tasks which would allow you to add new features and make the program grow.  
 +
 +
    Check Genete [https://drive.google.com/folderview?id=0Bx8g_H3f7qpZZDExNjU0NmEtZWI2Mi00M2UzLWI2OWQtNDUyYmRhOGRiN2Qx&usp=sharing "free synfig stuff"] a mine of things made during his coding period (and not wikiify some???)
  
 
Feel free to add here all the information you can get from the experience of reading and modifying the source code or simply add your request to get more details from coders more familiar with the source. Hopefully they will be able to tell you, how it works and where to dive in.
 
Feel free to add here all the information you can get from the experience of reading and modifying the source code or simply add your request to get more details from coders more familiar with the source. Hopefully they will be able to tell you, how it works and where to dive in.
 +
 +
== Easy tasks ==
 +
Contribute to a kind of big project like Synfig could look like a migraine at first appearance :
 +
 +
* Check out the bug tracker to [http://www.synfig.org/issues/thebuggenie/synfig/issues/find/saved_search/1/search/1 find any easy labeled task].
 +
* Give a review the [https://github.com/synfig/synfig/search?l=cpp&q=%2F%2FTODO&utf8=%E2%9C%93 TODOs things in the code], sometime it's related to easy tasks (like factorisation of hardcoded values).
  
 
== Common tasks ==
 
== Common tasks ==
  
Please add here links to wiki pages where it is explained how to do common tasks to contribut to code. Don't paste here things you want to know or need help. Use the other section for that.  
+
Please add here links to wiki pages where it is explained how to do common tasks to contribut to code. Don't paste here things you want to know or need help. Use the other section for that.
 +
 
 +
* {{l|Dev:Adding a Layer|Adding Layers to Synfig}}: this guide aids you to understand, how the layers work and how to add a new layer type.
 +
* {{l|Dev:Adding a Panel - Part I| Adding Panels to Synfig Studio}}: This guide explains, how to add a new panel and the objects on it.
 +
 
 +
== Translation mechanism ==
 +
Synfig and Synfig Studio use [https://en.wikipedia.org/wiki/Gettext Gettext] internationalization and localization (i18n) system.
 +
 
 +
Each files located into synfig-core/po/POTFILES.in and synfig-studio/po/POTFILES.in respectively for Synfig and Synfig Studio will take advantage of this mechanism.
 +
 
 +
Note: The resources are translated [https://www.transifex.com/morevnaproject/synfig/ online].
  
* [[Source:Adding a Layer|Adding Layers to Synfig]]: this guide aids you to understand, how the layers work and how to add a new layer type.
+
You can find more information into the {{l|Dev:Translation|Translation}} page
* [[Source:Adding a Panel-Part I| Adding Panels to Synfigstudio]]: This guide explains, how to add a new panel and the objects on it.
+
  
 
== Things you want to know about the code ==
 
== Things you want to know about the code ==
Line 21: Line 41:
  
 
* Q: Is there anywhere any kind of overview? Any sort of brief description of what each program does/is? Is synfigstudio the GUI for synfig? What's the ETL?
 
* Q: Is there anywhere any kind of overview? Any sort of brief description of what each program does/is? Is synfigstudio the GUI for synfig? What's the ETL?
: A: There is a [http://synfig.org/api/ Source code API documentation]. The only documentation comes from the comments of the code. Synfigstudio is the GUI to edit the synfig format files. Synfig is the command line to render the files. Both use the libsynfig library provided by the synfig-core code. So Synfigstudio is more than a simple wrapper for synfig. ETL is the "Extended Template Library". It doesn't produce any binary file, just provide templates to be used by the rest of code. [[User:Genete|Genete]] 10:10, 8 July 2008 (EDT)
+
: A: There is a [http://download.tuxfamily.org/synfig/api/index.html Source code API documentation]. The only documentation comes from the comments of the code. Synfigstudio is the GUI to edit the synfig format files. Synfig is the command line to render the files. Both use the libsynfig library provided by the synfig-core code. So Synfigstudio is more than a simple wrapper for synfig. ETL is the "Extended Template Library". It doesn't produce any binary file, just provide templates to be used by the rest of code. {{l|User:Genete|Genete}} 10:10, 8 July 2008 (EDT)
 
* Q: Is it a sane project to port Synfig ui to Qt?
 
* Q: Is it a sane project to port Synfig ui to Qt?
: A: I don't know. It depends on the knowledge of QT you have and if it has the same interface functionality.[[User:Genete|Genete]] 10:10, 8 July 2008 (EDT)
+
: A: I don't know. It depends on the knowledge of QT you have and if it has the same interface functionality.{{l|User:Genete|Genete}} 10:10, 8 July 2008 (EDT)
  
 
==Documenting the code ==
 
==Documenting the code ==
  
It would be a good thing, if all the code documentation and what is being discovered were confirmed and inserted directly in the source code itself. This would allow [http://www.doxygen.org doxygen] to generate the [http://synfig.org/api/ API docs] easily.  
+
It would be a good thing, if all the code documentation and what is being discovered were confirmed and inserted directly in the source code itself. This would allow [http://www.doxygen.org doxygen] to generate the [http://download.tuxfamily.org/synfig/api/index.html API docs] easily.  
  
 
Please follow these [http://www.stack.nl/~dimitri/doxygen/docblocks.html doxygen rules] to add documentation to the source code.
 
Please follow these [http://www.stack.nl/~dimitri/doxygen/docblocks.html doxygen rules] to add documentation to the source code.
Line 33: Line 53:
 
== Getting the source ==
 
== Getting the source ==
  
Check out the [[Source code|source code]] page.
+
Check out the {{l|Dev:Source code|source code}} page.

Latest revision as of 15:15, 16 February 2020

Introduction

You should know from the history, that this program was initially written by an animation company, Voria Studios. Since the code of Synfig was released under GPL licence and turned into an open source project, there were made some modifications to the code, which allows you to remove bugs and to add new functionalities.

The only documentation you can get, is the source-code itself and the automatically generated API docs by doxygen. This page tries to collect all the knowledge acquired by the current developers and to create typical guides for common tasks which would allow you to add new features and make the program grow.

    Check Genete "free synfig stuff" a mine of things made during his coding period (and not wikiify some???)

Feel free to add here all the information you can get from the experience of reading and modifying the source code or simply add your request to get more details from coders more familiar with the source. Hopefully they will be able to tell you, how it works and where to dive in.

Easy tasks

Contribute to a kind of big project like Synfig could look like a migraine at first appearance :

Common tasks

Please add here links to wiki pages where it is explained how to do common tasks to contribut to code. Don't paste here things you want to know or need help. Use the other section for that.

Translation mechanism

Synfig and Synfig Studio use Gettext internationalization and localization (i18n) system.

Each files located into synfig-core/po/POTFILES.in and synfig-studio/po/POTFILES.in respectively for Synfig and Synfig Studio will take advantage of this mechanism.

Note: The resources are translated online.

You can find more information into the Translation page

Things you want to know about the code

Please add here a brief description of the things you want to know about the code and how to accomplish some task. Someone else will surely know it, and can help you to start developing on synfig.

  • Q: Is there anywhere any kind of overview? Any sort of brief description of what each program does/is? Is synfigstudio the GUI for synfig? What's the ETL?
A: There is a Source code API documentation. The only documentation comes from the comments of the code. Synfigstudio is the GUI to edit the synfig format files. Synfig is the command line to render the files. Both use the libsynfig library provided by the synfig-core code. So Synfigstudio is more than a simple wrapper for synfig. ETL is the "Extended Template Library". It doesn't produce any binary file, just provide templates to be used by the rest of code. Genete 10:10, 8 July 2008 (EDT)
  • Q: Is it a sane project to port Synfig ui to Qt?
A: I don't know. It depends on the knowledge of QT you have and if it has the same interface functionality.Genete 10:10, 8 July 2008 (EDT)

Documenting the code

It would be a good thing, if all the code documentation and what is being discovered were confirmed and inserted directly in the source code itself. This would allow doxygen to generate the API docs easily.

Please follow these doxygen rules to add documentation to the source code.

Getting the source

Check out the source code page.