Using the Admin Tool ==================== The administration tool is not the most polished piece of software, but these are the instructions on how to use it: For you to start using the Administration tool, you must be granted permissions to become an administrator on the Monodoc system site, you must contact Miguel (miguel@novell.com) to gain Monodoc permissions. Configuring the Tool ==================== The Admin tool works by pulling contributions that have been submitted to the web site and allowing you to review the change and apply the change if the change is correct. The tool works by patching local copies of the documentation, and those changes must then be committed to the repository before they can be distributed to people. This means that you need a Mono Subversion account to be able to check in the documentation and to get fresh copies of the documentation. The tool needs to be configure so it knows how to map contributions in the documentation to your local check out, this is done by creating the file ~/.config/monodoc/providers.xml The file contents is for example: Here as you can see the configuration file is made to point to the various directories that I have checkout from CVS. Policies ======== People contribute many kinds of changes, and we do not necessarily want all of those changes, changes that are typically OK: * Completing missing documentation. * Providing illustrative examples. * Copy/pasting documentation from the ECMA specification. The ECMA specification has been updated and the license allows us to incorporate those changes. We have sadly not automated this process and hence the documentation that we have reflects the first ECMA release, not the latest one. * Pointing out alternative APIs that might be better suited for a particular task, limitations in an API. Changes that are not OK: * Long explanations in the summary line that should be instead in the Remarks section. * Sample code in languages other than C#. People have been picking samples in Boo, Visual Basic, Jscript and IronPython, but considering that we do even have complete C# coverage, it is better to keep all samples in C#. * Documentation that has been copy/pasted from Microsoft documentation. This means that for every change that affects the Microsoft stack documentation an editor must verify that the text for the equivalent class is not the same. This can be a very time consuming operation, and it is best to not approve a change if you have not explicitly verified that this is not a copy. * Opinions, these should be kept out of the documentation, this is a technical document and we should not be passing value judgments on it. Using the Tool ============== Once you have configured the tool, run the `make c' command in this directory. This will bring up the administration tool. Click on "Check Server Updates to get updates from the server". Many of the early applications are pending review or have some problems but we have not cleared them out yet, so its best to start at the higher numbered contributions which are the freshest. Click on a contribution, it will show you the actual change. The rendering is not perfect, if you want to get further information click [Diff], that will provide a rendering before and after that you can more easily examine. When you like a change, click on [Apply], and commit the code properly giving credit on the commit message to the person that made the contribution (you must do this from a separate window where you run svn commit). [Yes, this could be improved] If the contribution is large, also add the contribution to the AUTHORS for that particular bit of documentation. Once a contribution has been applied and there is nothing left to use (either because it has been applied, or the contribution has been deemed as invalid) click the [Flag as Done] button that will remove the contribution from the list Samples in Other Languages ========================== The reality is that we probably need a better system to handle examples, keep those examples off-line so that people can contribute alternative implementations, but at this point we do not have a mechanism to do this.