Skip to content

Developing, merging, and deploying features

Jason McIntosh edited this page May 21, 2020 · 3 revisions

This guide is intended for people with "collaborator" access to the repository, who can push changes directly to iftechfoundation/ifcomp on GitHub. For others who want to make source contributions, please see the contributions guide (link TBA).

A word about this repostistory's branches

This repository has two permanent branches, and some number (possibly zero) of feature branches.

Permanent branches include master, which the production server at https://ifcomp.org has checked out, and develop, which the staging server at http://dev.ifcomp.org uses.

Acting as state for these two servers, respectively, is their only function. In other words, if and only if you want to deploy something to the staging server (so that QA folks can go have a look at it), merge it into develop. And things should get merged into master only when they're ready to get made public.

Every other branch is a feature branch that developers on this project have pushed up, usually as part of a pull request. Which: read on.

To develop a feature

  1. On your local development copy of the ifcomp project, check out a new branch, based on the current state of master. Name it something sensible to the feature you're working on, or the issue you're addressing.

  2. Do your work!

  3. When the work is ready for review:

    1. Push your feature-branch to GitHub

    2. Create a new pull request that compares your feature-branch to master (not develop)

  4. If necessary, the tech lead might also merge your feature-branch to develop. This will allow the changes to be visible on the staging server, and thus to the QA team.

  5. Work with the code reviewers and QA folks to make any changes they request. Whenever you're ready for another round of review, just push your feature branch again. GitHub will automatically update the pull request appropriately.

  6. When the work is accepted -- congratulations, and well done -- the tech lead will take care of merging the feature branch into master.

Clone this wiki locally