Contributing¶
Thank you for your interest in improving Urso! We welcome contributions from the community, whether they are bug reports, feature requests, or code improvements.
Development Workflow¶
To start contributing to Urso, follow these steps:
- Fork the Repository: Create a fork of the urso-run/urso repository on GitHub.
- Clone Locally:
git clone https://github.com/your-username/urso.git cd urso - Install Dependencies: Ensure you have Go (matching the version in
go.mod) andgolangci-lintinstalled on your machine. - Create a Branch: Create a new branch for your feature or bug fix:
git checkout -b feature/my-new-feature
Coding Standards¶
To maintain high code quality and consistency, please adhere to the following patterns already established in the project:
- Interface-Driven Design: Use interfaces for side effects (filesystem, networking, shell execution) to ensure the logic remains testable.
- Table-Driven Tests: Prefer table-driven tests for complex logic to cover multiple scenarios cleanly.
- Structured Logging: Use the
slogpackage for all logging. Avoid printing directly to stdout/stderr except within the CLI entry points. - Context Propagation: Ensure
context.Contextis passed through for cancellation and timeout support.
Quality Control¶
Before submitting a Pull Request, please ensure your changes pass our local quality checks:
# Run unit tests
make test
# Run the linter
make lint
# Verify that the project builds
make build
Documentation¶
Urso uses the README.md and the www/ directory as the authoritative sources of documentation.
- If you change CLI flags or configuration structures, please update the corresponding pages in www/docs/.
- To preview your documentation changes locally using Docker:
make docs-serve
Submitting a Pull Request¶
- Commit your changes: Write clear, concise commit messages.
- Push to GitHub:
git push origin feature/my-new-feature - Open a PR: Submit your Pull Request against the
mainbranch of the original Urso repository. - Review: Provide a clear description of your changes and reference any related issues.
Reporting Issues¶
If you find a bug or have a feature request, please open an issue on GitHub. For security-related reports, please refer to our Security Policy.
For direct inquiries or specific questions, you can reach out to the team at hello@urso.run or contact adam@urso.run or petr@urso.run directly.
Thanks for helping improve Urso!