Difference between revisions of "Dev:Source code"

From Synfig Studio :: Documentation
Jump to: navigation, search
(devel-release tags i ngit workflow)
(add proposed git repos, move git stuff to a new section)
Line 17: Line 17:
  
 
Commit notifications are sent to [http://cia.vc/stats/project/synfig CIA] and show up in the [[Communication|IRC channel]].
 
Commit notifications are sent to [http://cia.vc/stats/project/synfig CIA] and show up in the [[Communication|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:
 
We are trialling [http://git.or.cz/ git] and may switch to it:
  
Line 55: Line 67:
 
* Rebase & rework branches to keep history more sane, linear and atomic
 
* Rebase & rework branches to keep history more sane, linear and atomic
  
While you are browsing the code, you may wish to refer to these links:
+
Proposed set of git repositories:
  
* [[Source Outline|source code outline]]
+
* admin.git - gitosis admin settings - holds groups, repos and users
* [[Source Glossary|source code glossary]]
+
* code/* - direct conversions from SVN
* [http://synfig.org/api/ API documentation]
+
** code/ETL.git - ETL
* [[Source:ETL_make_check|ETL make check failures]]
+
** code/synfig.git - synfig
* [[Source:Layers|Mapping between layer types, classes and .cpp files]]
+
** code/synfigstudio.git - synfigstudio
* [[Source:class_ValueNode|ValueNode types]]
+
* packages/* - bits for various packaging systems
* [[Source:BlendMethods|Blend Method enumeration values]]
+
** packages/windows.git - Windows packaging (needs separating from the code repos)
 +
** packages/macos.git - MacOS packaging (needs separating from the code repos)
 +
** packages/jhbuild.git - JHBuild moduleset (needs writing)
 +
** packages/autopackage.git - Autopackage bits (needs writing)
 +
* website/* - various bits used to maintain the website
 +
** website/skin.git - skin for the website
 +
** website/content.git - content for the website (pending switch to ikiwiki)
 +
* scripts/* - various scripts needed
 +
** scripts/svn2git.git - the scripts used to convert the SVN repo to git

Revision as of 07:26, 18 April 2008

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:

From the command line, to check out synfig, you would type:

 svn co http://svn.voria.com/code/synfig-core/trunk/ synfig

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.

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:

GIT

We are trialling git and may switch to it:

 git clone git://synfig.org/git/ETL.git
 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:

 git clone http://synfig.org/git/ETL.git
 git clone http://synfig.org/git/synfig.git
 git clone http://synfig.org/git/synfigstudio.git

People with commit access should use these commands instead:

 git clone git@synfig.org:ETL.git
 git clone git@synfig.org:synfig.git
 git clone git@synfig.org:synfigstudio.git

You can also check out the web interface to these repositories.

Also, dooglus maintains a git-svn repository of synfig and has a gitweb interface for it.

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.
    • Change the stable-branch symbolic-ref branch to point to the 0.62 branch.
    • 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 stable-branch 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
  • packages/* - bits for various packaging systems
    • packages/windows.git - Windows packaging (needs separating from the code repos)
    • packages/macos.git - MacOS packaging (needs separating from the code repos)
    • packages/jhbuild.git - JHBuild moduleset (needs writing)
    • packages/autopackage.git - Autopackage bits (needs writing)
  • website/* - various bits used to maintain the website
    • website/skin.git - skin for the website
    • website/content.git - content for the website (pending switch to ikiwiki)
  • scripts/* - various scripts needed
    • scripts/svn2git.git - the scripts used to convert the SVN repo to git