OASIS

To add to Pavel answer:

Disclaimer: I am the author of OASIS.

OASIS also has oasis2opam that can help to create OPAM package quickly and oasis2debian to create Debian packages. This is extremly useful if you want to create a 'release' target that automate most of the tasks to upload a package.

OASIS is also shipped with a script called oasis-dist.ml that creates automatically tarball for upload.

Look all this in https://github.com/ocaml.org.

Testing

I use OUnit to do all my tests. This is simple and pretty efficient if you are used to xUnit testing.

Source control/management

Disclaimer: I am the owner/maintainer of forge.ocamlcore.org (aka forge.o.o)

If you want to use git, I recommend to use github. This is really efficient for review.

If you use darcs or subversion, you can create an account on forge.o.o.

In both case having a public mailing list where you send all commit notification is a must have, so that everyone can see them and review them. You can use either Google groups or a mailing list on forge.o.o.

I recommend to have a nice web (github or forge.o.o) page with OCamldoc documentation build everytime you commit. If you have a huge code base this will help you to use the OCamldoc generated documentation right from the beginning (and fix it quickly).

I recommend to create tarballs when you reach a stable stage. Don't just rely on checking out the latest git/svn version. This tip has saved me hours of work in the past. As said by Martin, store all your tarballs in a central place (a git repository is a good idea for that).