The preferred method of getting the source code is to use darcs because then you can submit your own changes to the other developers, contributing to the projct. Download darcs from pre-compiled binaries page.
Then open a command prompt and do the following:
darcs get http://webapps.datafed.net/nest/OWS C:\OWSor from another source repository:
darcs get http://htap.icg.fz-juelich.de/darcs/OWS C:\OWSAfter that, you can get updates by pulling them from any repository:
darcs pull http://webapps.datafed.net/nest/OWSThat's all you need to know about darcs to read the code.
This is a simpler first step, but not recommended. You can download the current zipped package but beware, that submitting your changes will be much harder and you cannot avoid installing darcs in that case.
Darcs is a DVCS, Distributed Version Control System. It's main characteristic is is symmetry in all dimensions:
First install the system according to the instructions.
Build the test data. Go to OWS/web/static/testprovider and run command python create_all.py which will create four netcdf files. Then go to OWS/web/static/CIRA and run python VIEWS_metadata.py which downloads some metadata from CIRA/VIEWS server. This will take a long time, be prepared to wait.
After you're done, go to OWS/web and run command python owsadmin.py -ao which creates the metadata.dat files to all the providers that serve cubes.
Now change to OWS/test and run python -t -E unit.py to run the unit tests.
Run the integration tests. On windows, run integ.bat. It starts python ows.py 8601 in the OWS/web directory. In unix run the commands from that bat file. Under windows you can run all the tests by running acc.bat.
Notice, that you need to terminate the web server with ctrl-C.
When making changes, run the unit tests frequently. You may want to create your tests OWS/test/spike.py and then move them to a proper unit test module when you're done.
When you find a defect, it does not matter who's mistake it is. The best way to deal with it is to write a unit test and see that it fails. If it's not your own defect and it's not trivial, submit the patch to the corresponding party.
If you are going to do something that's visible for the end user, it is highly recommended to discuss about the suggested change, it's impacts and it's alternatives in the Developer mailing list.
First make sure, that all the unit tests work. Unit testing is a tremendously inexpesive way to avoid expensive mistakes, and we're commited to use them. We recommend Test Driven Development, but even if you don't do the test-code-refactor cycle, submitting code without unit tests is not acceptable.
For actual use of darcs, start from Darcs Getting Started.
Record your patch and then there are two ways to submit your changes.
If you have access to a server computer, you can create a repository like http//webapps.datafed.net/nest/OWS, the folders nest/OWS are just plain file folders under the wwwroot. In this case, the server is IIS, you have to add the mime type to be served. You need to set the mime type for extensionless files. In IIS, select the "nest" folder and right click properties:
Click on MIME Types and add the extension "." to have MIME type "text/plain; charset=UTF-8" and you're public.
In linux, modify your apache settings according to manual.
Now you can send us your repository URL like http//mydomain/repositories/OWS and anybody can pull your changes.
You can record your patches into a plain text file. First create the context file, it tells darcs the state of the repository publishing.
darcs changes --context > MyRepo.dctxThe MyRepo.dctx contains now patches you have. Anything in this file is considered public, and will not be sent. If you recorded your changes before running the previous command, then edit the file, and remove patches you want to send.
You can now send any new patches by:
darcs send -i --context=MyRepo.dctx -o MyRepo.dpatchDarcs will ask if you want to send a patch, and it creates a new file MyRepo.dpatch, which you can send by email. After this, re-create the context file.
Use an editor, that preserves the Unix newline convention, darcs does not like windows crlf style. In windows, pythonwin is fine.
Current recommendation is ActivePython 2.6.6. Other versions may work, but those are not being tested.
The WebPy framework is a minimalistic system that allows you to create web applications.
The XML library is written in C and therefore is a lot faster than its python counterparts.
The array library NumPy has been a very successful addition to python, making array processing efficient and easy.
The official NetCDF library provides C access for NetCDF.
The Python NetCDF IO gives you NumPy like access to NetCDF files. Due to lack of Windows support, a minimalistic clone '''minio''' was written.