Difference between revisions of "Dev:Source code"

From Synfig Studio :: Documentation
Jump to: navigation, search
m (link to the sf.net SVN browser)
(Add sourceforge git access and reformat the page layout)
Line 1: Line 1:
 
[[Category:Code]] [[Category:Permalink]]
 
[[Category:Code]] [[Category:Permalink]]
  
Hey you! Do you want access to bleeding-edge Synfig? Well, I have good news. Anonymous access to the Synfig Subversion repository for Synfig is now enabled! Here are the URLs to the respective repositories:
+
Hey you! Do you want access to bleeding-edge Synfig? Well, I have good news. We provide two ways to get the code:
 +
*Using subversion (three repositories)
 +
*Using git (one repository)
  
 +
Once you grab the code, you will need to bootstrap the build environment and then [[Build instructions|build the code]].
 +
 +
Commit notifications are sent to [http://cia.vc/stats/project/synfig CIA] and show up in the [[Contact|IRC channel]].
 +
 +
While you are browsing the code, you may wish to refer to these links:
 +
 +
* [http://sourceforge.net/tracker/?atid=757416&group_id=144022&func=browse Bug tracker]
 +
* [http://patches.synfig.org/groups/synfig/ Patches review board]
 +
* [http://synfig.org/api/ API documentation]
 +
* [[Source Outline|source code outline]]
 +
* [[Source Glossary|source code glossary]]
 +
* [[Source:ETL_make_check|ETL make check failures]]
 +
* [[Source:Layers|Mapping between layer types, classes and .cpp files]]
 +
* [[Source:class_ValueNode|ValueNode types]]
 +
* [[Source:BlendMethods|Blend Method enumeration values]]
 +
 +
 +
== SVN repository at Sourceforge ==
 +
 +
Anonymous access:
 
* https://synfig.svn.sourceforge.net/svnroot/synfig/ETL/
 
* https://synfig.svn.sourceforge.net/svnroot/synfig/ETL/
 
* https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-core/
 
* https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-core/
 
* https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-studio/
 
* https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-studio/
  
Sourceforge provides a web interface to [http://synfig.svn.sourceforge.net/viewvc/synfig/ browse the Subversion repository].
+
Web interface:
 +
* http://synfig.svn.sourceforge.net/viewvc/synfig/
  
From the command line, to check out ETL, synfig-core and synfig-studio, you would type:
+
To checkout code from the command line:
  
 
   svn co https://synfig.svn.sourceforge.net/svnroot/synfig/ETL/trunk/ etl
 
   svn co https://synfig.svn.sourceforge.net/svnroot/synfig/ETL/trunk/ etl
Line 19: Line 42:
 
You can also download daily updated svn exports for [http://synfig.org/code/ETL-svn.tar.gz ETL], [http://synfig.org/code/synfig-svn.tar.gz synfig], [http://synfig.org/code/synfigstudio-svn.tar.gz synfigstudio].
 
You can also download daily updated svn exports for [http://synfig.org/code/ETL-svn.tar.gz ETL], [http://synfig.org/code/synfig-svn.tar.gz synfig], [http://synfig.org/code/synfigstudio-svn.tar.gz synfigstudio].
  
Once you grab the code, you will need to bootstrap the build environment and then [[Build instructions|build the code]].
 
 
Commit notifications are sent to [http://cia.vc/stats/project/synfig CIA] and show up in the [[Contact|IRC channel]].
 
 
While you are browsing the code, you may wish to refer to these links:
 
 
* [[Source Outline|source code outline]]
 
* [[Source Glossary|source code glossary]]
 
* [http://synfig.org/api/ API documentation]
 
* [[Source:ETL_make_check|ETL make check failures]]
 
* [[Source:Layers|Mapping between layer types, classes and .cpp files]]
 
* [[Source:class_ValueNode|ValueNode types]]
 
* [[Source:BlendMethods|Blend Method enumeration values]]
 
 
== GIT ==
 
  
We are trialling [http://git.or.cz/ git] and may switch to it:
+
== GIT repository at Sorceforge==
  
  git clone git://synfig.org/git/ETL.git
+
[[User:Genete|Genete]] is maintaining a single git repository at Sourceforge. It includes the changes done in SVN and also other code development his working on. The idea is completely migrate to git in the future.
  git clone git://synfig.org/git/synfig.git
+
  git clone git://synfig.org/git/synfigstudio.git
+
  
People behind restrictive firewalls may be able to use these instead:
+
Anonymous access:  
  
   git clone http://synfig.org/git/ETL.git
+
   git clone git://synfig.git.sourceforge.net/gitroot/synfig
  git clone http://synfig.org/git/synfig.git
+
  git clone http://synfig.org/git/synfigstudio.git
+
People with commit access should use this command instead:
  
People with commit access should use these commands instead:
+
  git clone ssh://USERNAME@synfig.git.sourceforge.net/gitroot/synfig
  
  git clone git@synfig.org:ETL.git
+
You can also check out the [http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig web interface] to that repository.
  git clone git@synfig.org:synfig.git
+
  git clone git@synfig.org:synfigstudio.git
+
  
You can also check out the [http://synfig.org/gitweb/ web interface] to these repositories.
+
Check out [http://sourceforge.net/apps/trac/sourceforge/wiki/Git Sourceforge Git wiki page] for further references.
  
Also, dooglus maintains a git-svn repository of synfig and has a [http://kibi.dyndns.org:8083/~dooglus/gitweb.pl?p=synfig;a=summary gitweb interface] for it.
+
==Proposed workflow and other repositories ==
  
 
Proposed git workflow:
 
Proposed git workflow:

Revision as of 00:25, 16 June 2009


Hey you! Do you want access to bleeding-edge Synfig? Well, I have good news. We provide two ways to get the code:

  • Using subversion (three repositories)
  • Using git (one repository)

Once you grab the code, you will need to bootstrap the build environment and then build the code.

Commit notifications are sent to CIA and show up in the IRC channel.

While you are browsing the code, you may wish to refer to these links:


SVN repository at Sourceforge

Anonymous access:

Web interface:

To checkout code from the command line:

 svn co https://synfig.svn.sourceforge.net/svnroot/synfig/ETL/trunk/ etl
 svn co https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-core/trunk/ synfig-core
 svn co https://synfig.svn.sourceforge.net/svnroot/synfig/synfig-studio/trunk/ synfig-studio

You can also download a daily updated svn checkout that you can update using svn up. This was created using a procedure by dooglus.

You can also download daily updated svn exports for ETL, synfig, synfigstudio.


GIT repository at Sorceforge

Genete is maintaining a single git repository at Sourceforge. It includes the changes done in SVN and also other code development his working on. The idea is completely migrate to git in the future.

Anonymous access:

 git clone git://synfig.git.sourceforge.net/gitroot/synfig

People with commit access should use this command instead:

 git clone ssh://USERNAME@synfig.git.sourceforge.net/gitroot/synfig

You can also check out the web interface to that repository.

Check out Sourceforge Git wiki page for further references.

Proposed workflow and other repositories

Proposed git workflow:

  • Do all work on the master branch
  • Latest stable releases should be tagged with stable-release.
  • Latest development releases should be tagged with devel-release.
  • All releases should be tagged with their version number (with no extra chars): 0.61.08.
  • For now, we don't need a stable release branch, when/if we do:
    • Branch the stable-release tag (or whatever is appropriate) to something like 0.62.
    • Cherry-pick commits from the master branch to the stable branch where possible.
    • Commit directly to the stable branch only when cherry-picks are not possible.
  • Work on new non-trivial features/fixes on public topic branches where possible
  • Obviously commit trivial fixes straight to the master or the stable branch.
  • Rebase & rework branches to keep history more sane, linear and atomic

Proposed set of git repositories:

  • admin.git - gitosis admin settings - holds groups, repos and users
  • code/* - direct conversions from SVN
    • code/ETL.git - ETL
    • code/synfig.git - synfig
    • code/synfigstudio.git - synfigstudio
  • pkg/* - bits for various packaging systems
    • pkg/windows.git - Windows packaging (needs separating from the code repos)
    • pkg/macos.git - MacOS packaging (needs separating from the code repos)
    • pkg/jhbuild.git - JHBuild moduleset (needs writing)
    • pkg/autopackage.git - Autopackage bits (needs writing)
  • web/* - various bits used to maintain the website
    • web/skin.git - skin for the website
    • web/content.git - content for the website (pending switch to ikiwiki)
  • misc/* - various stuff needed
    • misc/svn2git.git - the scripts used to convert the SVN repo to git