contributing - blueprint-site/blueprint-create GitHub Wiki
Contribution Workflow
This guide outlines the contribution workflow for the Blueprint project, including Git practices, pull request processes, and code review guidelines.
Getting Started
Before you start contributing to Blueprint, make sure you have:
- Created a GitHub account
- Cloned the repository
- Set up the development environment as described in the Installation Guide
Git Workflow
Blueprint follows a branch-based workflow for contributions:
Setting Up Your Repository
-
Clone the repository locally:
git clone https://github.com/blueprint-site/blueprint-site.github.io.git cd blueprint-site.github.io
-
Verify your remote:
git remote -v
Branch Naming Convention
When creating branches, follow these naming conventions:
feature/short-description
- For new featuresfix/issue-description
- For bug fixesdocs/what-changed
- For documentation changesrefactor/component-name
- For code refactoringtest/what-tested
- For adding tests
Examples:
feature/addon-collections
fix/broken-image-upload
docs/api-endpoints
refactor/search-component
Development Workflow
-
Sync your local repository with the remote:
git checkout develop git pull
-
Create a new branch for your work:
git checkout -b feature/your-feature-name
-
Make your changes:
- Follow the code standards
- Write tests if applicable
- Update documentation as needed
-
Commit your changes using conventional commit messages:
git add . git commit -m "feat: add user collections feature"
-
Push your branch to the repository:
git push origin feature/your-feature-name
Conventional Commits
Blueprint uses the Conventional Commits specification for commit messages. This helps with automated versioning and changelog generation.
Format: type(scope): message
Types:
feat
: A new featurefix
: A bug fixdocs
: Documentation changesstyle
: Changes that don't affect code functionality (formatting, etc.)refactor
: Code changes that neither fix bugs nor add featuresperf
: Performance improvementstest
: Adding or correcting testsbuild
: Changes to build process or toolsci
: Changes to CI configurationchore
: Other changes that don't modify src or test files
Examples:
feat(auth): add oauth login with discord
fix(upload): resolve image upload error
docs(api): update endpoint documentation
style(button): adjust button padding
refactor(search): improve search component performance
Handling Multiple Changes
If you're working on multiple changes:
- Create separate branches for each change
- Submit separate pull requests for each change
- Reference related pull requests in your comments
Pull Request Process
Creating a Pull Request
- Go to the repository
- Click "Pull Requests" > "New Pull Request"
- Select your branch as the source and
develop
as the target branch - Click "Create Pull Request"
Writing a Good Pull Request Description
Include the following in your PR description:
- What does this PR do? - Brief description of the changes
- Related issue - Link to the GitHub issue (if applicable)
- Screenshots - For UI changes
- Testing instructions - How to test the changes
- Additional context - Any other relevant information
Example template:
## Description
Brief description of the changes.
## Related Issue
Fixes #123
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update
## Screenshots (if applicable)

## Testing Instructions
1. Step 1
2. Step 2
3. Expected behavior
## Checklist
- [ ] My code follows the project's code style
- [ ] I have performed a self-review of my code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix or feature works
- [ ] New and existing tests pass with my changes
Code Review Process
For Contributors
- Be responsive to review comments
- Address all feedback before requesting a re-review
- Explain your reasoning when you disagree with a suggestion
- Test your changes thoroughly before submitting
For Reviewers
- Be respectful and constructive in your feedback
- Focus on important issues rather than minor style preferences
- Explain your reasoning when requesting changes
- Approve when ready rather than leaving PRs in limbo
Resolving Conflicts
If your PR has conflicts:
-
Sync your local develop branch:
git checkout develop git pull
-
Rebase your feature branch:
git checkout feature/your-feature-name git rebase develop
-
Resolve conflicts in each file
-
Continue the rebase:
git add . git rebase --continue
-
Force push your updated branch:
git push --force origin feature/your-feature-name
Handling Feedback
Addressing Review Comments
- Make the requested changes in your local branch
- Commit the changes (consider using
fixup
commits) - Push to your feature branch
- Respond to the comment in the PR
Using Fixup Commits
For addressing review feedback, consider using fixup commits:
git add .
git commit --fixup HEAD
git push origin feature/your-feature-name
Before final merge, squash the fixups:
git rebase -i --autosquash develop
git push --force origin feature/your-feature-name
Continuous Integration
Blueprint uses GitHub Actions for continuous integration:
- Linting: ESLint checks code quality
- Type Checking: TypeScript validation
- Build Check: Ensures the project builds successfully
- Test Runners: Runs automated tests
All CI checks must pass before a PR can be merged.
After Merge
After your PR is merged:
-
Delete your feature branch:
git checkout develop git branch -d feature/your-feature-name git push origin --delete feature/your-feature-name
-
Update your local develop branch:
git pull
-
Celebrate your contribution! 🎉
Troubleshooting
Common Issues
-
CI Failures:
- Check the CI logs for specific errors
- Run linting and tests locally before pushing
-
Merge Conflicts:
- Follow the conflict resolution steps above
- If complex, consult with maintainers
-
Stale PRs:
- If your PR becomes outdated, rebase on the latest main
-
Rejected PRs:
- Read the feedback carefully
- Address all concerns before resubmitting
Special Workflows
Hotfix Process
For critical bug fixes:
- Create a branch from develop:
git checkout -b hotfix/critical-issue
- Fix the issue with minimal changes
- Submit a PR with "HOTFIX" in the title
- Request expedited review
Documentation-Only Changes
For documentation changes:
- Create a branch:
git checkout -b docs/update-readme
- Make documentation changes
- Submit a PR with abbreviated review process
Release Process
Blueprint follows semantic versioning:
- Major: Breaking changes
- Minor: New features, non-breaking
- Patch: Bug fixes, non-breaking
The release process is handled by maintainers, who will:
- Merge PRs into develop
- Merge develop into main when ready for release
- Create a new version tag
- Generate release notes
- Deploy to production
Additional Resources
Questions and Support
If you have questions about contributing:
- Check the documentation
- Search for existing issues
- Join our Discord server
- Ask in the repository discussions