Table of Contents

Useful Git Branches

The VuFind® project uses Git to manage development. This page describes our branching strategies.

Key Branches and Tags

Mainline VuFind® development takes place in the “dev” branch. If you want “bleeding edge” code slated for the next planned release, this is the branch you should use.

If work begins on a major release while a minor release is still being worked on in “dev,” a “dev-x.y” branch (e.g. “dev-8.0”) may be created to allow future development to begin without interfering with nearer-future work.

Whenever a major or minor release is issued, a maintenance branch is created so that bug fixes can be applied as needed. These maintenance branches are named “release-x.y” – for example, “release-6.1” or “release-7.0”. Note that patch releases do not get separate release branches, because we do not apply bug fixes against specific patch releases; we instead simply continue the “minor” release line. Every release receives a tag starting with “v” and the version number (e.g. “v6.1.2” or “v7.0”).

Summary:

Other Branches

Some features are not available in the core VuFind® distribution, either because they have been deprecated, because they have not been released yet, or because the VuFind® team has not yet committed to maintaining them in the long term. These features are maintained in separate branches in the VuFind® GitHub repository and may be merged in manually if they meet your local needs.

Feature Branches

Features that may be useful but which the core VuFind® team is not yet ready to fully support are given feature branches.

Legacy Branches

Features that have been deprecated and removed from dev are given “legacy” branches where volunteers are free to keep them up to date with dev if they need to do so. Feel free to issue pull requests against the legacy branches if you wish to help keep them up to date.