= Internals = This page is a primer on the development process around CortUI and should provide you with your first steps if you want to contribute. If you're interested in studying how CortUI works, you should also have a look at [wiki:Internals]. == Code repository == CortUI is developed on an SVN repository at the following URL: [svn://svn.rtsquad.org/cortui/]. The repository is anonymously readable, so you can do a checkout without having an account. If you just want to browse the source, clicking [source:/ Browse Source] in the navigation bar of this Trac instance is probably the easiest way. In theory, you qualify for commit access by providing a series of accepted patch files as attachments to tickets. This isn't rigorously enforced however, if you have a good reason to need commit access, you will get it. Patches are nevertheless always welcome! == First steps == Here's a rough guideline of the steps you could take if you want to contribute to CortUI. 1. Choose a ticket you want to work on. [/newticket Create a new one] if you want to implement a new feature or pick one from the list of [report:11 Good First Bugs] if you want to help out by fixing existing issues. In any case, indicate that you're working on a ticket by 'accepting' it (select `accept` as the action at the bottom of the ticket page and click on `Submit changes`). 2. Install [http://tortoisesvn.net/ TortoiseSVN] (or any other SVN client of your preference), this will require you to reboot at the end. 3. After rebooting, TortoiseSVN will have integrated into the Windows Explorer (or your file manager of choice). Create an empty directory where you want to work on CortUI, right-click it and select `SVN Checkout`. It will ask for a URL, tell it [svn://svn.rtsquad.org/cortui/trunk]. 4. Click OK and you'll get a "working copy". This is an exact duplicate of the latest state we're working on. Now you can make your edits ''inside'' this working copy. There's no need to copy files in and out. No changes you make will go live until you tell it to and you can revert to the latest official version of a file at any time. 5. After making your changes, you will probably want to test them by building a new installer or Modulus package, see below for how to do that. 6. When you are confident that your changes work well, you can submit them. Right click your working copy folder and select `Create patch` from the TortoiseSVN submenu. Select the files you want to include in your submission. Please only include a single set of associated changes per patch file. The rule of thumb is "as small as possible, as large as necessary". You can double-click on files here to see what you have changed. Confirm that only parts relevant for your ticket have been changed. 7. Click on `OK` and give it a meaningful name. 8. Now attach the patch file to your ticket. Write what you changed, why, what it fixes and what is left to do into the comment area of the ticket. Reassign the ticket to a person responsible for including it, e.g. a HUDsmith or when in doubt, to Cort. Submit your comment. 9. Be proud of your accomplishment and your support for CortUI and feel free to motivate others to help out in the forum and on IRC. To get the latest changes others have made into your working copy, right-click it and select `SVN Update`. You should do that regularly, in particularly every time you start working and before you create a patch file, to see incompatible changes as quickly as possible. Watch the [/timeline timeline] to see what others are changing. == Building the installer == Building the installer is fairly easy: 1. Install the latest version of the [http://nsis.sourceforge.net/ Nullsoft Scriptable Installation System]. 2. Copy the FindProcDLL.dll from your CortUI working copy to the 'Plugins' subdirectory of your NSIS installation. 3. Right-click the CortUI.nsi file in your working copy and select "Compile NSIS Script". This should build a file named `CortUI--dev--