diff --git a/README.md b/README.md index 16be771..90ae8a6 100644 --- a/README.md +++ b/README.md @@ -9,3 +9,65 @@ functions more comfortable in Typed Racket. This package is distributed under the [GNU GPLv3 licence](https://www.gnu.org/licenses/quick-guide-gplv3.html). + +# Contributing + +Contributions, comments, bug reports, etc. are very welcome! + +For [ethical +reasons](https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish), +I prefer not to host this package on +[GitHub](https://en.wikipedia.org/wiki/GitHub#Acquisition_by_Microsoft). +Luckily, Git allows creating and submitting patches by E-mail in very +easily. Here is a simple workflow that you can use to contribute to +this library. + +## Submit patches + +Start by checking out this repository: + +``` +git clone https://git.marvid.fr/scolobb/typed-compose.git +cd typed-compose +``` + +Start a new branch `my-contribution` for you contribution: + +``` +git checkout -b my-contribution +``` + +Hack hack hack, do a couple commits, maybe take a look at a list of +the commits your branch `my-contribution` contains: + +``` +git log --pretty=oneline master..my-contribution +``` + +Now create one patch file for every commit added to branch +`my-contribution`, which is new with respect to `master`: + +``` +git format-patch master +``` + +This should produce one patch file for commit, +e.g. `0001-Commit-1.patch`, `0002-Commit-2.patch`, etc. Send all of +these files to me to `scolobb` at `marvid.fr`, or to any other address +you think you can contact me at. I will give you feedback and we will +work together towards getting your changes in, which is a fancy way of +saying that I will probably take in your changes without too much +hassle if they follow some very basic style guidelines. Speaking of +which: + +## Style guidelines + +When submitting changes, try to make it as similar as possible in +style to the existing code, which approximately follows the style used +across the Racket code base. If you use Emacs with Racket Mode or +DrRacket, you should be fine with default settings. + +When adding new code, please consider updating the Scribble +documentation `manual.scrbl` accordingly. I believe that good +documentation is more important than good code, because with good docs +you can at least know how to fix the whole thing.