Skip to content

How To Contribute

Chris Phillips edited this page Jul 21, 2017 · 6 revisions

If you are on this page, you are awesome! Thank you for wanting to contribute. I just have a few small request for contributors. Please read them and their justification below.

Code Style

For maintainability it's important that code is consistent. When adding code to Relaxation, please look at the code around it. Try to make your new code blend well with the style of the existing code.

Feature Branches

When you fork Relaxation and start working on a feature, please branch from "develop". The branch "master" is reserved for stable releases. When you click "download" on GitHub, you get a zip of master. So, "master" is special and should not be ahead of the current point release.

Why not just write and commit to "develop"? I'm glad you asked. "develop" is for finished features to accumulate in between releases. It should be stable. We are almost always running the current "develop" code where I work. Working on feature branches allows you to work on multiple features at once and submit each as distinct additions to the project. As a reviewer of pull requests, you don't want a moving target. It is frustrating when commits keep rolling in with changes unrelated to the submitted summary.

Unit Tests

Unit tests are important. I want people to trust that Relaxation is doing what it's expected to do. They should be confident that contributors, myself included, won't break it making updates.

The Relaxation tests are written to be run with the current release of MXUnit. "/Relaxation" will need to resolve to the top level folder of the working copy. This can either be accomplished with a mapping or by putting the working copy directly in your webroot.

CFML Engine Compatibility

Primary development of Relaxation has been on ColdFusion 10. But, it has been tested under Railo and ColdFusion 9. The main thing that will help Relaxation stay backwards compatible with the last couple of ColdFusion releases is using "=" instead of ":" in struct notation. ColdFusion 10 was the first to allow ":" for the separator between structure keys and values. I'd like Relaxation to work in the most recent releases of the most popular CFML servers.