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!
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.
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).
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.
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.
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:
export OPENCM_REPOSITORY=opencm://opencm.org
cm -u opencm-anon -C opencm checkout PUBLIC/OpenCM/DEV/opencm
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.