Thank you for considering to help improve Dagu! We welcome contributions from anyone on the internet.
- Browse
good first issueorhelp wantedlabels and comment to claim. - Join the Discord server for questions or to share progress.
- Fork the repository and clone it locally
- Look for any issue that interests you
- Make your changes and test them
- Ask questions if anything is unclear
We welcome contributions of all kinds, including:
- Help other users by answering questions and providing support
- Suggest new features or improvements
- Improve documentation and examples, or provide use cases
- Refactor code for better readability and maintainability
- Fix bugs or add missing tests
- Add new features based on issue discussions
- Review and provide feedback on PRs
Prerequisites:
Building frontend assets:
make uiBuilding binary:
make binTo ensure the integrity of the go code, you can run all Go unit and integration tests.
Run all tests from the project root directory:
make lint
make testTo run tests with code coverage analysis:
make test-coverageStarting the backend server on port 8080:
DAGU_PORT=8080 makeStarting the development server:
cd ui
pnpm install
pnpm devNavigate to http://localhost:8081 to view hot-reloading frontend.
- Write unit tests for any new functionality
- Aim for good test coverage on new code
- Test error conditions and edge cases
Before submitting:
- Tests pass (
make test) - Linter passes (
make lint) - New code includes tests
- Documentation updated if applicable
- Commit messages following the Go Commit Message Guidelines
- All PRs are reviewed by maintainers.
- Community members are encouraged to review and provide feedback.
When reporting bugs, please include:
- Operating system and version
- Steps to reproduce the issue (example DAG yaml is very helpful)
- Expected behavior
- Actual behavior
- Relevant logs or error messages
When requesting features, please describe:
- Clearly describe the feature and its use case
- Explain why it would be valuable
- Consider backward compatibility
- Provide examples if possible
By contributing to Dagu, you agree that your contributions will be licensed under the GNU General Public License v3.0.