I had the idea to write a small tutorial for thoose who want to join/help the Zeos-Dev-Team.

Here we go:

1. All development starts in our *testing* branch. Currently we're talking about \testing-7.1 (SVN). mdaems already wrote a little tutorial to acces our SVN. http://zeos.firmos.at/viewtopic.php?t=841. The SVN locations changes when development is going on and version numbers are increasing. All locations are availabe on SourceForge.Net: http://sourceforge.net/projects/zeoslib/ (SubVersion). Or in our portal topic news. The current testing-branch url is:

So checkout the SVN-testing branch first.2. IMHO the next step should be making a test case in our test suite. So you can check if applying your patch solves the issue. And when you can't fix it yourself the test can be a reminder for other developers that there's something that should be solved. To be honest, a clean testsuite run (without any tests failing) is what we all want, but that's not the purpose of our test suite at all! The tests are a mighty tool to keep control about behavior changes or missing implementation. So don't worry if a test fails or raises exception! But make sure your patch (if it is not a test only) doesn't change the current fails/exceptions. The only allowable exception on this test can be your new test (; !

The ZeosLib test-suites you can find in the \test folder you have after checkout the testing branch.3. Now you've to setup your database configurations for the tests. You need a valid setup file: "test.properties" which should be placed in the \database directory. An example i use:

[firebirdd-2.5];EgonHugeist: Take care this DatabaseFile was created with default characterset UTF8!firebirdd-2.5.protocol=firebirdd-2.5firebirdd-2.5.alias=firebird_zeoslibfirebirdd-2.5.host=localhostfirebirdd-2.5.port=;firebirdd-2.5.database=D:\Developer\DataBase\FireBird\ZeosTest\ZEOSLIBUTF8.FDBfirebirdd-2.5.database=D:\Developer\DataBase\FireBird\ZeosTest\ZEOSLIBNONE.FDBfirebirdd-2.5.user=sysdbafirebirdd-2.5.password=masterkeyfirebirdd-2.5.rebuild=Yesfirebirdd-2.5.delimiter.type=SetTermfirebirdd-2.5.delimiter=;firebirdd-2.5.create.scripts=create_interbase.sql,populate_any.sql,populate_interbase.sql,create_interbase_bugreport.sqlfirebirdd-2.5.drop.scripts=drop_interbase.sql,drop_interbase_bugreport.sqlfirebirdd-2.5.properties=firebirdd-2.5.charactersets=UTF-8;WIN1252

You can see, this can be a very complex setup but it is very simple. Just exchange your database settings and the tests run!

Why do i prefere this way?Well it is nice to get a valid app to check if something goes terrible wrong or somebody wants to point us to leaks we have. Which btw. is usually more than our users are willing to do! But having a new implemented test-case for our suites is allways a nice present, so we do not need to add one manually by our selves. So we can't forget your issue and you can help save our time!4. To be honest, we won't grant write access for immeadiatly for everybody who asks. First we want to see some good code. You can attach the changes in our Forum or you write a pm. What ever you prefere. Best practice in this case would be a attached *.patch/*.diff file which you can simply create with TortoiseSVN by right-clicking the zeoslib folder. A popup menu open, go to TortoiseSVN->Create a patch. Simple? yes it is, if you did it once (:5. If everything looks good, then a ZeosDevTeam member will grant you write acces to our SVN repository. To do this we need your SourceForge.Net username. Now you've to checkout again. This is a little bit "tricky" because you need a command line input now. I don't know why (and maybe it's an issue specific to my environment). Open your prefered directory and type :

Now TortoiseSVN downloads the current \testing-branch again but you've got access to commit your changes.6. Here we go. Welcome to the maintainers group! Now you can start coding and if you're ready, simply run the tests, compare the results and then right-click the directory again, choose "SVN Commit/Update" to apply your changes or get the latest changes.

I hope this small Tutorial helps a little bit Feel free to help! Everybody is welcome!