Skip to content

Development Workflow

wbierbow edited this page Dec 8, 2015 · 3 revisions

Workflow

Feature Development

  • Create and discuss issue
  • Assign issue to person or group
  • Fork repository or update forked repository
  • Create new branch on forked repository
  • Setup development environment
  • Write unit tests
  • Implement feature / enhancement / bug-fix
  • Verify correctness with tests
  • Merge develop branch into new branch, resolve conflicts
  • Update change-log
  • Create pull request, cite motivating issue
  • Conduct code review with peer-reviewers
  • Pull request approved or declined

Feature Integration

  • Merge develop branch into branch with changes, resolve conflicts
  • Verify correctness with tests
  • Merge new branch into develop branch within original repository
  • Close branch with changes
  • Close related, outstanding issues

Release (see here for a detailed release checklist for InVEST)

  • Setup development environment
  • Run all tests
  • Bump semantic version
  • Update change-log
  • Create repo tag, branch for version
  • Create python distribution (wheel) (wheel vs egg)
    • Create and push source distribution
    • Create and push binary distributions
  • Create platform distributions
    • Create binary
    • Run binary tests (acceptance tests?)
    • Create and push installation package to distribution server (GitHub)
    • Update and push package manager files to servers