To contribute to this project, please follow the guidelines below to ensure consistency and quality in our development process.
We follow the Gitflow branching model for managing development. This involves using separate branches for features, bugfixes, hotfixes, and releases.
-
Main Branches:
main
: Contains the production-ready code.develop
: Used as an integration branch for features, bugfixes, and hotfixes before releases.
-
Supporting Branches:
feat/*
: For new features.bugfix/*
: For resolving bugs found during development.hotfix/*
: For urgent fixes in the production code.
Use the following prefixes for your branch names to maintain consistency:
feat/FEATURE_NAME
: For new features.bugfix/BUG_NAME
: For bug fixes during development.hotfix/HOTFIX_NAME
: For critical fixes applied directly tomain
.
Use the following structure for writing clear, informative commit messages:
- Format:
<type>: <description>
- Types:
feat
: For new features (e.g.,feat: Add image editing tool
).bugfix
: For bug fixes (e.g.,bugfix: Fix alignment issue
).hotfix
: For critical bug fixes (e.g.,hotfix: Fix crash on startup
).
Add a brief description after the type, and make sure your message is concise and descriptive.
Each feature, bugfix, or hotfix should be accompanied by a pull request (PR). The steps are:
- Open a PR targeting the
develop
branch. - Assign a reviewer for code review.
- Ensure the PR passes all automated checks and tests.
- Provide a detailed description of what was changed and why.
Every PR must undergo a code review before merging:
- Reviewers should carefully check the changes for quality, readability, and correctness.
- Provide constructive feedback.
- Approve the PR if it meets the necessary standards.
Once your pull request has been reviewed and approved:
- Ensure all checks pass before merging.
- Merge into
develop
(ormain
in the case of hotfixes). - Delete the branch after merging to keep the repository clean.
We use Semantic Versioning for releases:
- Major: Incompatible API changes or large-scale changes.
- Minor: New features or functionality.
- Patch: Bug fixes or minor updates.
Follow this versioning structure when preparing release branches.
Make sure the documentation is updated for each new feature, bugfix, or hotfix:
- Update
docs
for in-depth documentation. - Update
README.md
for general project information. - Use
DEVELOPMENT.md
for developer guidelines. - Use
CONTRIBUTING.md
for contribution guidelines. - Update
CHANGELOG.md
with the history of changes. - Keep the
LICENSE.md
up-to-date with any changes in licensing.
All code changes must adhere to the Luxoria Unit Testing Policy to ensure high coverage, quality, and maintainability of the codebase.
- Testing: Ensure all code changes are properly tested.
- Code Style: Follow project-specific coding standards to maintain uniformity.
By following these guidelines, you help maintain a smooth and efficient development process at Luxoria.