Changes between Version 18 and Version 19 of Development/GettingStarted
- Timestamp:
- 08/14/11 15:46:42 (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Development/GettingStarted
v18 v19 6 6 == Required Tools == 7 7 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. 8 There 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. 9 11 10 12 === .Net Framework/Mono === … … 24 26 For 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. 25 27 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 havea plugin architecture (including SVN and Git support) and a GTK GUI editor.28 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, as well as a plugin architecture (including SVN and Git support) and a GTK GUI editor. 27 29 28 30 Other 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. 29 31 30 === SVNClient ===32 === Mercurial Client === 31 33 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 Subversionclients] page has more information.34 The 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. 33 35 34 36 == Getting the source code == 35 37 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 solutionto be able to compile and use WarFoundry.38 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 Mercurial to be able to compile and use WarFoundry. 37 39 38 40 Some 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. 39 41 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. 41 43 42 === !WarFoundry API===44 === !WarFoundry WinForms === 43 45 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 || 51 50 52 51 === !WarFoundry GTK# === 53 52 54 53 [#WarFoundryAPI WarFoundry API] projects, plus: 55 ||'''Project name'''||''' Subversionlocation'''||'''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 || 58 57 59 58 === !WarFoundry Qt# (Qyoto) === 60 59 61 60 [#WarFoundryAPI WarFoundry API] projects, plus: 62 ||'''Project name'''||''' Subversionlocation'''||'''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 || 64 63 65 === !WarFoundry WinForms===64 === !WarFoundry API === 66 65 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 || 71 73 72 74 == Contributing == 73 75 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. 76 Once 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 78 With 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 80 For more details on how to contribute, read the [../Contributing Contributing] instructions.