Branching, versioning & releases¶
How the Lakeflow Framework repository is branched and versioned. Read this before Contribution workflow.
For how deployed framework versions are pinned in workspace (current vs 1.2.3 paths), see Versioning - Framework.
Trunk-based development¶
The project uses trunk-based development on main. There is no long-lived develop branch — all changes integrate through pull requests into main.
Branch |
Purpose |
|---|---|
|
Production-ready trunk; always deployable |
|
New features or larger changes |
|
Bug fixes and hotfixes |
Branch naming¶
Create short-lived branches from main. Keep each branch focused on a single feature or fix.
Feature branches
Name:
feature/descriptive-name(for examplefeature/add-cdc-support)Sync with
mainregularly to reduce merge conflictsOpen a pull request to
mainwhen ready
Fix branches
Name:
fix/issue-description(for examplefix/logging-format)Keep changes minimal; reference the issue in commit messages when applicable
Use the same PR → squash merge flow as features
Version format and strategy¶
The canonical release version lives in VERSION at the repository root, formatted vMAJOR.MINOR.FIX (for example v0.20.0).
Semantic versioning
Component |
When to increment (manual, in your pull request) |
|---|---|
MAJOR |
Breaking changes — team-coordinated (for example the v1.0.0 release) |
MINOR |
New features or significant enhancements — typical for |
FIX (patch) |
Bug fixes — typical for |
Examples: v0.20.3 → v0.21.0 for a feature release; v0.20.3 → v0.20.4 for a patch.
Bumping VERSION in your pull request¶
Until v1.0.0, contributors manually update VERSION in the same pull request as the code or documentation change:
Read the current value in
VERSIONonmainApply the appropriate semver increment (see table above)
Write the new value (for example
v0.21.0) toVERSIONInclude that file change in your pull request
Note
Planned for v1.0.0: version bumps will be automated from branch names on merge to main, and manual VERSION edits in pull requests will no longer be required. Until then, every release-bound PR must update VERSION explicitly.
Hotfixes¶
For urgent production issues:
Create a
fix/*branch frommainImplement and test the fix locally and on Databricks where applicable
Bump
VERSIONwith a FIX (patch) increment in the same pull requestOpen a pull request and squash merge to
main
Pull request expectations¶
Target branch:
mainMerge method: Squash and merge (linear history)
CI: must pass (
.github/workflows/ci.yml) before mergeRelease-bound changes: include an updated
VERSIONfile when the change should ship as a new releaseAfter merge: delete the feature branch; close linked issues
See also¶
Contribution workflow — development and pull request workflow
Versioning - Framework —
currentvs pinned paths in workspace deploySetting up CI/CD — promoting framework versions through environments