= Source Code = [[BR]] {{{#!div class="box" == [[Image(http://xpra.org/icons/source.png)]] Source Releases == You can find archives of every release here: [[BR]] [https://www.xpra.org/src/] [[BR]] New major versions are generally released on a bimonthly cycle (more or less - when it is ready), followed by minor updates as needed. [[BR]] Building from source is documented [/wiki/Building here] }}} {{{#!div class="box" == [[Image(http://xpra.org/icons/repository.png)]] Subversion Repository == You can access the subversion repository at this URL: [[BR]] [http://xpra.org/svn/Xpra/] [[BR]] For simply browsing the source, the [/browser trac source browser] is more convenient. }}} {{{#!div class="box" == [[Image(http://xpra.org/icons/statistics.png)]] Statistics == Each revision usually brings a number of structural changes that can easily be captured with simple statistics: ||= Tag =||= Modules =||||||= Python Code =||||||= Cython Code =||||||= C Code =|| ||= =||= =||= Files =||= Lines =||= Unique =||= Files =||= Lines =||= Unique =||= Files =||= Lines =||= Unique =|| ||[http://xpra.org/trac/browser/xpra/tags/v0.0.7.x v0.0.7.x]||8||63||13536|| 9990||2||2147||1679||0||0||0|| ||[http://xpra.org/trac/browser/xpra/tags/v0.1.x v0.1.x]||8||68||13640||9974||2||2134||1670||0||0||0|| ||[http://xpra.org/trac/browser/xpra/tags/v0.2.x v0.2.x]||10||73||14602||10581||2||2386||1770||3||472||281|| ||[http://xpra.org/trac/browser/xpra/tags/v0.3.x v0.3.x]||10||74||15987||11684||2||2387||1771||2||483||288|| ||[http://xpra.org/trac/browser/xpra/tags/v0.4.x v0.4.x]||10||58||15052||11028||2||2513||1831||2||506||286|| ||[http://xpra.org/trac/browser/xpra/tags/v0.5.x v0.5.x]||10||64||15811||11642||6||3111||2203||2||711||427|| ||[http://xpra.org/trac/browser/xpra/tags/v0.6.x v0.6.x]||12||66||16279||11943||6||3086||2193||2||742||427|| ||[http://xpra.org/trac/browser/xpra/tags/v0.7.x v0.7.x]||13||72||18687||13577||6||3239||2342||2||752||431|| ||[http://xpra.org/trac/browser/xpra/tags/v0.8.x v0.8.x]||17||96||23168||16713||8||3740||2701||2||925||555|| ||[http://xpra.org/trac/browser/xpra/tags/v0.9.x v0.9.x]||17||109||26309||18773||8||3704||2707||2||915||566|| ||[http://xpra.org/trac/browser/xpra/tags/v0.10.x v0.10.x]||34||202||32640||22428||22||6551||4015||4||676||412|| ||[http://xpra.org/trac/browser/xpra/tags/v0.11.x v0.11.x]||40||231||40125||27247||25||9919||6350||4||97||55|| {{{#!comment Command lines used: * Modules: for x in `ls -d v*`; do echo $x; find $x/src/xpra $x/src/wimpiggy -type d -exec ls {}/__init__.py \; | wc -l; done * Python Files: for x in `ls -d v*`; do echo $x; find $x/src/xpra $x/src/wimpiggy -type f -name "*py" -print | wc -l; done * Python Lines: for x in `ls -d v*`; do echo $x; find $x/src/xpra $x/src/wimpiggy -type f -name "*.py" -exec cat {} \; | wc -l; done * Python Unique Lines: for x in `ls -d v*`; do echo $x; find $x/src/xpra $x/src/wimpiggy -type f -name "*.py" -exec cat {} \; | sort -u | wc -l; done * Cython files: do the sum of: for x in `ls -d v*`; do echo $x; find $x/src/xpra $x/src/wimpiggy -type f -name "*.pyx" | wc -l; done for x in `ls -d v*`; do echo $x; find $x/src/xpra $x/src/wimpiggy -type f -name "*.pxd" | wc -l; done * Cython lines: do the sum of: for x in `ls -d v*`; do echo $x; find $x/src/xpra $x/src/wimpiggy -type f -name "*.pyx" -exec cat {} \; | wc -l; done for x in `ls -d v*`; do echo $x; find $x/src/xpra $x/src/wimpiggy -type f -name "*.pxd" -exec cat {} \; | wc -l; done etc.. }}} }}}