Welcome Contributors!
Thank you for your interest in contributing to DevDaily! This guide will help you submit high-quality contributions.New to open source? Check out First Timers Only for guidance.
Getting Started
Fork and Clone
Fork the repository
Visit github.com/hempun10/devdaily and click Fork
If all commands complete successfully, you’re ready to contribute!
Development Workflow
1. Create a Branch
Create a feature branch frommain:
2. Make Your Changes
Write Code
Implement your feature or fix
Add Tests
Write tests for new functionality
Update Docs
Document user-facing changes
Follow Standards
Adhere to coding standards
3. Run Quality Checks
Before committing, ensure all checks pass:4. Commit Your Changes
Follow the commit convention:5. Push and Create PR
main branch.
Coding Standards
TypeScript Style
Use strict mode
Use strict mode
Strict mode is enabled - no
any types unless absolutely necessary.Add JSDoc comments
Add JSDoc comments
All public functions should have JSDoc comments.
Prefer async/await
Prefer async/await
Use async/await over raw promises for better readability.
Use readonly when appropriate
Use readonly when appropriate
Mark properties that shouldn’t be mutated as
readonly.Code Formatting
Formatting is enforced by ESLint and Prettier:| Rule | Value |
|---|---|
| Indentation | 2 spaces |
| Quotes | Single quotes |
| Semicolons | Required |
| Trailing commas | ES5 style |
| Line width | 100 characters |
| Line endings | LF (Unix) |
File Organization
Co-locate tests in tests/ directory
Match source file names:
src/core/notifications.ts → tests/notifications.test.tsCommit Convention
DevDaily uses Conventional Commits, enforced by commitlint.Format
Commit Types
| Type | Description | Example |
|---|---|---|
feat | New feature | feat: add JSON output format |
fix | Bug fix | fix(pr): handle repos with no default branch |
docs | Documentation only | docs: update installation instructions |
style | Formatting (no logic change) | style: fix indentation |
refactor | Code change (no fix or feature) | refactor(journal): extract serialization logic |
perf | Performance improvement | perf: optimize git log parsing |
test | Adding or updating tests | test: add webhook integration tests |
build | Build system or dependencies | build: upgrade to typescript 5.7 |
ci | CI configuration | ci: add Node.js 22 to test matrix |
chore | Other changes | chore: update .gitignore |
revert | Revert previous commit | revert: revert feat: add JSON output |
Examples
Commit Rules
Pull Request Process
PR Title Format
Use the same conventional commit format:PR Checklist
We aim to review PRs within a few days. Feel free to ping if you haven’t heard back.
Testing Requirements
Writing Tests
Every new feature or bug fix should include tests:- Unit Tests
- Integration Tests
Running Tests
Tests must not require network access, git repositories, or API keys. Use mocks for external dependencies.
Code of Conduct
This project follows the Contributor Covenant Code of Conduct. Key points:Be Respectful
Treat everyone with respect and kindness
Be Inclusive
Welcome diverse perspectives and experiences
Be Professional
Focus on constructive feedback and collaboration
Report Issues
Report unacceptable behavior by opening an issue
Reporting Issues
Bug Reports
When filing a bug report, include:Feature Requests
For feature requests:- Check existing issues to avoid duplicates
- Describe the problem your feature would solve
- Suggest a possible approach if you have one
- Label with
enhancement
Need Help?
Issues
Browse existing issues
README
Read the documentation
Doctor
Run
devdaily doctor for diagnosticsRecognition
All contributors are recognized in the project:- Contributors listed in GitHub contributors page
- Significant contributions mentioned in release notes
- First-time contributors welcomed in PR comments
Thank you for contributing to DevDaily! Your contributions help make developer workflows better for everyone.
Next Steps
Setup Guide
Set up your development environment
Architecture
Understand the project structure
Testing
Learn about testing approach