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
- 481