= Fusion Developers Corner = [[PageOutline]] This is the spot for a lot of developer-related information. == Committers == Committers are people with valid [http://www.osgeo.org/osgeo_userid OSGeo User IDs] that have permission to commit changes to the SVN repository. Any existing committer can visit [https://www.osgeo.org/cgi-bin/auth/ldap_group.py?group=fusion this page] to add or remove committers. You will need the [http://www.osgeo.org/cgi-bin/ldap_web_search.py OSGeo User ID] to add users. The reference for this is [http://wiki.osgeo.org/wiki/Subversion#Add.2FRemove_Committer here]. A list of Fusion Committers is available [wiki:Committers here]. There are also some [wiki:CommitterGuidelines Committer Guidelines] that every committer agrees to adhere to before committing code to Fusion. == Patches == Patches are text files that contain the difference between a locally checked out version of fusion and the version in the SVN repository. See CreatingPatches for instructions on how to create a patch and ApplyingPatches for applying a patch to your local working version. == SVN == [http://subversion.tigris.org/ Subversion (SVN)] is a tool for helping developers manage a code base. The Fusion code base is stored in an SVN repository hosted at OSGeo. You can view the source in your web browser [http://svn.osgeo.org/fusion directly] or use the built in [http://trac.osgeo.org/fusion/browser trac browser] for a more enjoyable experience. The Fusion SVN repository is [wiki:SVNOrganization organized into several main folders]. If you are working with a checked-out copy of Fusion from SVN, you must copy and rename the file config_dist.json to config.json and configure that file for your system. There are different ways of using SVN to work with a repository including a command line {{{svn}}} tool and several standalone and integrated graphical tools. We will typically describe the command-line use of SVN and it is up to you to find the equivalent functionality in your fancy graphical tool. See the following resources for more information on working with SVN: * [wiki:SVNCheckOut Get a working copy of the Fusion code] * [wiki:SVNUpdate Update a working copy of the Fusion code] * [wiki:SVNCommit Submit changes to the Fusion repository] * [wiki:CreatingPatches Using SVN to create patches] * [wiki:LinkSVNToTrac Linking SVN to TRAC tickets] == Coding Standards == Fusion code is written to certain [wiki:CodingStandards coding standards] based on a combination of community best practice, readability and what feels comfortable. If you are writing code to contribute to Fusion, please make sure you read the [wiki:CodingStandards coding standards] page before submitting your code. == Documentation == Fusion user documentation is maintained primarily in in the [wiki:Documentation] section of this wiki. The API documentation is maintained in the Fusion code using [http://www.naturaldocs.org/ NaturalDocs]. See the [wiki:DocumentationStandards documentation standards page] for details on documenting your code. == The Build Process == The Fusion build process is used to create release packages. The Fusion build process uses: * the [http://ant.apache.org/ ANT] build system to create redistributable packages, * the [http://developer.yahoo.com/yui/compressor/ YUI compressor] to create compressed versions of the javascript files, and * the [http://www.naturaldocs.org/ NaturalDocs] package for automating the generation of API documentation See the [wiki:ANTBuildSystem ANT Build System] page for details on running ANT to create release packages.