Development Steps
This guide outlines the process for contributing features or fixes to the Lakeflow Framework.
Issue Creation
Create a new issue in the GitHub repository
Clearly describe the feature or bug
Include acceptance criteria
Add relevant labels (feature/bug/enhancement)
Link to related issues if applicable
Branch Management
Create a feature branch from develop
Use naming convention:
feature/[brief-description]Example:
feature/add-scd2-support
Keep branches focused on single features/fixes
Regularly sync with develop to avoid merge conflicts
Development Process
Local Development
- Follow coding standards and style guides
Ensure the yapf extension is installed and enabled in VS Code (refer to step 2 of Development Environment Setup)
Use yapf to format your python code (right click and select ‘Format Document With’ then select yapf)
Stick to solid principles and object oriented design patterns
Deploy updated framework to Databricks to ensure it is working as expected
Use meaningful commit messages
Keep commits atomic and focused
Unit Testing
Currently being redeveloped and will be added back in soon.
Integration Testing / Samples
Where applicable, add sample pipelines to
feature-samples(for isolated feature demonstrations) orpattern-samples(for medallion architecture patterns) to show how to use the new featureDeploy and run existing sample pipelines on Databricks to ensure changes are not breaking existing functionality (refer to The Samples)
Documentation - Update documentation per Updating the Documentation
Pull Request Process
PR Creation
Create PR from feature branch to develop
Fill out PR template completely
Link related issues
Add relevant reviewers
PR Review
Address reviewer comments
Update code/docs as needed
Get required approvals
Merge Process
Squash and merge to develop
Delete feature branch after merge
Close related issues
Post-Merge Steps
Verify Changes
Confirm changes are working in develop
Check documentation is published correctly
Validate CI/CD pipeline passes
Monitor
Watch for any issues in develop
Be prepared to address any problems quickly