Setup of Development Environment for MacOS
Required software
Git
- I cannot remember how I installed git, probably with
fink install git
or git-core?
Mono 2.x
- You can install the MonoDevelop Preview for Mac by downloading from http://monodevelop.com/Download/Mac_Preview, and just install it.
- somehow the current Preview does not open all of the OpenPetra projects, but you need MonoDevelop for the mdtool that is used by our nant script to build OpenPetra. Building OpenPetra with nant works, creating a Postgresql database works, and starting the server and the client works. Most screens crash though, unfortunately.
NAnt
- MonoDevelop comes with a version of Nant.
SQLite or PostgreSQL or MySQL
- I did not get the sqlite to work, so prefer Postgresql on Mac. Again, this was installed by downloading from a website, see http://www.postgresql.org/download/macosx
Get the source code
The source code is managed with Git.
Please understand that we will provide write permissions only to the core members of the development team, just to keep the project on one track. We very much need your contributions though, and we will aim to quickly deal with submitted patches and code via the forum. This still has to be worked out how this works best to submit code that way.
You can get the source code in several ways:
- see the Git instructions at Sourceforge
- that page describes how you can download anonymously from Git
- you can also browse the Git repository online, and you can download a tar.gz snapshot of each version there
- for developers: more detailed instructions how to create the ssh key and where to upload it to Sourceforge: https://sourceforge.net/apps/trac/sourceforge/wiki/SSH%20keys
for anonymous access, you can use this URL to clone the repository with TortoiseGit:
git://openpetraorg.git.sourceforge.net/gitroot/openpetraorg/openpetraorg
for developer access (with write permissions), use this URL to clone the repository with TortoiseGit:
ssh://USERNAME@openpetraorg.git.sourceforge.net/gitroot/openpetraorg/openpetraorg
For development, I recommend you create a local branch, and switch to it. Then you pull updates from the server ("master") into your local branch, and push your updates up to the server in the master branch. Otherwise you get all sorts of problems with pushing and pulling, so don't commit to master at all. see also Notes about Git
Configuration of Development Environment
for anonymous access:
cd ~ git clone git://openpetraorg.git.sourceforge.net/gitroot/openpetraorg/openpetraorg cd openpetraorg cp OpenPetra.build-sample-mac.config OpenPetra.build.config
for developer access (with write permissions):
cd ~ eval `/usr/bin/ssh-agent` ssh-add ~/.ssh/YOURPRIVATEKEYFILE git clone ssh://USERNAME@openpetraorg.git.sourceforge.net/gitroot/openpetraorg/openpetraorg git config user.name "YOUR NAME" git config user.email "USERNAME@users.sourceforge.net" cd openpetraorg cp OpenPetra.build-sample-mac.config OpenPetra.build.config
Please check your OpenPetra.build.config file and make sure the paths are all adjusted to your system and the version numbers in the paths are correct.
NAnt script
There is a central NAnt script that is able to generate a lot of code and is able to do all automated tasks in the OpenPetra project.
Please see OpenPetra NAnt script for details
Problems we encountered
Problems during setup and installation on MacOS X Snow Leopard
- NAnt gives an error saying that mono isn't found. for NAnt to work, the Mono framework path must be exported to PKG_CONFIG_PATH:
export PKG_CONFIG_PATH=/Library/Frameworks/Mono.framework/Home/lib/pkgconfig:/opt/local/lib/
It should be added to the .profile file so it's set on login.
- After updating MonoDevelop and the Mono framework, it would just crash before it could start, so it turns out it needs to be run as root.
- When trying to compile OpenPetra with NAnt, the file 'csharp/ICT/PetraTools/_bin/Debug/Ict.Tools.NAntTasks.dll' is not found, and in fact the directory 'csharp/ICT/PetraTools/_bin' is not created, but it should have been created by the script itself.