Creating patches

Make a branch off master and write the code for the patch and commit it. Please write the commit message starting with CLJS-NNNN: TICKET TITLE, followed by an empty line, followed by a few sentences explaining the changes. Please squash multiple commits into a single commit. Then produce the patch with the following:

git format-patch master --stdout > CLJS-NNNN.patch

Testing patches

In order to test ClojureScript patches in your own project, apply the patch to a local clone of the ClojureScript repo. Run script/build, this will install a version of ClojureScript - note the version number. Change your projects :dependencies to use this version number and confirm the patch works for you.

Submitting patches

Attach CLJS-NNNN.patch to the associated JIRA ticket, providing additional commentary that may be useful for understanding the patch.

If submitting follow-on patches in order to address comments raised during review or defects found in a patch, name them CLJS-NNNN-2.patch, CLJS-NNNN-3.patch, and so on. Subsequent patches should be stand-alone (squashed and not dependent on earlier patches).

Edit the ticket’s Patch field to indicate either "Code" or "Code and Test". This makes it easier for others to find patches in need of review (appearing in the CLJS Screenable preset filter).

A note about patches for Windows files

Patches that modify files with Windows line endings may fail to apply. Running git am --keep-cr < /path/to/CLJS-NNNN.patch will generally apply the patch if it would otherwise apply cleanly (i.e. no merge conflicts).