Skip to content
This repository has been archived by the owner on May 13, 2022. It is now read-only.

Latest commit

 

History

History
94 lines (63 loc) · 3.72 KB

CONTRIBUTING.md

File metadata and controls

94 lines (63 loc) · 3.72 KB

How to contribute

Updates to the ClojureBridge curriculum are welcome and encouraged. We would not have anything without the input from the volunteers who put on workshops.

Also feel free to make forks of the curriculum and not contribute back. Make different curricula, too. These contribution guidelines are simply meant to provide guidance for the management of the main ClojureBridge curriculum.

Getting Started

Keeping Forked Repository Up-to-date

  • Setup your forked repository to keep up-to-date with the original (upstream) repository.
  • Fetch latest upstream and merge it to your repository
# Only once, at the very beginning, add upstream
git remote add upstream https://github.com/ClojureBridge/curriculum.git
git remote -v                      # origin and upstream should show up

# Fetch upstream every time before making changes
git fetch upstream                 # fetches branches and commits from upstream
git fetch rebase upstream/master
git merge upstream/master          # if you've done some work on master
git checkout --track upstream/gh-pages  # your gh-pages branch tracks upstream
git pull --rebase                  # pull and merge commits

Making Changes

  • If you are about to make changes on curriculum markdown files, read EDITING-CURRICULUM.md as well.

  • Create your topic branch, make changes, and commit

git checkout gh-pages              # your topic branch base should be gh-pages
git checkout -b your-topic-branch

# make some changes, hack, hack, hack,,,

git add -p                         # add your changes
git commit -m"commit message"      # commit changes with a message
  • (Probably need some stuff in here about keeping slides in sync with narrative, etc)
  • (Add more git guidance?)

Submitting Changes

  • Push your committed changes to your local fork of the repository
git push origin your-topic-branch  # origin is your forked repository
  • Create a pull request

    1. Go to your forked repository on github.com

    2. Click "Compare & pull request" button

    click compare & pull request button

    1. [Another button] Or, change branch to your topic branch and click a button on the left

    another button to make pull request

    1. Change base to gh-pages

    change base

    1. Write title and comment, then click "Create pull request" button

    create pull request

  • The ClojureBridge curriculum team will review and discuss the pull request in comments on the PR.

  • Two curriculum team members must give a thumbs up, then the PR will be accepted.

Curriculum Team

  • Wait, why does the curriculum team get to say which PRs get accepted?? I'm glad you asked! If you contribute more than two patches, you, too, will become part of the curriculum team.
  • Curriculum team members are given commit rights to the curriculum.
  • Commit rights are meant for approving PRs, not for making direct commits.
  • There is also a ClojureBridge curriculum group for discussing curriculum direction.

Workshop/Chapter curriculum forks

  • Workshops or chapters that are using the main ClojureBridge curriculum should fork the curriculum in their chapter's github (a la https://github.com/clojurebridge-sf/curriculum)
  • Give teachers commit rights to the chapter's fork of the curriculum
  • The submit pull requests to the main curriculum, if you would like to contribute the changes back.