
Git / versioning workflow
and suggested RSE work
on the TTI project 
Ann Gledson, Research Software Engineer
The University of Manchester


Overview

- Gitflow workflow
 - Versioning / release process
 - Current workflow
 - Proposed RSE work
 
Gitflow Workflow
Gitflow branch types
- Master branch is public release code – each version on master is tagged with a semantic version number (https://semver.org/). Code in master works.
 - Release branch (if present) is temporary. Preparation for version release.  (Or use develop)
 - Commits on develop are stable and should work but some unanticipated unexpected behaviour may be present.
 - Feature branches are temporary*. Commits on these may be broken/unstable.
 
Gitflow release process
- Tests run on develop branch – before making a release, make sure that all tests are passing (can be run as a CI job).
 - (optional) Create an issue that describes what changes have been made since last release version. Make sure everyone agrees that behaviour is as expected. Link to passing tests.
 - Merge develop into master and tag with the version number.
 

Current
Workflow
- Works well if:
	
- Contributors are working in the same context, same goals
 - Communicate frequently
 - Or each individual is working on their own branch/version
 
 



- Falls down if:
	
- Code shared with external users
 - Change in context / purpose
 
 - Package users expect a single, main branch
	
- Extensibility logic is in the code, not branches
 - Versions: whole code, working snapshots
 
 








2. Develop parallel
version of repository
1. Keep current
workflow
- Help with:
	
- Packaging
 - Testing
 - Versioning
 
 
Upcoming RSE Work
TTI-git-workflow-RSE-work
By Ann Gledson
TTI-git-workflow-RSE-work
- 656
 
