Skip to content

2. Developer Guide

Tyler Hughes edited this page Dec 16, 2021 · 4 revisions

This page describes what you need to know for developing this package.

Version Control

Git Workflow

We vaguely follow the git-flow workflow. The link provided explains it very well, but to summarize: the develop branch is the main branch that all new features get added to. The main branch holds the code we want most users to be using. When we wish to release a new version, we simply merge the state of develop into main, propagating all of the changes at once. We will describe this process in more detail below.

Contributing new features

When developing new features, we ask that you create a branch off of develop and do your work there. When the feature is ready to merge in, we prefer git rebase to git merge. This creates a cleaner, linear history. You can read about why we do it and what a rebase is at this link.

Commands

The following steps show how to develop a new feature.

git checkout develop
git checkout -b feature
  • develop your feature
  • commit changes, repeat process until satisfied
git rebase -i develop
  • squash, edit, commits
  • submit PR on github.

Note: the following are for repository admins only, if you've submitted a PR, one of us will review and either ask for changes or merge the code in.

  • when ready, rebase and merge feature into develop
git checkout develop
git pull -or- git reset --hard origin/develop

And the following steps show how to perform a release.

git checkout main
git merge develop
git tag x.x.x
git push origin x.x.x

Finally

If you have any questions at all and want to do something, but are not sure if it's correct, create an issue or reach out to @tylerflex or @momchilflex.

Clone this wiki locally