Add a CONTRIBUTING.md File to the Project to Help with Collaboration
Channel: Stateless Code
Date: 2023-01-21

After receiving a spontaneous, unsolicited pull request in a previous video, we added an item to the backlog to create a CONTRIBUTING.md file for the project to invite and set expectations for collaboration on the project.

There are many ways in which a person can contribute to a project. In our case, a table top role-player could have no technical aspirations but have a great idea or feedback for features or usability of the site.

Likewise, people who code or want to code could try their hand at knocking off a backlog item from our project.

Or somebody who is gifted at providing or revising documentation could correct a typo, create a wiki page, or revise language to make it clearer and more concise.

In this video we create a first iteration on those standards. We invite contribution and collaboration and try to set the expectations so that aspiring collaborators know what they are getting into.

For example, our project uses CC0 (public domain dedication) and the UNLICENSE. We don't want somebody to go through the trouble of creating a fully fleshed out contribution only to find out that they are not willing to release the contribution under terms that align with the project.

We also take a first pass at providing some coding standards. We try to strike the balance between providing enough detail to be meaningful and not going too far into the weeds.

In order to compose the contributing file, we use GitHub's markdown editor in a draft comment on the issue. Since the file will live in GitHub, we want to make sure it renders correctly there.

Instead of adopting a Code of Conduct, we add BURN THE CONTRIBUTOR COVENANT WITH FIRE! to our repo. We have the related video linked in the description if you want to learn more.

This video covers:
00:00:12 Introduction
00:00:55 Background of reason for providing the contributor guidelines now
00:01:43 Overview of contribution philosophy for the project
00:03:51 Take a look at the issue and BURN THE CONTRIBUTOR COVENANT WITH FIRE
00:05:48 Use the GitHub markdown editor to write the CONTRIBUTING.md file 
00:07:46 Summary of the finished version of the contributor guidelines
00:12:56 Check out a new branch and copy the source from the GitHub markdown editor into a file in Visual Studio Code
00:15:42 Copy BURN_THE_CONTRIBUTOR_COVENANT_WITH_FIRE.md from the other repo; then add, and commit the changes

#ruby #rails7 #rails #rubyonrails #rubygems #codecast #screencast #github #opensource #minitest #TDD #agile #NerdDice #DnD #roleplaying #softwaredevelopment #learntocode #tailwind #postgresql #rubocop #devise #turbo #controllers #views #selenium #capybara #systemtest #contributing #collaboration #markdown

See other related StatelessCode videos:
- Review a Pull Request from Our Devise Tailwind Video: Rails Helpers or Tailwind Directives? https://youtu.be/NY6J4Hjjftg
- Burn the Contributor Covenant with Fire! https://youtu.be/D9h572uwf8c

Resources that we relied upon for this solution:
- How to Write a Git Commit Message by CBEAMS https://cbea.ms/git-commit/
- Burn the Contributor Covenant with Fire Repository on GitHub https://github.com/msducheminjr/burn_the_contributor_covenant_with_fire

This video is CC0 - No rights reserved. (YouTube doesn't allow this option when publishing.) All code is released under the UNLICENSE.  Stateless Code denies the concept of "intellectual property". Copying is not stealing.