mirror of
https://github.com/dagu-org/dagu.git
synced 2025-12-28 06:34:22 +00:00
2.9 KiB
2.9 KiB
Contributing to Dagu
Thank you for considering to help improve Dagu! We welcome contributions from anyone on the internet.
Quick Start
- Browse
good first issueorhelp wantedlabels and comment to claim. - Join the Discord server for questions or to share progress.
Getting Started
- 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
How to Contribute
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
Development
Prerequisites:
Building frontend assets:
make ui
Building binary:
make bin
Running Tests
To 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 test
To run tests with code coverage analysis:
make test-coverage
Frontend
Starting the backend server on port 8080:
DAGU_PORT=8080 make
Starting the development server:
cd ui
pnpm install
pnpm dev
Navigate to http://localhost:8081 to view hot-reloading frontend.
Code Standards
- Write unit tests for any new functionality
- Aim for good test coverage on new code
- Test error conditions and edge cases
Pull Requests
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
Review Process
- All PRs are reviewed by maintainers.
- Community members are encouraged to review and provide feedback.
Issues
Bug Reports
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
Feature Requests
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
License
By contributing to Dagu, you agree that your contributions will be licensed under the GNU General Public License v3.0.