Table of contents
Get involved
Open source project is made of contributions. Anyone can get involved by submitting patches to the code, documentation or anything else. Reporting bugs and explaining with a good level of detail how to reproduce it is extremely important.
If you not familiar with patches, see Creating and sending a patch document.
Just like The Apache Software Foundation, we are also under the philosophy of Meritocracy:
The roles and responsibilities that people can assume in the project are based on merit. Everybody can help no matter what their role. Those who have been long term or valuable contributors to the project obtain the right to vote and commit directly to the source repository.
After a demonstration of commitment, good technical skills and more important good judgment, you may be invited to join the project as a committer. This happens after someone at the PMC proposes your name and a vote is started. After the majority of PMC member cast their votes and there are no vetoes, an invitation is sent.
There are no recipes to join the project. Just subscribe to the mailing list and participate with opinions, patches and reviews.
Where
Castle development discussion takes place on the devel mailing list. You do not need to subscribe to the list just to submit a patch or two, but if you want to be involved with Castle development on a regular basis, you should probably subscribe. It is high-traffic, but threading tends to be fairly disciplined, so you can ignore conversations you are not interested in.
For real-time chat, developers use the same IRC channel as everyone else: irc.freenode.net/##castleproject.
Documentation
Our documentation is versioned and constantly improved as new features are introduced. If you want to improve the documentation then the process is the same as to submit patches for the source code.
Download the whole code tree from our subversion repository to your local machine if you want to contribute with the documentation. The site folder must access the trunk folder to copy the samples.
The documents are written in XML and stay on the site folder in our repository.
The website folder is autogenerated, thus you should not change it. The xdocs contains the xml documents used for the website generation. You should change (or add) those files. Get the feeling of the xml structure by inspecting existing files.
Building the docs
Before submiting any patch, build the documentation locally and see if it looks OK. To build it you need Castle Anakia and NAnt. Castle Anakia is located on our source repository as well. Just open the project on VS.Net and compile it
Then open a command line on the site folder and run:
E:\dev\castle\site>nant NAnt 0.85 (Build 0.85.2344.0; rc4; 6/2/2006) Copyright (C) 2001-2006 Gerry Shaw http://nant.sourceforge.net Buildfile: file:///E:/dev/castle/site/default.build Target framework: Microsoft .NET Framework 2.0 Target(s) specified: run [loadtasks] Scanning assembly "Anakia" for extensions. copysamples: BUILD FAILED E:\dev\castle\site\default.build(13,4): Could not find file 'E:\dev\castle\trunk\samplesforwebsite\InitializingAndConfiguring.zip' to copy. Total time: 0.1 seconds.
Yes, this failed. The site builds the documentation and needs to copy the samples to the proper locations. But it could not find the samples. That is easy to fix:
E:\dev\castle\site>cd ..
E:\dev\castle>cd trunk
E:\dev\castle\trunk>nant zip-samples-for-website
NAnt 0.85 (Build 0.85.2344.0; rc4; 6/2/2006)
Copyright (C) 2001-2006 Gerry Shaw
http://nant.sourceforge.net
Buildfile: file:///E:/dev/castle/trunk/default.build
Target framework: Microsoft .NET Framework 2.0
Target(s) specified: zip-samples-for-website
zip-samples-for-website:
[mkdir] Creating directory 'E:\dev\castle\trunk\samplesforwebsite\'.
...
BUILD SUCCEEDED - 2 non-fatal error(s), 1 warning(s)
Total time: 12.8 seconds.
Now the zip samples were created. You can get back to the site folder and try again. The generation can take a while. So if you are, for instance, working on documents for MonoRail, we suggest that you change the build file to exclude the others folders to make the build faster.
To do that, open the site\default.build and locate the target run at the bottom.
Submit the patches to our issue tracker or the development mailing list when you are done. And thanks for the contribution!