Changes between Version 18 and Version 19 of Development/GettingStarted


Ignore:
Timestamp:
08/14/11 15:46:42 (8 years ago)
Author:
ibboard
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Development/GettingStarted

    v18 v19  
    66== Required Tools ==
    77
    8 There are only really two main tools needed for developing WarFoundry, an SVN client and a development environment. You also need a suitable framework and, for development work, the unit testing libraries.
     8There are only really two main tools needed for developing WarFoundry, a Mercurial client and a development environment. You also need a suitable framework and, for development work, the unit testing libraries.
     9
     10''Note:'' Originally, we started with Subversion for version control, but as of August 2011 we've moved to Mercurial. While Mercurial may not be instantly familiar to everyone, it makes multi-developer experimentation and contribution easier and more flexible.
    911
    1012=== .Net Framework/Mono ===
     
    2426For System.Windows.Forms development (Windows-based applications), using Visual Studio 2010 is recommended. Microsoft make versions of [http://www.microsoft.com/express/Downloads/ Visual Studio 2010 Express] available for free. Although they're not as feature complete as the full version and don't (officially) support plugins, they seem more than adequate for the current WarFoundry work.
    2527
    26 For GTK# and other non-System.Windows.Forms development, using [http://monodevelop.com/ MonoDevelop] is recommended. MonoDevelop is constantly improving and has more features than Visual Studio 2010 Express, but it does have a plugin architecture (including SVN and Git support) and a GTK GUI editor.
     28For GTK# and other non-System.Windows.Forms development, using [http://monodevelop.com/ MonoDevelop] is recommended. MonoDevelop is constantly improving and has more features than Visual Studio 2010 Express, as well as a plugin architecture (including SVN and Git support) and a GTK GUI editor.
    2729
    2830Other development environments may also be suitable, depending on taste, (e.g. Eclipse with a Mono/.Net plugin, or SharpDevelop) but Visual Studio Express 2010 and MonoDevelop have been adequate and useful for all current development.
    2931
    30 === SVN Client ===
     32=== Mercurial Client ===
    3133
    32 The easiest way to work with SVN is when source control is integrated in to your development environment. Unfortunately, Subversion plugins for Visual Studio normally come with a price tag and aren't compatible with Visual Studio Express (which leaves you with an even bigger price tag on Visual Studio). If you don't know how to use Subversion in your chosen IDE or on your chosen desktop then the [./SubversionClients Subversion clients] page has more information.
     34The easiest way to work with Mercurial is when source control is integrated in to your development environment. Unfortunately, Mercurial plugins for Visual Studio normally come with a price tag and aren't compatible with Visual Studio Express (which leaves you with an even bigger price tag on Visual Studio). If you don't know how to use Mercurial in your chosen IDE or on your chosen desktop then the [./MercurialClients Mercurial clients] page has more information.
    3335
    3436== Getting the source code ==
    3537
    36 Exact details of how to get the source code will vary by client, but the following are the required projects to work with WarFoundry. You will need to check out all of the required projects for a given GUI from Subversion and add them to a solution to be able to compile and use WarFoundry.
     38Exact details of how to get the source code will vary by client, but the following are the required projects to work with WarFoundry. You will need to check out all of the required projects for a given GUI from Mercurial to be able to compile and use WarFoundry.
    3739
    3840Some projects also have companion "Test" projects. These can be identified by having the same project name, except that ".Tests" is appended. It is recommended that you also download the tests and run them regularly as you make changes to make sure that nothing is broken. Everything should also have unit tests added as/before it is written, although up until now this hasn't been the case.
    3941
    40 '''Note:''' Each of the following is a link to the 'trunk' directory, which is the current development version. If you want to check out a branch (a separate fork of development for a different feature) or a tag (a marker that shows a specific version) then you will need to replace 'trunk' with the appropriate path. There are currently no branches or tags.
     42'''Note:''' Mercurial will show you the "default" branch straight after a clone, but your local copy includes ''all'' of the history for the repository. To work on a different branch you can just switch branches within your existing copy.
    4143
    42 === !WarFoundry API ===
     44=== !WarFoundry WinForms ===
    4345
    44 ||'''Project name'''||'''Subversion location'''||'''Description'''||
    45 || IBBoard || svn://svn.ibboard.co.uk/ibboard/IBBoard/trunk || Core IBBoard utils ||
    46 || IBBoard.Tests || svn://svn.ibboard.co.uk/ibboard/IBBoard.Tests/trunk || Tests for core IBBoard utils (optional - only necessary if you modify the utils library) ||
    47 || IBBoard.NUnit || svn://svn.ibboard.co.uk/ibboard/IBBoard.NUnit/trunk || Extra NUnit methods (optional - currently only required if you get IBBoard.Tests)  ||
    48 || IBBoard.!WarFoundry.API || svn://svn.ibboard.co.uk/warfoundry/IBBoard.WarFoundry.API/trunk || Core API for !WarFoundry ||
    49 || IBBoard.!WarFoundry.API.Tests || svn://svn.ibboard.co.uk/warfoundry/IBBoard.WarFoundry.API.Tests/trunk || Tests for the core !WarFoundry API ||
    50 || SharpZipLib || svn://svn.ibboard.co.uk/warfoundry/SharpZipLib/trunk || Custom build of SharpZipLib because of bug #311 ||
     46[#WarFoundryAPI WarFoundry API] projects, plus:
     47||'''Project name'''||'''Mercurial location'''||'''Description'''||
     48|| IBBoard.Windows.Forms || http://dev.ibboard.co.uk/repos/IBBoard.Windows.Forms || Custom System.Windows.Forms controls ||
     49|| IBBoard.!WarFoundry.GUI.!WinForms || http://dev.ibboard.co.uk/repos/IBBoard.WarFoundry.GUI.WinForms || System.Windows.Forms interface for !WarFoundry ||
    5150
    5251=== !WarFoundry GTK# ===
    5352
    5453[#WarFoundryAPI WarFoundry API] projects, plus:
    55 ||'''Project name'''||'''Subversion location'''||'''Description'''||
    56 || IBBoard.GtkSharp || svn://svn.ibboard.co.uk/ibboard/IBBoard.GtkSharp/trunk || Custom GTK# controls and helper methods ||
    57 || IBBoard.!WarFoundry.GUI.GTK || svn://svn.ibboard.co.uk/warfoundry/IBBoard.WarFoundry.GUI.GTK/trunk || GTK# interface for !WarFoundry ||
     54||'''Project name'''||'''Mercurial location'''||'''Description'''||
     55|| IBBoard.GtkSharp || http://dev.ibboard.co.uk/repos/IBBoard.GtkSharp || Custom GTK# controls and helper methods ||
     56|| IBBoard.!WarFoundry.GUI.GTK || http://dev.ibboard.co.uk/repos/IBBoard.WarFoundry.GUI.GTK || GTK# interface for !WarFoundry ||
    5857
    5958=== !WarFoundry Qt# (Qyoto) ===
    6059
    6160[#WarFoundryAPI WarFoundry API] projects, plus:
    62 ||'''Project name'''||'''Subversion location'''||'''Description'''||
    63 || IBBoard.!WarFoundry.GUI.QtSharp || svn://svn.ibboard.co.uk/warfoundry/IBBoard.WarFoundry.GUI.QtSharp/trunk || Qt#/Qyoto interface for !WarFoundry ||
     61||'''Project name'''||'''Mercurial location'''||'''Description'''||
     62|| IBBoard.!WarFoundry.GUI.QtSharp || http://dev.ibboard.co.uk/repos/IBBoard.WarFoundry.GUI.QtSharp || Qt#/Qyoto interface for !WarFoundry ||
    6463
    65 === !WarFoundry WinForms ===
     64=== !WarFoundry API ===
    6665
    67 [#WarFoundryAPI WarFoundry API] projects, plus:
    68 ||'''Project name'''||'''Subversion location'''||'''Description'''||
    69 || IBBoard.Windows.Forms || svn://svn.ibboard.co.uk/ibboard/IBBoard.Windows.Forms/trunk || Custom System.Windows.Forms controls ||
    70 || IBBoard.!WarFoundry.GUI.!WinForms || svn://svn.ibboard.co.uk/warfoundry/IBBoard.WarFoundry.GUI.WinForms/trunk || System.Windows.Forms interface for !WarFoundry ||
     66||'''Project name'''||'''Mercurial location'''||'''Description'''||
     67|| IBBoard || http://dev.ibboard.co.uk/repos/IBBoard || Core IBBoard utils ||
     68|| IBBoard.Tests || http://dev.ibboard.co.uk/repos/IBBoard.Tests || Tests for core IBBoard utils (optional - only necessary if you modify the utils library) ||
     69|| IBBoard.NUnit || http://dev.ibboard.co.uk/repos/IBBoard.NUnit || Extra NUnit methods (optional - currently only required if you get IBBoard.Tests)  ||
     70|| IBBoard.!WarFoundry.API || http://dev.ibboard.co.uk/repos/IBBoard.WarFoundry.API || Core API for !WarFoundry ||
     71|| IBBoard.!WarFoundry.API.Tests || http://dev.ibboard.co.uk/repos/IBBoard.WarFoundry.API.Tests || Tests for the core !WarFoundry API ||
     72|| SharpZipLib || http://dev.ibboard.co.uk/repos/SharpZipLib || Custom build of SharpZipLib because of bug #311 ||
    7173
    7274== Contributing ==
    7375
    74 While the WarFoundry code is freely available through the Subversion repositories listed above, committing updates requires additional permissions and a user account. Details on how to join up to help out are in the [wiki:GetInvolved Get Involved] section.
     76Once you've got the code then you can build and run it. You can also make changes and make local commits, but they won't be visible to anyone else until you share them.
     77
     78With the move to Mercurial, we are now much more flexible about how developers can contribute to the project. You now do not need to request an account, but can instead fork and update your own copy through our [http://dev.ibboard.co.uk/repos/ Repository Manager] before asking for your changes to be included in the Master copy.
     79
     80For more details on how to contribute, read the [../Contributing Contributing] instructions.