OpenCM: How You Can Help

OpenCM is only as good as we make it! The best way for you to help is to contribute. By way of a ``thank you,'' major contributors will get added to the people page.

License. OpenCM overall is currently distributed under GPL because we haven't replaced libdiff yet. Replacing libdiff is high on our enhancement priority list (and not just for licensing reasons). All patches to OpenCM should be supplied under BSD terms. We regret that patches more than a few lines cannot be incorporated without a signed copyright agreement, and we don't have one yet. We're working on that.

Advice Needed. The current test infrastructure sucks. We need a better test driver system. Suggestions would be appreciated, and should be emailed to the opencm-dev mailing list at opencm.org.

Mailing Lists. The mailing lists related to OpenCM can be found on the Mailman subscription page at www.opencm.org. Please do not send requests to opencm-notify; this should be used only for commit messages from our server. Discussion should, for the moment, occur on opencm-dev.

If you find a bug, please file a bug report via bugzilla. Discussion on opencm-dev is welcome, but it isn't the tool we use for issue tracking. Simply reporting a problem to opencm-dev will not get it fixed!

Things to Do

There are a number of significant items that need to be completed. Some of these are things that we probably need to do internally, but some could easily be contributed by others. Doing these could really help everyone a lot. By way of a ``thank you,'' major contributors will get added to the people page. The list follows. Information on getting the full distribution is below.

Replacement for libdiff

We (and others) really need a BSD-licensed replacement for libdiff -- specifically for merge3() and for a two-way diff() that generates unified diff format. Somebody actually send me code for an excellent start at this, but I think we got disconnected somewhere.. Ideally these would operate on the current Buffer object, and would output unified context diff (diff -u) format. Failing that, working on files is okay (we can serialize if needed).

Redo SXDelta

The current SXDelta implementation is based on a bad decision: doing forward diffs instead of backward diffs. Fixing this would reduce repository storage by O(30%), but we probably won't get around to it soon. This is actually a pretty neat project if you want to learn about delta generation. If you're interested, get in touch with shap.

Documentation contributions are always welcome.

The most important documentation is the manual.

There is also a now largely vestigial internals document in the base/doc/ subtree. Improvements to this would really be helpful. A really helpful piece would be to describe the rules for using the exception macro hack.

Obtaining the full OpenCM Tree

Lots of stuff in OpenCM is not included in the RPM/Tarball -- the goal was to avoid making people download anything they did not really need. In order to obtain the full project, including test infrastructure, you should use fetch it from our repository using (of course) OpenCM.

First, download a copy of the anonymous key pair: opencm-anon.key and opencm-anon.pem. Place these in your OpenCM keys directory ($HOME/.opencm/users). The anonymous key requires no pass phrase.

Next, check out the opencm project:

The ``-C'' is important -- without it the files will get checked out into your current directory. Note that the anonymous user has no write access to our repository!

Assuming this checkout proceeded successfully, you will have a complete copy of the OpenCM tree -- including this website. To build the code base, you may need to run autoconf in the opencm/base directory. You can then cd to opencm/base, type ./configure, and then make. To validate your build, cd to ../tests/opencm and type make test. It takes a while.

If you think you are likely to contribute a lot, take a moment to consider joining the team. At this point we are not opening the repository for modifications by outside parties, but we can at least get you using your own OpenCM account today. When we do get around to adding you we can simply activate your key for modifications.


Back to the overview.